8 USE yomhook
,ONLY : lhook, dr_hook
9 USE parkind1
,ONLY : jprb
60 REAL,
DIMENSION(:),
INTENT(IN) :: pzl
61 REAL,
DIMENSION(SIZE(PZL)) ::
psifctu
63 REAL,
DIMENSION(SIZE(PZL)) :: zy,zx,zc,zpsic,zpsik,zf
65 REAL(KIND=JPRB) :: zhook_handle
67 IF (lhook) CALL dr_hook(
'MODE_COARE30_PSI:PSIFUNCTU',0,zhook_handle)
70 zx(jj) = (1.0 - 15. * pzl(jj))**0.25
71 zpsik(jj)= 2.0 * log((1.0+zx(jj) )/2.0) &
72 + log((1.0+zx(jj)*zx(jj))/2.0) &
73 - 2.0 * atan(zx(jj)) &
76 zy(jj) = (1.0 - 10.15 * pzl(jj))**0.3333
77 zpsic(jj)= 1.5 * log((zy(jj)*zy(jj)+zy(jj)+1.)/3.) &
78 - (3.0**0.5) * atan((2.0*zy(jj)+1.0)/(3.0**0.5)) &
79 + 4.0 * atan(1.0)/(3.0**0.5)
81 zf(jj) =pzl(jj) * pzl(jj) / (1.0+pzl(jj)*pzl(jj))
83 psifctu(jj)=(1.-zf(jj)) * zpsik(jj) + zf(jj) * zpsic(jj)
85 zc(jj)=min(50.,0.35*pzl(jj))
86 psifctu(jj)=-((1.+1.*pzl(jj))**1. + 0.6667*(pzl(jj)-14.28)/exp(zc(jj)) + 8.525)
89 IF (lhook) CALL dr_hook(
'MODE_COARE30_PSI:PSIFUNCTU',1,zhook_handle)
132 REAL,
DIMENSION(:),
INTENT(IN) :: pzl
133 REAL,
DIMENSION(SIZE(PZL)) ::
psifctt
135 REAL,
DIMENSION(SIZE(PZL)) :: zx,zy,zc,zpsic,zpsik,zf
137 REAL(KIND=JPRB) :: zhook_handle
139 IF (lhook) CALL dr_hook(
'MODE_COARE30_PSI:PSIFUNCTT',0,zhook_handle)
142 zx(jj) = (1. - 15. * pzl(jj))**.5
143 zpsik(jj)= 2.0 * log((1.0+zx(jj) )/2.0)
145 zy(jj) = (1.0 - 34.15 * pzl(jj))**0.3333
146 zpsic(jj)= 1.5 * log((zy(jj)*zy(jj)+zy(jj)+1.0)/3.) &
147 - (3.0**0.5) * atan((2.0*zy(jj)+1.0)/(3.0**0.5)) &
148 + 4.0 * atan(1.0)/(3.0**0.5)
150 zf(jj) = pzl(jj) * pzl(jj) / (1.0+pzl(jj)*pzl(jj))
152 psifctt(jj)= (1.-zf(jj)) * zpsik(jj) + zf(jj) * zpsic(jj)
154 zc(jj)=min(50.,0.35*pzl(jj))
155 psifctt(jj)=-((1.+2.*pzl(jj)/3.)**1.5 + 0.6667*(pzl(jj)-14.28)/exp(zc(jj)) + 8.525)
158 IF (lhook) CALL dr_hook(
'MODE_COARE30_PSI:PSIFUNCTT',1,zhook_handle)
real function, dimension(size(pzl)) psifunctu(PZL)
real function, dimension(size(pzl)) psifunctt(PZL)