1 SUBROUTINE olwc ( KIDIA,KFDIA,KLON,KLEV &
2 & , pbint,pbsuin,pcldld,pcldlu,pcntrb,pemis,pfdn,pfup &
105 integer_m :: ikcp1, ikm1, ikp1, imaxc, imxm1, imxp1, jcloud,&
106 &jk, jk1, jk2, jkj, jl, imx1, imx2, jkc, jkcp1, jkm1, jkp1
131 IF (pcldlu(jl,jk).GT.
repclc)
THEN
136 imaxc=max(imxp(jl),imaxc)
146 pflux(jl,1,jk) = pfup(jl,jk)
147 pflux(jl,2,jk) = pfdn(jl,jk)
167 zupf(jl,jk2,jk1)=pfup(jl,jk1)
168 zdnf(jl,jk2,jk1)=pfdn(jl,jk1)
188 IF (jk .GT. jkcp1)
THEN
191 zfu(jl) = zfu(jl) + pcntrb(jl,jk,jkj)
197 zupf(jl,jkcp1,jk)=pbint(jl,jk)-zfu(jl)
210 IF (jk .LT. jcloud)
THEN
213 zfd(jl) = zfd(jl) + pcntrb(jl,jk,jkj)
218 zdnf(jl,jkcp1,jk)=-pbint(jl,jk)-zfd(jl)
234 zclm(jl,jk1,jk2) = 0.
249 DO jk = jk1 - 1 , 1 , -1
253 zclear(jl)=zclear(jl)*(1.0-max(pcldlu(jl,jk),zcloud(jl))) &
254 & /(1.0-min(zcloud(jl),1.-
repclc))
255 zclm(jl,jk1,jk) = 1.0 - zclear(jl)
256 zcloud(jl) = pcldlu(jl,jk)
257 ELSE IF (
novlp.EQ.2)
THEN
259 zcloud(jl) = max(zcloud(jl) , pcldlu(jl,jk))
260 zclm(jl,jk1,jk) = zcloud(jl)
261 ELSE IF (
novlp.EQ.3)
THEN
263 zclear(jl) = zclear(jl)*(1.0 - pcldlu(jl,jk))
264 zcloud(jl) = 1.0 - zclear(jl)
265 zclm(jl,jk1,jk) = zcloud(jl)
284 zclear(jl)=zclear(jl)*(1.0-max(pcldld(jl,jk),zcloud(jl))) &
285 & /(1.0-min(zcloud(jl),1.-
repclc))
286 zclm(jl,jk1,jk) = 1.0 - zclear(jl)
287 zcloud(jl) = pcldld(jl,jk)
288 ELSE IF (
novlp.EQ.2)
THEN
290 zcloud(jl) = max(zcloud(jl) , pcldld(jl,jk))
291 zclm(jl,jk1,jk) = zcloud(jl)
292 ELSE IF (
novlp.EQ.3)
THEN
294 zclear(jl) = zclear(jl)*(1.0 - pcldld(jl,jk))
295 zcloud(jl) = 1.0 - zclear(jl)
296 zclm(jl,jk1,jk) = zcloud(jl)
311 pflux(jl,2,
klev+1) = 0.
314 DO jk1 =
klev , 1 , -1
319 zfd(jl) = (1. - zclm(jl,jk1,
klev)) * zdnf(jl,1,jk1)
323 zfd(jl) = zfd(jl) + zclm(jl,jk1,jk1) * zdnf(jl,jk1+1,jk1)
328 DO jk =
klev-1 , jk1 , -1
330 zcfrac = zclm(jl,jk1,jk+1) - zclm(jl,jk1,jk)
331 zfd(jl) = zfd(jl) + zcfrac * zdnf(jl,jk+2,jk1)
336 pflux(jl,2,jk1) = zfd(jl)
348 pflux(jl,1,1) = pemis(jl)*pbsuin(jl)-(1.-pemis(jl))*pflux(jl,2,1)
361 zfu(jl) = (1. - zclm(jl,jk1,1)) * zupf(jl,1,jk1)
365 zfu(jl) = zfu(jl) + zclm(jl,jk1,jk1-1) * zupf(jl,jk1,jk1)
372 zcfrac = zclm(jl,jk1,jk-1) - zclm(jl,jk1,jk)
373 zfu(jl) = zfu(jl) + zcfrac * zupf(jl,jk ,jk1)
378 pflux(jl,1,jk1) = zfu(jl)
subroutine olwc(KIDIA, KFDIA, KLON, KLEV, PBINT, PBSUIN, PCLDLD, PCLDLU, PCNTRB, PEMIS, PFDN, PFUP, PFLUX)