1 SUBROUTINE sw2s ( KIDIA, KFDIA, KLON , KLEV , KAER, KNU &
2 &,
paer ,paki, palbd, palbp, pcg , pcld, pclear, pcldsw &
3 &, pdsig ,pomega,poz , prmu , psec , ptau &
5 &, pfdown,pfup,pfdownc,pfupc )
107 integer_m :: iind2(2), iind3(3)
130 integer_m :: iabs, ikl, ikm1, jabs, jaj, jajp, jk, jkki,&
131 &jkkp4, jkl, jklp1, jkm1, jl, jn, jn2j, jref
134 real_b :: zaa, zbb, zcneb, zre11, zrki, zrmum1, zwh2o
150 zrmum1 = _one_ - prmu(jl)
151 zrayl(jl) =
rray(knu,1) + zrmum1 * (
rray(knu,2) + zrmum1 &
152 &* (
rray(knu,3) + zrmum1 * (
rray(knu,4) + zrmum1 &
153 &* (
rray(knu,5) + zrmum1 *
rray(knu,6) ))))
168 &,
paer , palbp , pdsig , zrayl, psec &
169 &, zcgaz , zpizaz, zray1 , zray2, zrefz, zrj0 &
170 &, zrk0 , zrmu0 , ztauaz, ztra1, ztra2 )
178 &, palbd , pcg , pcld , pdsig, pomega, psec , ptau &
179 &, zcgaz , zpizaz, zray1, zray2, zrefz , zrj , zrk, zrmue &
180 &, ztauaz, ztra1 , ztra2 )
199 zrefz(jl,2,1) = palbd(jl,knu)
200 zrefz(jl,1,1) = palbd(jl,knu)
212 zrneb(jl) = pcld(jl,jkm1)
213 IF (jabs == 1.AND. zrneb(jl) > _two_*
replog)
THEN
214 zwh2o=max(pwv(jl,ikl),
replog)
216 zbb=pud(jl,jabs,jkm1)*pqs(jl,ikl)/zwh2o
217 zaa=max((pud(jl,jabs,jkm1)-zcneb*zbb)/(_one_-zcneb),
replog)
219 zaa=pud(jl,jabs,jkm1)
223 zs(jl) = exp(min(200._jprb,-zrki * zaa * 1.66_jprb))
224 zg(jl) = exp(min(200._jprb,-zrki * zaa / zrmue(jl,jk)))
230 zw(jl)= pomega(jl,knu,jkm1)
231 zto1(jl) = ptau(jl,knu,jkm1) / zw(jl)&
232 &+ ztauaz(jl,jkm1) / zpizaz(jl,jkm1)&
235 zr21(jl) = ptau(jl,knu,jkm1) + ztauaz(jl,jkm1)
236 zr22(jl) = ptau(jl,knu,jkm1) / zr21(jl)
237 zgg(jl) = zr22(jl) * pcg(jl,knu,jkm1)&
238 &+ (_one_ - zr22(jl)) * zcgaz(jl,jkm1)
239 zw(jl) = zr21(jl) / zto1(jl)
240 zref(jl) = zrefz(jl,1,jkm1)
241 zrmuz(jl) = zrmue(jl,jk)
245 &, zgg , zref , zrmuz, zto1, zw &
246 &, zre1 , zre2 , ztr1 , ztr2 )
250 zrefz(jl,2,jk) = (_one_-zrneb(jl)) * (zray1(jl,jkm1)&
251 &+ zrefz(jl,2,jkm1) * ztra1(jl,jkm1)&
252 &* ztra2(jl,jkm1) ) * zg(jl) * zs(jl)&
253 &+ zrneb(jl) * zre1(jl)
255 ztr(jl,2,jkm1)=zrneb(jl)*ztr1(jl)&
256 &+ (ztra1(jl,jkm1)) * zg(jl) * (_one_-zrneb(jl))
258 zrefz(jl,1,jk)=(_one_-zrneb(jl))*(zray1(jl,jkm1)&
259 &+zrefz(jl,1,jkm1)*ztra1(jl,jkm1)*ztra2(jl,jkm1)&
260 &/(_one_-zray2(jl,jkm1)*zrefz(jl,1,jkm1)))*zg(jl)*zs(jl)&
261 &+ zrneb(jl) * zre2(jl)
263 ztr(jl,1,jkm1)= zrneb(jl) * ztr2(jl)&
264 &+ (ztra1(jl,jkm1)/(_one_-zray2(jl,jkm1)&
265 &* zrefz(jl,1,jkm1)))&
266 &* zg(jl) * (_one_ -zrneb(jl))
280 zrj(jl,jn,
klev+1) = _one_
281 zrk(jl,jn,
klev+1) = zrefz(jl,jref,
klev+1)
288 zre11 = zrj(jl,jn,jklp1) * ztr(jl,jref,jkl)
289 zrj(jl,jn,jkl) = zre11
290 zrk(jl,jn,jkl) = zre11 * zrefz(jl,jref,jkl)
312 zrj(jl,jaj,jk)= zrj(jl,jaj,jk) - zrj(jl,jajp,jk)
313 zrk(jl,jaj,jk)= zrk(jl,jaj,jk) - zrk(jl,jajp,jk)
314 zrj(jl,jaj,jk)= max( zrj(jl,jaj,jk) ,
replog )
315 zrk(jl,jaj,jk)= max( zrk(jl,jaj,jk) ,
replog )
323 zrj(jl,jaj,jk)= max( zrj(jl,jaj,jk) ,
replog )
324 zrk(jl,jaj,jk)= max( zrk(jl,jaj,jk) ,
replog )
347 zw2(jl,1) = log( zrj(jl,jn,jk) / zrj(jl,jn2j,jk))/ paki(jl,jaj)
348 zw2(jl,2) = log( zrk(jl,jn,jk) / zrk(jl,jn2j,jk))/ paki(jl,jaj)
360 zrl(jl,jkki) = zr2(jl,1)
361 zruef(jl,jkki) = zw2(jl,1)
362 zrl(jl,jkkp4) = zr2(jl,2)
363 zruef(jl,jkkp4) = zw2(jl,2)
375 pfdown(jl,jk) = zrj(jl,1,jk) * zrl(jl,1) * zrl(jl,3)&
376 &+ zrj(jl,2,jk) * zrl(jl,2) * zrl(jl,4)
377 pfup(jl,jk) = zrk(jl,1,jk) * zrl(jl,5) * zrl(jl,7)&
378 &+ zrk(jl,2,jk) * zrl(jl,6) * zrl(jl,8)
411 zw3(jl,1)=zw3(jl,1)+pud(jl,1,ikl)/zrmu0(jl,ikl)
412 zw3(jl,2)=zw3(jl,2)+pud(jl,2,ikl)/zrmu0(jl,ikl)
413 zw3(jl,3)=zw3(jl,3)+poz(jl, ikl)/zrmu0(jl,ikl)
414 zw4(jl) =zw4(jl) +pud(jl,4,ikl)/zrmu0(jl,ikl)
415 zw5(jl) =zw5(jl) +pud(jl,5,ikl)/zrmu0(jl,ikl)
424 zfd(jl,ikl) = zr3(jl,1)*zr3(jl,2)*zr3(jl,3)*zr4(jl)* zrj0(jl,jaj,ikl)
434 zfu(jl,1) = zfd(jl,1)*palbp(jl,knu)
440 zw3(jl,1)=zw3(jl,1)+pud(jl,1,ikm1)*1.66_jprb
441 zw3(jl,2)=zw3(jl,2)+pud(jl,2,ikm1)*1.66_jprb
442 zw3(jl,3)=zw3(jl,3)+poz(jl, ikm1)*1.66_jprb
443 zw4(jl) =zw4(jl) +pud(jl,4,ikm1)*1.66_jprb
444 zw5(jl) =zw5(jl) +pud(jl,5,ikm1)*1.66_jprb
453 zfu(jl,jk) = zr3(jl,1)*zr3(jl,2)*zr3(jl,3)*zr4(jl)* zrk0(jl,jaj,jk)
473 pfdown(jl,
klev+1) = ((_one_-pclear(jl))*pfdown(jl,
klev+1)&
474 &+ pclear(jl) * zfd(jl,
klev+1)) *
rsun(knu)
481 zw1(jl) = zw1(jl)+poz(jl, ikl)/zrmue(jl,ikl)
482 zw4(jl) = zw4(jl)+pud(jl,4,ikl)/zrmue(jl,ikl)
483 zw5(jl) = zw5(jl)+pud(jl,5,ikl)/zrmue(jl,ikl)
490 pfdown(jl,ikl) = ((_one_-pclear(jl))*zr1(jl)*zr4(jl)*pfdown(jl,&
492 &+pclear(jl)*zfd(jl,ikl)) *
rsun(knu)
493 pfdownc(jl,ikl) = zfd(jl,ikl) *
rsun(knu)
502 pfup(jl,1) = ((_one_-pclear(jl))*zr1(jl)*zr4(jl) * pfup(jl,1)&
503 &+pclear(jl)*zfu(jl,1)) *
rsun(knu)
504 pfupc(jl,1) = zfu(jl,1) *
rsun(knu)
510 zw1(jl) = zw1(jl)+poz(jl ,ikm1)*1.66_jprb
511 zw4(jl) = zw4(jl)+pud(jl,4,ikm1)*1.66_jprb
512 zw5(jl) = zw5(jl)+pud(jl,5,ikm1)*1.66_jprb
519 pfup(jl,jk) = ((_one_-pclear(jl))*zr1(jl)*zr4(jl) * pfup(jl,jk)&
520 &+pclear(jl)*zfu(jl,jk)) *
rsun(knu)
521 pfupc(jl,jk) = zfu(jl,jk) *
rsun(knu)
subroutine swclr(KIDIA, KFDIA, KLON, KLEV, KAER, KNU, PAER, PALBP, PDSIG, PRAYL, PSEC, PCGAZ, PPIZAZ, PRAY1, PRAY2, PREFZ, PRJ, PRK, PRMU0, PTAUAZ, PTRA1, PTRA2, PTRCLR,
real(kind=jprb), dimension(:), allocatable rsun
subroutine sw2s(KIDIA, KFDIA, KLON, KLEV, KAER, KNU, PAER, PAKI, PALBD, PALBP, PCG, PCLD, PCLEAR, PCLDSW, PDSIG, POMEGA, POZ, PRMU, PSEC, PTAU, PUD, PWV, PQS, PFDOWN, PFUP, PFDOWNC, PFUPC)
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)
subroutine swde(KIDIA, KFDIA, KLON, PGG, PREF, PRMUZ, PTO1, PW, PRE1, PRE2, PTR1, PTR2)
subroutine swtt1(KIDIA, KFDIA, KLON, KNU, KABS, KIND, PU, PTR)
real(kind=jprb), dimension(6, 6) rray
INTERFACE SUBROUTINE RRTM_ECRT_140GP && paer
subroutine swtt(KIDIA, KFDIA, KLON, KNU, KA, PU, PTR)