6 SUBROUTINE surface_cd(PRI, PZREF, PUREF, PZ0EFF, PZ0H, &
73 REAL,
DIMENSION(:),
INTENT(IN) :: PRI
74 REAL,
DIMENSION(:),
INTENT(IN) :: PZREF
76 REAL,
DIMENSION(:),
INTENT(IN) :: PUREF
80 REAL,
DIMENSION(:),
INTENT(IN) :: PZ0EFF
82 REAL,
DIMENSION(:),
INTENT(IN) :: PZ0H
84 REAL,
DIMENSION(:),
INTENT(OUT) :: PCD
85 REAL,
DIMENSION(:),
INTENT(OUT) :: PCDN
90 REAL :: ZZ0EFF, ZZ0H, ZMU, &
91 ZCMSTAR, ZPM, ZCM, ZFM
93 REAL(KIND=JPRB) :: ZHOOK_HANDLE
97 cmstar(x) = 6.8741 + 2.6933*x - 0.3601*x*x + 0.0154*x*x*x
98 pm(x) = 0.5233 - 0.0815*x + 0.0135*x*x - 0.0010*x*x*x
109 zz0eff = min(pz0eff(jj),puref(jj)*0.5)
110 zz0h = min(zz0eff,pz0h(jj))
112 zmu = log( min(zz0eff/zz0h,200.) )
114 pcdn(jj) = (
xkarman/log(puref(jj)/zz0eff))**2
116 zcmstar = cmstar(zmu)
119 zcm = 10.*zcmstar*pcdn(jj)*( puref(jj)/zz0eff )**zpm
121 IF ( pri(jj) > 0.0 )
THEN 122 zfm = 1. + 10.*pri(jj) / sqrt( 1.+5.*pri(jj) )
125 zfm = 1. - 10.*pri(jj) / ( 1.+zcm*sqrt(-pri(jj)) )
128 pcd(jj) = pcdn(jj)*zfm
subroutine surface_cd(PRI, PZREF, PUREF, PZ0EFF, PZ0H, PCD, PCDN)