3 &,
paer , palbp , pdsig , prayl , psec &
4 &, pcgaz , ppizaz, pray1 , pray2 , prefz , prj &
5 &, prk , prmu0 , ptauaz, ptra1 , ptra2 , ptrclr &
111 integer_m :: ikl, ja, jae, jaj, jk, jkl, jklp1, jkm1, jl, inu1
114 real_b :: zbmu0, zbmu1, zcorae, zden, zden1, zfacoa,&
115 &zff, zgap, zgar, zmu1, zmue, zratio, zre11, &
128 prj(jl,ja,jk) = _zero_
129 prk(jl,ja,jk) = _zero_
139 pcgaz(jl,jk) = _zero_
140 ppizaz(jl,jk) = _zero_
141 ptauaz(jl,jk) = _zero_
145 ptauaz(jl,jk)=ptauaz(jl,jk)+
paer(jl, jae, ikl)*
rtaua(knu,jae)
146 ppizaz(jl,jk)=ppizaz(jl,jk)+
paer(jl, jae, ikl)&
148 pcgaz(jl,jk) = pcgaz(jl,jk) +
paer(jl, jae, ikl)&
155 pcgaz(jl,jk)=pcgaz(jl,jk)/ppizaz(jl,jk)
156 ppizaz(jl,jk)=ppizaz(jl,jk)/ptauaz(jl,jk)
157 ztray = prayl(jl) * pdsig(jl,jk)
158 zratio = ztray / (ztray + ptauaz(jl,jk))
161 ptauaz(jl,jk)=ztray+ptauaz(jl,jk)*(_one_-ppizaz(jl,jk)*zff)
162 pcgaz(jl,jk) = zgar * (_one_ - zratio) / (_one_ + zgar)
163 ppizaz(jl,jk) =zratio+(_one_-zratio)*ppizaz(jl,jk)*(_one_-zff)&
164 &/ (_one_ - ppizaz(jl,jk) * zff)
166 ztray = prayl(jl) * pdsig(jl,jk)
167 ptauaz(jl,jk) = ztray
168 pcgaz(jl,jk) = _zero_
169 ppizaz(jl,jk) = _one_-
repsct
182 zc0i(jl,
klev+1) = _zero_
191 zfacoa = _one_ - ppizaz(jl,jkl)*pcgaz(jl,jkl)*pcgaz(jl,jkl)
192 zcorae = zfacoa * ptauaz(jl,jkl) * psec(jl)
193 zr21(jl) = exp(-zcorae )
194 zss0(jl) = _one_-zr21(jl)
195 zcle0(jl,jkl) = zss0(jl)
199 zclear(jl) = zclear(jl)&
200 &*(_one_-max(zss0(jl),zscat(jl)))&
201 &/(_one_-min(zscat(jl),_one_-
repclc))
202 zc0i(jl,jkl) = _one_ - zclear(jl)
204 ELSEIF (
novlp == 2)
THEN
206 zscat(jl) = max( zss0(jl) , zscat(jl) )
207 zc0i(jl,jkl) = zscat(jl)
208 ELSEIF (
novlp == 3)
THEN
210 zclear(jl)=zclear(jl)*(_one_-zss0(jl))
211 zscat(jl) = _one_ - zclear(jl)
212 zc0i(jl,jkl) = zscat(jl)
220 zfacoa = _one_ - ppizaz(jl,jkl)*pcgaz(jl,jkl)*pcgaz(jl,jkl)
221 zcorae = zfacoa * ptauaz(jl,jkl) * psec(jl)
222 zr21(jl) = exp(-zcorae )
223 zss0(jl) = _one_-zr21(jl)
224 zcle0(jl,jkl) = zss0(jl)
228 zclear(jl) = zclear(jl)&
229 &*(_one_-max(zss0(jl),zscat(jl)))&
230 &/(_one_-min(zscat(jl),_one_-
repclc))
231 zc0i(jl,jkl) = _one_ - zclear(jl)
233 ELSEIF (
novlp == 2)
THEN
235 zscat(jl) = max( zss0(jl) , zscat(jl) )
236 zc0i(jl,jkl) = zscat(jl)
237 ELSEIF (
novlp == 3)
THEN
239 zclear(jl)=zclear(jl)*(_one_-zss0(jl))
240 zscat(jl) = _one_ - zclear(jl)
241 zc0i(jl,jkl) = zscat(jl)
253 pray1(jl,
klev+1) = _zero_
254 pray2(jl,
klev+1) = _zero_
255 prefz(jl,2,1) = palbp(jl,knu)
256 prefz(jl,1,1) = palbp(jl,knu)
257 ptra1(jl,
klev+1) = _one_
258 ptra2(jl,
klev+1) = _one_
272 zmue = (_one_-zc0i(jl,jk)) * psec(jl)+ zc0i(jl,jk) * 1.66_jprb
273 prmu0(jl,jk) = _one_/zmue
282 zgap = pcgaz(jl,jkm1)
283 zbmu0 = _half_ - 0.75_jprb * zgap / zmue
284 zww = ppizaz(jl,jkm1)
285 zto = ptauaz(jl,jkm1)
286 zden = _one_ + (_one_ - zww + zbmu0 * zww) * zto * zmue &
287 &+ (1-zww) * (_one_ - zww +_two_*zbmu0*zww)*zto*zto*zmue*zmue
288 pray1(jl,jkm1) = zbmu0 * zww * zto * zmue / zden
289 ptra1(jl,jkm1) = _one_ / zden
292 zbmu1 = _half_ - 0.75_jprb * zgap * zmu1
293 zden1= _one_ + (_one_ - zww + zbmu1 * zww) * zto / zmu1 &
294 &+ (1-zww) * (_one_ - zww +_two_*zbmu1*zww)*zto*zto/zmu1/zmu1
295 pray2(jl,jkm1) = zbmu1 * zww * zto / zmu1 / zden1
296 ptra2(jl,jkm1) = _one_ / zden1
300 prefz(jl,1,jk) = (pray1(jl,jkm1)&
301 &+ prefz(jl,1,jkm1) * ptra1(jl,jkm1)&
303 &/ (_one_-pray2(jl,jkm1)*prefz(jl,1,jkm1)))
305 ztr(jl,1,jkm1) = (ptra1(jl,jkm1)&
306 &/ (_one_-pray2(jl,jkm1)*prefz(jl,1,jkm1)))
308 prefz(jl,2,jk) = (pray1(jl,jkm1)&
309 &+ prefz(jl,2,jkm1) * ptra1(jl,jkm1)&
312 ztr(jl,2,jkm1) = ptra1(jl,jkm1)
317 zmue = (_one_-zc0i(jl,1))*psec(jl)+zc0i(jl,1)*1.66_jprb
318 prmu0(jl,1)=_one_/zmue
319 ptrclr(jl)=_one_-zc0i(jl,1)
330 ELSE IF (nsw == 6)
THEN
334 IF (knu <= inu1)
THEN
337 prj(jl,jaj,
klev+1) = _one_
338 prk(jl,jaj,
klev+1) = prefz(jl, 1,
klev+1)
345 zre11= prj(jl,jaj,jklp1) * ztr(jl, 1,jkl)
346 prj(jl,jaj,jkl) = zre11
347 prk(jl,jaj,jkl) = zre11 * prefz(jl, 1,jkl)
355 prj(jl,jaj,
klev+1) = _one_
356 prk(jl,jaj,
klev+1) = prefz(jl,jaj,
klev+1)
363 zre11= prj(jl,jaj,jklp1) * ztr(jl,jaj,jkl)
364 prj(jl,jaj,jkl) = zre11
365 prk(jl,jaj,jkl) = zre11 * prefz(jl,jaj,jkl)
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(6, 6) rtaua
real(kind=jprb), dimension(6, 6) rcga
real(kind=jprb), dimension(6, 6) rpiza
INTERFACE SUBROUTINE RRTM_ECRT_140GP && paer