58 USE yomhook
,ONLY : lhook, dr_hook
59 USE parkind1
,ONLY : jprb
67 REAL,
DIMENSION(:),
INTENT(IN) :: pzona
68 REAL,
DIMENSION(:),
INTENT(IN) :: pmera
69 REAL,
DIMENSION(:),
INTENT(IN) :: phw
70 REAL,
DIMENSION(:),
INTENT(IN) :: pcd
71 REAL,
DIMENSION(:),
INTENT(IN) :: pcdn
72 REAL,
DIMENSION(:),
INTENT(IN) :: pri
73 REAL,
DIMENSION(:),
INTENT(IN) :: phv
75 REAL,
DIMENSION(:),
INTENT(OUT) :: pzon10m
76 REAL,
DIMENSION(:),
INTENT(OUT) :: pmer10m
80 REAL,
DIMENSION(SIZE(PHW)) :: zbn,zbd,zru
81 REAL,
DIMENSION(SIZE(PHW)) :: zlogu,zcoru,ziv
82 REAL(KIND=JPRB) :: zhook_handle
86 IF (lhook) CALL dr_hook(
'CLS_WIND',0,zhook_handle)
100 zbn(:)=xkarman/sqrt(pcdn(:))
102 zbd(:)=xkarman/sqrt(pcd(:))
104 WHERE(phv(:)<=phw(:))
105 zru(:)=min(phv(:)/phw(:),1.)
107 zru(:)=min(phw(:)/phv(:),1.)
110 zlogu(:)=log(1.+zru(:)*(exp(zbn(:)) -1.))
116 zcoru(:)=zru(:)*(zbn(:)-zbd(:))
120 zcoru(:)=log(1.+zru(:)*(exp(max(0.,zbn(:)-zbd(:)))-1.))
127 ziv(:)=max(0.,min(1.,(zlogu(:)-zcoru(:))/zbd(:)))
129 WHERE(phv(:)<=phw(:))
130 pzon10m(:)=pzona(:)*ziv(:)
131 pmer10m(:)=pmera(:)*ziv(:)
133 pzon10m(:)=pzona(:)/max(1.,ziv(:))
134 pmer10m(:)=pmera(:)/max(1.,ziv(:))
136 IF (lhook) CALL dr_hook(
'CLS_WIND',1,zhook_handle)
subroutine cls_wind(PZONA, PMERA, PHW, PCD, PCDN, PRI, PHV, PZON10M, PMER10M)