2 &, fac00,fac01,fac10,fac11,forfac,jp,jt,jt1 &
3 &, colh2o,colco2,colo3,coln2o,colch4,colo2,co2mult &
4 &, laytrop,layswtch,laylow,pavel,tavel,selffac,selffrac,indself)
20 real_b :: coldry(
jplay)
27 real_b :: fac00(
jplay)
28 real_b :: fac01(
jplay)
29 real_b :: fac10(
jplay)
30 real_b :: fac11(
jplay)
31 real_b :: forfac(
jplay)
34 integer_m :: jp(
jplay)
35 integer_m :: jt(
jplay)
36 integer_m :: jt1(
jplay)
39 real_b :: colh2o(
jplay)
40 real_b :: colco2(
jplay)
41 real_b :: colo3(
jplay)
42 real_b :: coln2o(
jplay)
43 real_b :: colch4(
jplay)
44 real_b :: colo2(
jplay)
45 real_b :: co2mult(
jplay)
51 real_b :: pavel(
jplay)
52 real_b :: tavel(
jplay)
55 real_b :: selffac(
jplay)
56 real_b :: selffrac(
jplay)
57 integer_m :: indself(
jplay)
64 real_b :: co2reg, compfp, factor, fp, ft, ft1, plog, scalefac, stpfac, water
69 stpfac = 296._jprb/1013._jprb
86 IF (pavel(lay) == 0. ) pavel(lay) = (pavel(lay-1))/2.
87 plog = log(pavel(lay))
88 jp(lay) = int(36._jprb - 5*(plog+0.04_jprb))
91 ELSEIF (jp(lay) > 58)
THEN
95 fp = 5._jprb * (
preflog(jp(lay)) - plog)
104 jt(lay) = int(3._jprb + (tavel(lay)-
tref(jp(lay)))/15._jprb)
105 IF (jt(lay) < 1)
THEN
107 ELSEIF (jt(lay) > 4)
THEN
110 ft = ((tavel(lay)-
tref(jp(lay)))/15._jprb) -
REAL(jt(lay)-3)
111 jt1(lay) = int(3._jprb + (tavel(lay)-
tref(jp1))/15._jprb)
112 IF (jt1(lay) < 1)
THEN
114 ELSEIF (jt1(lay) > 4)
THEN
117 ft1 = ((tavel(lay)-
tref(jp1))/15._jprb) -
REAL(jt1(lay)-3)
119 water = wkl(1,lay)/coldry(lay)
120 scalefac = pavel(lay) * stpfac / tavel(lay)
126 IF (plog > 4.56_jprb)
THEN
127 laytrop = laytrop + 1
129 IF (plog >= 5.76_jprb) layswtch = layswtch + 1
130 IF (plog >= 6.62_jprb) laylow = laylow + 1
132 forfac(lay) = scalefac / (_one_+water)
137 selffac(lay) = water * forfac(lay)
138 factor = (tavel(lay)-188.0_jprb)/7.2_jprb
139 indself(lay) = min(9, max(1, int(factor)-7))
140 selffrac(lay) = factor -
REAL(INDSELF(LAY) + 7)
143 colh2o(lay) = 1.e-20_jprb * wkl(1,lay)
144 colco2(lay) = 1.e-20_jprb * wkl(2,lay)
145 colo3(lay) = 1.e-20_jprb * wkl(3,lay)
146 coln2o(lay) = 1.e-20_jprb * wkl(4,lay)
147 colch4(lay) = 1.e-20_jprb * wkl(6,lay)
148 colo2(lay) = 1.e-20_jprb * wkl(7,lay)
149 IF (colco2(lay) == _zero_) colco2(lay) = 1.e-32_jprb * coldry(lay)
150 IF (coln2o(lay) == _zero_) coln2o(lay) = 1.e-32_jprb * coldry(lay)
151 IF (colch4(lay) == _zero_) colch4(lay) = 1.e-32_jprb * coldry(lay)
153 co2reg = 3.55e-24_jprb * coldry(lay)
154 co2mult(lay)= (colco2(lay) - co2reg) *&
155 &272.63_jprb*exp(-1919.4_jprb/tavel(lay))/(8.7604e-4_jprb*tavel(lay))
163 forfac(lay) = scalefac / (_one_+water)
165 colh2o(lay) = 1.e-20_jprb * wkl(1,lay)
166 colco2(lay) = 1.e-20_jprb * wkl(2,lay)
167 colo3(lay) = 1.e-20_jprb * wkl(3,lay)
168 coln2o(lay) = 1.e-20_jprb * wkl(4,lay)
169 colch4(lay) = 1.e-20_jprb * wkl(6,lay)
170 colo2(lay) = 1.e-20_jprb * wkl(7,lay)
171 IF (colco2(lay) == _zero_) colco2(lay) = 1.e-32_jprb * coldry(lay)
172 IF (coln2o(lay) == _zero_) coln2o(lay) = 1.e-32_jprb * coldry(lay)
173 IF (colch4(lay) == _zero_) colch4(lay) = 1.e-32_jprb * coldry(lay)
174 co2reg = 3.55e-24_jprb * coldry(lay)
175 co2mult(lay)= (colco2(lay) - co2reg) *&
176 &272.63_jprb*exp(-1919.4_jprb/tavel(lay))/(8.7604e-4_jprb*tavel(lay))
189 fac10(lay) = compfp * ft
190 fac00(lay) = compfp * (_one_ - ft)
191 fac11(lay) = fp * ft1
192 fac01(lay) = fp * (_one_ - ft1)
198 IF (laylow == 0) laylow=1
subroutine rrtm_setcoef_140gp(KLEV, P_COLDRY, P_WKL, P_FAC00, P_FAC01, P_FAC10, P_FAC11, P_FORFAC, K_JP, K_JT, K_JT1, P_COLH2O, P_COLCO2, P_COLO3, P_COLN2O, P_COLCH4, P_COLO2, P_CO2MULT, K_LAYTROP, K_LAYSWTCH, K_LAYLOW, PAVEL, P_TAVEL, P_SELFFAC, P_SELFFRAC, K_INDSELF)
real(kind=jprb), dimension(59) tref
integer(kind=jpim), parameter jpinpx
integer(kind=jpim), parameter jpgpt
integer(kind=jpim), parameter jpband
real(kind=jprb), dimension(59) pref
real(kind=jprb), dimension(59) preflog
integer(kind=jpim), parameter jplay