3 &, palbd , pcg , pcld , pomega, psec , ptau &
4 &, pcgaz , ppizaz, pray1, pray2 , prefz, prj , prk , prmue &
5 &, ptauaz, ptra1 , ptra2, ptrcld &
111 integer_m :: ikl, iklp1, ja, jaj, jk, jkm1, jl, inu1
114 real_b :: zbmu0, zbmu1, zcorae, zcorcd, zden, zden1,&
115 &zfacoa, zfacoc, zgap, zmu1, zmue, zre11, &
130 prj(jl,ja,jk) = _zero_
131 prk(jl,ja,jk) = _zero_
145 zc1i(jl,
klev+1) = _zero_
154 zfacoa = _one_ - ppizaz(jl,ikl)*pcgaz(jl,ikl)*pcgaz(jl,ikl)
155 zfacoc = _one_ - pomega(jl,knu,ikl) * pcg(jl,knu,ikl)* pcg(jl,knu,ikl)
156 zcorae = zfacoa * ptauaz(jl,ikl) * psec(jl)
157 zcorcd = zfacoc * ptau(jl,knu,ikl) * psec(jl)
158 zr21(jl) = exp(min(-zcorae,500.) )
159 zr22(jl) = exp(min(-zcorcd,500.) )
160 zss1(jl) = pcld(jl,ikl)*(_one_-zr21(jl)*zr22(jl))&
161 &+ (_one_-pcld(jl,ikl))*(_one_-zr21(jl))
162 zcleq(jl,ikl) = zss1(jl)
166 zclear(jl) = zclear(jl)&
167 &*(_one_-max(zss1(jl),zcloud(jl)))&
168 &/(_one_-min(zcloud(jl),_one_-
repsec))
169 zc1i(jl,ikl) = _one_ - zclear(jl)
170 zcloud(jl) = zss1(jl)
171 ELSEIF (
novlp == 2)
THEN
173 zcloud(jl) = max( zss1(jl) , zcloud(jl) )
174 zc1i(jl,ikl) = zcloud(jl)
175 ELSEIF (
novlp == 3)
THEN
177 zclear(jl) = zclear(jl)*(_one_ - zss1(jl))
178 zcloud(jl) = _one_ - zclear(jl)
179 zc1i(jl,ikl) = zcloud(jl)
180 ELSEIF (
novlp == 4)
THEN
183 zclear(jl)=zclear(jl)*( &
184 & zalpha1*(_one_-max(zss1(jl),zcloud(jl))) &
185 & /(_one_-min(zcloud(jl),_one_-
repsec)) &
186 & +(_one_-zalpha1)*(_one_-zss1(jl)) )
187 zc1i(jl,ikl) = _one_ - zclear(jl)
188 zcloud(jl) = zss1(jl)
196 zfacoa = _one_ - ppizaz(jl,ikl)*pcgaz(jl,ikl)*pcgaz(jl,ikl)
197 zfacoc = _one_ - pomega(jl,knu,ikl) * pcg(jl,knu,ikl)* pcg(jl,knu,ikl)
198 zcorae = zfacoa * ptauaz(jl,ikl) * psec(jl)
199 zcorcd = zfacoc * ptau(jl,knu,ikl) * psec(jl)
200 zr21(jl) = exp(min(-zcorae,500.) )
201 zr22(jl) = exp(min(-zcorcd,500.) )
202 zss1(jl) = pcld(jl,ikl)*(_one_-zr21(jl)*zr22(jl))&
203 &+ (_one_-pcld(jl,ikl))*(_one_-zr21(jl))
204 zcleq(jl,ikl) = zss1(jl)
208 zclear(jl) = zclear(jl)&
209 &*(_one_-max(zss1(jl),zcloud(jl)))&
210 &/(_one_-min(zcloud(jl),_one_-
repsec))
211 zc1i(jl,ikl) = _one_ - zclear(jl)
212 zcloud(jl) = zss1(jl)
213 ELSEIF (
novlp == 2)
THEN
215 zcloud(jl) = max( zss1(jl) , zcloud(jl) )
216 zc1i(jl,ikl) = zcloud(jl)
217 ELSEIF (
novlp == 3)
THEN
219 zclear(jl) = zclear(jl)*(_one_ - zss1(jl))
220 zcloud(jl) = _one_ - zclear(jl)
221 zc1i(jl,ikl) = zcloud(jl)
222 ELSEIF (
novlp == 4)
THEN
225 zclear(jl)=zclear(jl)*( &
226 & zalpha1*(_one_-max(zss1(jl),zcloud(jl))) &
227 & /(_one_-min(zcloud(jl),_one_-
repsec)) &
228 & +(_one_-zalpha1)*(_one_-zss1(jl)) )
229 zc1i(jl,ikl) = _one_ - zclear(jl)
230 zcloud(jl) = zss1(jl)
242 pray1(jl,
klev+1) = _zero_
243 pray2(jl,
klev+1) = _zero_
244 prefz(jl,2,1) = palbd(jl,knu)
245 prefz(jl,1,1) = palbd(jl,knu)
246 ptra1(jl,
klev+1) = _one_
247 ptra2(jl,
klev+1) = _one_
253 zrneb(jl)= pcld(jl,jkm1)
266 zmue = (_one_-zc1i(jl,jk)) * psec(jl)+ zc1i(jl,jk) * 1.66_jprb
269 prmue(jl,jk) = _one_/zmue
278 zgap = pcgaz(jl,jkm1)
279 zbmu0 = _half_ - 0.75_jprb * zgap / zmue
280 zww = ppizaz(jl,jkm1)
281 zto = ptauaz(jl,jkm1)
282 zden = _one_ + (_one_ - zww + zbmu0 * zww) * zto * zmue &
283 &+ (1-zww) * (_one_ - zww +_two_*zbmu0*zww)*zto*zto*zmue*zmue
284 pray1(jl,jkm1) = zbmu0 * zww * zto * zmue / zden
285 ptra1(jl,jkm1) = _one_ / zden
288 zbmu1 = _half_ - 0.75_jprb * zgap * zmu1
289 zden1= _one_ + (_one_ - zww + zbmu1 * zww) * zto / zmu1 &
290 &+ (1-zww) * (_one_ - zww +_two_*zbmu1*zww)*zto*zto/zmu1/zmu1
291 pray2(jl,jkm1) = zbmu1 * zww * zto / zmu1 / zden1
292 ptra2(jl,jkm1) = _one_ / zden1
301 zw(jl) = pomega(jl,knu,jkm1)
302 zto1(jl) = ptau(jl,knu,jkm1)/zw(jl)+ ptauaz(jl,jkm1)/ppizaz(jl,jkm1)
303 zr21(jl) = ptau(jl,knu,jkm1) + ptauaz(jl,jkm1)
304 zr22(jl) = ptau(jl,knu,jkm1) / zr21(jl)
305 zgg(jl) = zr22(jl) * pcg(jl,knu,jkm1)&
306 &+ (_one_ - zr22(jl)) * pcgaz(jl,jkm1)
307 IF (zw(jl) == _one_ .AND. ppizaz(jl,jkm1) == _one_)
THEN
310 zw(jl) = zr21(jl) / zto1(jl)
312 zref(jl) = prefz(jl,1,jkm1)
313 zrmuz(jl) = prmue(jl,jk)
317 &, zgg , zref , zrmuz , zto1 , zw &
318 &, zre1 , zre2 , ztr1 , ztr2 )
322 prefz(jl,1,jk) = (_one_-zrneb(jl)) * (pray1(jl,jkm1)&
323 &+ prefz(jl,1,jkm1) * ptra1(jl,jkm1)&
325 &/ (_one_-pray2(jl,jkm1)*prefz(jl,1,jkm1)))&
326 &+ zrneb(jl) * zre2(jl)
328 ztr(jl,1,jkm1) = zrneb(jl) * ztr2(jl) + (ptra1(jl,jkm1)&
329 &/ (_one_-pray2(jl,jkm1)*prefz(jl,1,jkm1)))&
332 prefz(jl,2,jk) = (_one_-zrneb(jl)) * (pray1(jl,jkm1)&
333 &+ prefz(jl,2,jkm1) * ptra1(jl,jkm1)&
335 &+ zrneb(jl) * zre1(jl)
337 ztr(jl,2,jkm1) = zrneb(jl) * ztr1(jl)+ ptra1(jl,jkm1) * (_one_-zrneb(jl))
342 zmue = (_one_-zc1i(jl,1))*psec(jl)+zc1i(jl,1)*1.66_jprb
345 prmue(jl,1)=_one_/zmue
346 ptrcld(jl)=_one_-zc1i(jl,1)
358 ELSE IF (nsw == 6)
THEN
362 IF (knu <= inu1)
THEN
365 prj(jl,jaj,
klev+1) = _one_
366 prk(jl,jaj,
klev+1) = prefz(jl, 1,
klev+1)
373 zre11= prj(jl,jaj,iklp1) * ztr(jl, 1,ikl)
374 prj(jl,jaj,ikl) = zre11
375 prk(jl,jaj,ikl) = zre11 * prefz(jl, 1,ikl)
383 prj(jl,jaj,
klev+1) = _one_
384 prk(jl,jaj,
klev+1) = prefz(jl,jaj,
klev+1)
391 zre11= prj(jl,jaj,iklp1) * ztr(jl,jaj,ikl)
392 prj(jl,jaj,ikl) = zre11
393 prk(jl,jaj,ikl) = zre11 * prefz(jl,jaj,ikl)
subroutine swr(KIDIA, KFDIA, KLON, KLEV, KNU, PALBD, PCG, PCLD, POMEGA, PSEC, PTAU, PCGAZ, PPIZAZ, PRAY1, PRAY2, PREFZ, PRJ, PRK, PRMUE, PTAUAZ, PTRA1, PTRA2, PTRCLD)
real(kind=jprb), dimension(:), allocatable ra1ovlp
subroutine swde(KIDIA, KFDIA, KLON, PGG, PREF, PRMUZ, PTO1, PW, PRE1, PRE2, PTR1, PTR2)