1 SUBROUTINE olwu ( KIDIA, KFDIA, KLON, KLEV &
61 USE yoeolw , ONLY : nisp ,nua ,ng1 ,ng1p1 ,&
62 &at ,bt ,rt1 ,tref ,oct ,&
63 &rvgco2 ,rvgh2o ,rvgo3
109 integer_m :: iae1, iae2, iae3, ic, iccc, icp1, ig1,
ij, ijpn,&
110 &ikip1, ikj, ikjp, ikjpn, ikjr, ikl, ipk, ja, jae, &
111 &jk, jki, jkk, jl, jae1, jae2, jae3, jc, jcp1, jj, jjpn, &
112 & jkj, jkjr, jkjp, jkip1, jkp1, jkjpn
115 real_b :: zalup, zcac8, zcah1, zcah2, zcah3, zcah4,&
116 &zcah5, zcah6, zcbc8, zcbh1, zcbh2, zcbh3, &
117 &zcbh4, zcbh5, zcbh6, zdiff, zdpmg, zdpmp0, &
118 &zfppw, ztx, ztx2, zu6, zup, zupmco2, zupmg, &
119 &zupmh2o, zupmo3, zzably
143 zssig(jl,jkjp)=
paph(jl,ikl)
148 zssig(jl,jkj)= (zssig(jl,jkjr)+zssig(jl,jkjp))*0.5_jprb &
149 & + rt1(ig1) * (zssig(jl,jkjp) - zssig(jl,jkjr)) * 0.5_jprb
163 zupm(jl,jki)=(zssig(jl,jki)+zssig(jl,jkip1))*0.5_jprb
164 zdpm(jl,jki)=(zssig(jl,jki)-zssig(jl,jkip1))/(10._jprb*
rg)
172 zxwv(jl) = max(pwv(jl,ikl) ,
repscq )
173 zxoz(jl) = max(pqof(jl,ikl) / pdp(jl,ikl) ,
repsco )
180 zdpmp0 = zdpmg / 101325._jprb
181 zupmg = zupm(jl,jkk) * zdpmp0
182 zupmco2 = ( zupm(jl,jkk) + rvgco2 ) * zdpmp0
183 zupmh2o = ( zupm(jl,jkk) + rvgh2o ) * zdpmp0
184 zupmo3 = ( zupm(jl,jkk) + rvgo3 ) * zdpmp0
186 zably(jl,6,jkk) = zxoz(jl) * zdpmg
187 zably(jl,7,jkk) = zxoz(jl) * zupmo3
188 zu6 = zxwv(jl) * zupmg
189 zfppw = 1.6078_jprb * zxwv(jl) / (1._jprb+0.608_jprb*zxwv(jl))
190 zably(jl,1,jkk) = zxwv(jl) * zupmh2o
191 zably(jl,5,jkk) = zu6 * zfppw
192 zably(jl,4,jkk) = zu6 * (1._jprb-zfppw)
193 zably(jl,3,jkk) =
pcco2 * zupmco2
194 zably(jl,2,jkk) =
pcco2 * zdpmg
207 pabcu(jl,ja,3*
klev+1) = 0.
227 zuaer(jl,jae) = (
raer(jae,1)*
paer(jl, 1, jk ) &
230 & /(zduc(jl,jae1)+zduc(jl,jae2)+zduc(jl,jae3))
242 ztcon(jl)=exp(6.08_jprb*(296._jprb/ztavi(jl)-1._jprb))
245 zzably = zably(jl,3,jae1)+zably(jl,3,jae2)+zably(jl,3,jae3)
246 zup=min( max( 0.5_jprb*
r10e*log( zzably ) + 5._jprb, 0._jprb), 6.0_jprb)
247 zcah1=at(1,1)+zup*(at(1,2)+zup*(at(1,3)))
248 zcbh1=bt(1,1)+zup*(bt(1,2)+zup*(bt(1,3)))
249 zpsh1(jl)=exp( zcah1 * ztx + zcbh1 * ztx2 )
250 zcah2=at(2,1)+zup*(at(2,2)+zup*(at(2,3)))
251 zcbh2=bt(2,1)+zup*(bt(2,2)+zup*(bt(2,3)))
252 zpsh2(jl)=exp( zcah2 * ztx + zcbh2 * ztx2 )
253 zcah3=at(3,1)+zup*(at(3,2)+zup*(at(3,3)))
254 zcbh3=bt(3,1)+zup*(bt(3,2)+zup*(bt(3,3)))
255 zpsh3(jl)=exp( zcah3 * ztx + zcbh3 * ztx2 )
256 zcah4=at(4,1)+zup*(at(4,2)+zup*(at(4,3)))
257 zcbh4=bt(4,1)+zup*(bt(4,2)+zup*(bt(4,3)))
258 zpsh4(jl)=exp( zcah4 * ztx + zcbh4 * ztx2 )
259 zcah5=at(5,1)+zup*(at(5,2)+zup*(at(5,3)))
260 zcbh5=bt(5,1)+zup*(bt(5,2)+zup*(bt(5,3)))
261 zpsh5(jl)=exp( zcah5 * ztx + zcbh5 * ztx2 )
262 zcah6=at(6,1)+zup*(at(6,2)+zup*(at(6,3)))
263 zcbh6=bt(6,1)+zup*(bt(6,2)+zup*(bt(6,3)))
264 zpsh6(jl)=exp( zcah6 * ztx + zcbh6 * ztx2 )
265 zphm6(jl)=exp(-5.81e-4_jprb * ztx - 1.13e-6 * ztx2 )
266 zpsm6(jl)=exp(-5.57e-4_jprb * ztx - 3.30e-6 * ztx2 )
267 zphn6(jl)=exp(-3.46e-5_jprb * ztx + 2.05e-7 * ztx2 )
268 zpsn6(jl)=exp( 3.70e-3_jprb * ztx - 2.30e-6 * ztx2 )
277 zzably = zably(jl,5,jae1)+zably(jl,5,jae2)+zably(jl,5,jae3)
278 zalup =
r10e * log( zzably )
279 zup = max( 0.0_jprb , 5.0_jprb + 0.5_jprb * zalup )
280 zpsc2(jl) = (ztavi(jl)/tref) ** zup
281 zcac8=at(8,1)+zup*(at(8,2)+zup*(at(8,3)))
282 zcbc8=bt(8,1)+zup*(bt(8,2)+zup*(bt(8,3)))
283 zpsc3(jl)=exp( zcac8 * ztx + zcbc8 * ztx2 )
284 zphio(jl) = exp( oct(1) * ztx + oct(2) * ztx2)
285 zpsio(jl) = exp( 2.* (oct(3)*ztx+oct(4)*ztx2))
299 pabcu(jl,10,jc)=pabcu(jl,10,jcp1)+ zably(jl,4,jc) *zdiff
300 pabcu(jl,11,jc)=pabcu(jl,11,jcp1)+ zably(jl,5,jc)*ztcon(jl)*zdiff
302 pabcu(jl,12,jc)=pabcu(jl,12,jcp1)+ zably(jl,6,jc)*zphio(jl)*zdiff
303 pabcu(jl,13,jc)=pabcu(jl,13,jcp1)+ zably(jl,7,jc)*zpsio(jl)*zdiff
305 pabcu(jl, 7,jc)=pabcu(jl, 7,jcp1)+ zably(jl,3,jc)*zpsc2(jl)*zdiff
306 pabcu(jl, 8,jc)=pabcu(jl, 8,jcp1)+ zably(jl,3,jc)*zpsc3(jl)*zdiff
307 pabcu(jl, 9,jc)=pabcu(jl, 9,jcp1)+ zably(jl,3,jc)*zpsc3(jl)*zdiff
309 pabcu(jl, 1,jc)=pabcu(jl, 1,jcp1)+ zably(jl,1,jc)*zpsh1(jl)*zdiff
310 pabcu(jl, 2,jc)=pabcu(jl, 2,jcp1)+ zably(jl,1,jc)*zpsh2(jl)*zdiff
311 pabcu(jl, 3,jc)=pabcu(jl, 3,jcp1)+ zably(jl,1,jc)*zpsh5(jl)*zdiff
312 pabcu(jl, 4,jc)=pabcu(jl, 4,jcp1)+ zably(jl,1,jc)*zpsh3(jl)*zdiff
313 pabcu(jl, 5,jc)=pabcu(jl, 5,jcp1)+ zably(jl,1,jc)*zpsh4(jl)*zdiff
314 pabcu(jl, 6,jc)=pabcu(jl, 6,jcp1)+ zably(jl,1,jc)*zpsh6(jl)*zdiff
316 pabcu(jl,14,jc)=pabcu(jl,14,jcp1)+ zuaer(jl,1) *zduc(jl,jc)*zdiff
317 pabcu(jl,15,jc)=pabcu(jl,15,jcp1)+ zuaer(jl,2) *zduc(jl,jc)*zdiff
318 pabcu(jl,16,jc)=pabcu(jl,16,jcp1)+ zuaer(jl,3) *zduc(jl,jc)*zdiff
319 pabcu(jl,17,jc)=pabcu(jl,17,jcp1)+ zuaer(jl,4) *zduc(jl,jc)*zdiff
320 pabcu(jl,18,jc)=pabcu(jl,18,jcp1)+ zuaer(jl,5) *zduc(jl,jc)*zdiff
322 pabcu(jl,19,jc)=pabcu(jl,19,jcp1) &
323 & +zably(jl,2,jc)*
rch4/
pcco2*zphm6(jl)*zdiff
324 pabcu(jl,20,jc)=pabcu(jl,20,jcp1) &
325 & +zably(jl,3,jc)*
rch4/
pcco2*zpsm6(jl)*zdiff
326 pabcu(jl,21,jc)=pabcu(jl,21,jcp1) &
327 & +zably(jl,2,jc)*
rn2o/
pcco2*zphn6(jl)*zdiff
328 pabcu(jl,22,jc)=pabcu(jl,22,jcp1) &
329 & +zably(jl,3,jc)*
rn2o/
pcco2*zpsn6(jl)*zdiff
331 pabcu(jl,23,jc)=pabcu(jl,23,jcp1) &
333 pabcu(jl,24,jc)=pabcu(jl,24,jcp1) &
INTERFACE SUBROUTINE RRTM_ECRT_140GP pcco2
subroutine olwu(KIDIA, KFDIA, KLON, KLEV, PAER, PCCO2, PDP, PAPH, PQOF, PT, PVIEW, PWV, PABCU)
real(kind=jprb), dimension(6, 6) raer
!$Id klon klev DO klon!IM klev DO klon klon nbp_lat DO nbp_lon ij
INTERFACE SUBROUTINE RRTM_ECRT_140GP paph
INTERFACE SUBROUTINE RRTM_ECRT_140GP pt
INTERFACE SUBROUTINE RRTM_ECRT_140GP && paer