7 pho2ip,pho2im,pho2jp,pho2jm,pz0veg, &
8 pz0effip,pz0effim,pz0effjp,pz0effjm, &
51 USE yomhook
,ONLY : lhook, dr_hook
52 USE parkind1
,ONLY : jprb
59 REAL,
DIMENSION(:),
INTENT(IN) :: paosip
60 REAL,
DIMENSION(:),
INTENT(IN) :: paosim
61 REAL,
DIMENSION(:),
INTENT(IN) :: paosjp
62 REAL,
DIMENSION(:),
INTENT(IN) :: paosjm
63 REAL,
DIMENSION(:),
INTENT(IN) :: pho2ip
64 REAL,
DIMENSION(:),
INTENT(IN) :: pho2im
65 REAL,
DIMENSION(:),
INTENT(IN) :: pho2jp
66 REAL,
DIMENSION(:),
INTENT(IN) :: pho2jm
67 REAL,
DIMENSION(:),
INTENT(IN) :: pz0veg
69 REAL,
DIMENSION(:),
INTENT(INOUT) :: pz0effip
70 REAL,
DIMENSION(:),
INTENT(INOUT) :: pz0effim
71 REAL,
DIMENSION(:),
INTENT(INOUT) :: pz0effjp
72 REAL,
DIMENSION(:),
INTENT(INOUT) :: pz0effjm
74 LOGICAL,
DIMENSION(:),
INTENT(IN),
OPTIONAL :: omask
80 LOGICAL,
DIMENSION(SIZE(PZ0EFFIM)) :: gmask
82 REAL(KIND=JPRB) :: zhook_handle
85 IF (lhook) CALL dr_hook(
'SUBSCALE_Z0EFF_1D',0,zhook_handle)
86 IF (present(omask))
THEN
89 gmask=(paosip/=xundef)
99 CALL
get_z0eff(gmask(:),pz0veg(:),pho2jp(:),paosjp(:),pz0effjp(:))
100 CALL
get_z0eff(gmask(:),pz0veg(:),pho2jm(:),paosjm(:),pz0effjm(:))
101 CALL
get_z0eff(gmask(:),pz0veg(:),pho2im(:),paosim(:),pz0effim(:))
102 CALL
get_z0eff(gmask(:),pz0veg(:),pho2ip(:),paosip(:),pz0effip(:))
104 IF (lhook) CALL dr_hook(
'SUBSCALE_Z0EFF_1D',1,zhook_handle)
112 LOGICAL,
DIMENSION(:),
INTENT(IN) :: ocomput
113 REAL,
DIMENSION(:),
INTENT(IN) :: pz0
114 REAL,
DIMENSION(:),
INTENT(IN) :: pho
115 REAL,
DIMENSION(:),
INTENT(IN) :: pao
116 REAL,
DIMENSION(:),
INTENT(OUT):: pz0eff
118 LOGICAL,
DIMENSION(SIZE(PZ0)) :: lwork1
120 REAL :: zloc1,zloc2,zloc3
123 REAL(KIND=JPRB) :: zhook_handle
125 IF (lhook) CALL dr_hook(
'SUBSCALE_Z0EFF_1D:GET_ZOEFF',0,zhook_handle)
129 lwork1(:)=(pho(:)>pz0(:).AND.(pz0(:)/=0.0.OR.pao(:)/=0.0))
132 IF (ocomput(jj))
THEN
134 zloc1 = (xcdz0eff/(2.*xkarman**2))*pao(jj)
135 IF ( pz0(jj) > 0. )
THEN
136 zloc2 = 1./(alog(pho(jj)/pz0(jj)))**2
140 zloc3 = sqrt(1./(zloc1+zloc2))
141 pz0eff(jj) = pho(jj) * exp(-zloc3)
148 IF (lhook) CALL dr_hook(
'SUBSCALE_Z0EFF_1D:GET_ZOEFF',1,zhook_handle)
subroutine get_z0eff(OCOMPUT, PZ0, PHO, PAO, PZ0EFF)
subroutine subscale_z0eff_1d(PAOSIP, PAOSIM, PAOSJP, PAOSJM, PHO2IP, PHO2IM, PHO2JP, PHO2JM, PZ0VEG, PZ0EFFIP, PZ0EFFIM, PZ0EFFJP, PZ0EFFJM, OMASK)