3 & pbint , pbsui, pcldld, pcldlu,&
4 & pcntrb, pemit, pfluc,&
77 INTEGER(KIND=JPIM),
INTENT(IN) :: KLON
78 INTEGER(KIND=JPIM),
INTENT(IN) :: KLEV
79 INTEGER(KIND=JPIM),
INTENT(IN) :: KIDIA
80 INTEGER(KIND=JPIM),
INTENT(IN) :: KFDIA
81 REAL(KIND=JPRB) ,
INTENT(IN) :: PBINT(klon,klev+1)
82 REAL(KIND=JPRB) ,
INTENT(IN) :: PBSUI(klon)
83 REAL(KIND=JPRB) ,
INTENT(IN) :: PCLDLD(klon,klev)
84 REAL(KIND=JPRB) ,
INTENT(IN) :: PCLDLU(klon,klev)
85 REAL(KIND=JPRB) ,
INTENT(IN) :: PCNTRB(klon,klev+1,klev+1)
86 REAL(KIND=JPRB) ,
INTENT(IN) :: PEMIT(klon)
87 REAL(KIND=JPRB) ,
INTENT(IN) :: PFLUC(klon,2,klev+1)
88 REAL(KIND=JPRB) ,
INTENT(OUT) :: PFLUX(klon,2,klev+1)
98 REAL(KIND=JPRB) :: ZCLEAR(klon) , ZCLOUD(klon)&
99 & , ZCLM(KLON,KLEV+1,KLEV+1), ZDNF(KLON,KLEV+1,KLEV+1)&
100 & , ZFD(KLON) , ZFU(KLON)&
101 & , ZUPF(KLON,KLEV+1,KLEV+1)
103 INTEGER(KIND=JPIM) :: IKCP1, IKM1, IKP1, IMAXC, IMXM1, IMXP1, JCLOUD,&
104 & JK, JK1, JK2, JKJ, JL
106 REAL(KIND=JPRB) :: ZALPHA1, ZCFRAC
107 REAL(KIND=JPRB) :: ZHOOK_HANDLE
119 zcloud(jl) = 0.0_jprb
124 pflux(jl,1,jk) = pfluc(jl,1,jk)
125 pflux(jl,2,jk) = pfluc(jl,2,jk)
149 zupf(jl,jk2,jk1)=pfluc(jl,1,jk1)
150 zdnf(jl,jk2,jk1)=pfluc(jl,2,jk1)
161 DO jcloud = 1 , imaxc
178 zfu(jl) = zfu(jl) + pcntrb(jl,jk,jkj)
184 zupf(jl,ikcp1,jk)=pbint(jl,jk)-zfu(jl)
199 IF (jk < jcloud)
THEN
202 zfd(jl) = zfd(jl) + pcntrb(jl,jk,jkj)
208 zdnf(jl,ikcp1,jk)=-pbint(jl,jk)-zfd(jl)
226 zclm(jl,jk1,jk2) = 0.0_jprb
243 DO jk = jk1 - 1 , 1 , -1
251 zclear(jl)=zclear(jl)*(1.0_jprb-max(pcldlu(jl,jk),zcloud(jl)))&
252 & /(1.0_jprb-min(zcloud(jl),1.0_jprb-
repclc))
253 zclm(jl,jk1,jk) = 1.0_jprb - zclear(jl)
254 zcloud(jl) = pcldlu(jl,jk)
259 zcloud(jl) = max(zcloud(jl) , pcldlu(jl,jk))
260 zclm(jl,jk1,jk) = zcloud(jl)
265 zclear(jl) = zclear(jl)*(1.0_jprb - pcldlu(jl,jk))
266 zcloud(jl) = 1.0_jprb - zclear(jl)
267 zclm(jl,jk1,jk) = zcloud(jl)
268 ELSEIF (
novlp == 4)
THEN
270 zclear(jl)=zclear(jl)*( &
271 & zalpha1*(1.0_jprb-max(pcldlu(jl,jk),zcloud(jl))) &
272 & /(1.0_jprb-min(zcloud(jl),1.0_jprb-
repclc)) &
273 & +(1.0_jprb-zalpha1)*(1.0_jprb-pcldlu(jl,jk)) )
274 zclm(jl,jk1,jk) = 1.0_jprb - zclear(jl)
275 zcloud(jl) = pcldlu(jl,jk)
302 zclear(jl)=zclear(jl)*(1.0_jprb-max(pcldld(jl,jk),zcloud(jl)))&
303 & /(1.0_jprb-min(zcloud(jl),1.0_jprb-
repclc))
304 zclm(jl,jk1,jk) = 1.0_jprb - zclear(jl)
305 zcloud(jl) = pcldld(jl,jk)
310 zcloud(jl) = max(zcloud(jl) , pcldld(jl,jk))
311 zclm(jl,jk1,jk) = zcloud(jl)
316 zclear(jl) = zclear(jl)*(1.0_jprb - pcldld(jl,jk))
317 zcloud(jl) = 1.0_jprb - zclear(jl)
318 zclm(jl,jk1,jk) = zcloud(jl)
319 ELSEIF (
novlp == 4)
THEN
321 zclear(jl)=zclear(jl)*( &
322 & zalpha1*(1.0_jprb-max(pcldld(jl,jk),zcloud(jl))) &
323 & /(1.0_jprb-min(zcloud(jl),1.0_jprb-
repclc)) &
324 & +(1.0_jprb-zalpha1)*(1.0_jprb - pcldld(jl,jk)) )
325 zclm(jl,jk1,jk) = 1.0_jprb - zclear(jl)
326 zcloud(jl) = pcldld(jl,jk)
344 pflux(jl,2,klev+1) = 0.0_jprb
347 DO jk1 = klev , 1 , -1
352 zfd(jl) = (1.0_jprb - zclm(jl,jk1,klev)) * zdnf(jl,1,jk1)
356 zfd(jl) = zfd(jl) + zclm(jl,jk1,jk1) * zdnf(jl,jk1+1,jk1)
361 DO jk = klev-1 , jk1 , -1
363 zcfrac = zclm(jl,jk1,jk+1) - zclm(jl,jk1,jk)
364 zfd(jl) = zfd(jl) + zcfrac * zdnf(jl,jk+2,jk1)
369 pflux(jl,2,jk1) = zfd(jl)
381 pflux(jl,1,1) = pemit(jl)*pbsui(jl)-(1.0_jprb-pemit(jl))*pflux(jl,2,1)
394 zfu(jl) = (1.0_jprb - zclm(jl,jk1,1)) * zupf(jl,1,jk1)
398 zfu(jl) = zfu(jl) + zclm(jl,jk1,jk1-1) * zupf(jl,jk1,jk1)
405 zcfrac = zclm(jl,jk1,jk-1) - zclm(jl,jk1,jk)
406 zfu(jl) = zfu(jl) + zcfrac * zupf(jl,jk ,jk1)
411 pflux(jl,1,jk1) = zfu(jl)
subroutine lwc(KIDIA, KFDIA, KLON, KLEV, PBINT, PBSUI, PCLDLD, PCLDLU, PCNTRB, PEMIT, PFLUC, PFLUX)
real(kind=jprb), dimension(:), allocatable ra1ovlp
subroutine dr_hook(CDNAME, KSWITCH, PKEY)