3 &tauaerl,fac00,fac01,fac10,fac11,forfac,jp,jt,jt1,oneminus,&
4 &colh2o,colco2, colo3,laytrop,selffac,selffrac,indself,pfrac)
39 real_b :: fac00(
jplay)
40 real_b :: fac01(
jplay)
41 real_b :: fac10(
jplay)
42 real_b :: fac11(
jplay)
43 real_b :: forfac(
jplay)
46 integer_m :: jp(
jplay)
47 integer_m :: jt(
jplay)
48 integer_m :: jt1(
jplay)
54 real_b :: colh2o(
jplay)
55 real_b :: colco2(
jplay)
56 real_b :: colo3(
jplay)
60 real_b :: selffac(
jplay)
61 real_b :: selffrac(
jplay)
62 integer_m :: indself(
jplay)
67 integer_m :: ijs(
jplay)
72 integer_m :: ig, js, lay
75 real_b :: fac000, fac001, fac010, fac011, fac100, fac101,&
76 &fac110, fac111, fs, specmult, specparm
86 speccomb(lay) = colh2o(lay) +
strrat1*colco2(lay)
87 specparm = colh2o(lay)/speccomb(lay)
88 specparm=min(oneminus,specparm)
89 specmult = 8._jprb*(specparm)
90 js = 1 + int(specmult)
91 fs = mod(specmult,_one_)
92 ind0(lay) = ((jp(lay)-1)*5+(jt(lay)-1))*
nspa(5) + js
93 ind1(lay) = (jp(lay)*5+(jt1(lay)-1))*
nspa(5) + js
94 inds(lay) = indself(lay)
119 tau(
ngs4+ig,lay) = speccomb(lay) * &
121 &( (1. - fs) *(fac00(lay) *
absa(ind0(lay) ,ig) + &
122 & fac10(lay) *
absa(ind0(lay)+ 9,ig) + &
123 & fac01(lay) *
absa(ind1(lay) ,ig) + &
124 & fac11(lay) *
absa(ind1(lay)+ 9,ig))+ &
125 & fs *(fac00(lay) *
absa(ind0(lay)+ 1,ig) + &
126 & fac10(lay) *
absa(ind0(lay)+10,ig) + &
127 & fac01(lay) *
absa(ind1(lay)+ 1,ig) + &
128 & fac11(lay) *
absa(ind1(lay)+10,ig))) + &
139 &selffac(lay) * (
selfref(inds(lay),ig) + &
142 &+ wx(1,lay) *
ccl4(ig)&
149 DO lay = laytrop+1,
klev
150 speccomb(lay) = colo3(lay) +
strrat2*colco2(lay)
151 specparm = colo3(lay)/speccomb(lay)
152 specparm=min(oneminus,specparm)
153 specmult = 4._jprb*(specparm)
154 js = 1 + int(specmult)
155 fs = mod(specmult,_one_)
156 ind0(lay) = ((jp(lay)-13)*5+(jt(lay)-1))*
nspb(5) + js
157 ind1(lay) = ((jp(lay)-12)*5+(jt1(lay)-1))*
nspb(5) + js
162 DO lay = laytrop+1,
klev
177 tau(
ngs4+ig,lay) = speccomb(lay) * &
178 &( (1. - fs) *(fac00(lay) *
absb(ind0(lay) ,ig) + &
179 & fac10(lay) *
absb(ind0(lay)+5,ig) + &
180 & fac01(lay) *
absb(ind1(lay) ,ig) + &
181 & fac11(lay) *
absb(ind1(lay)+5,ig))+ &
182 & fs *(fac00(lay) *
absb(ind0(lay)+1,ig) + &
183 & fac10(lay) *
absb(ind0(lay)+6,ig) + &
184 & fac01(lay) *
absb(ind1(lay)+1,ig) + &
185 & fac11(lay) *
absb(ind1(lay)+6,ig))) &
195 &+ wx(1,lay) *
ccl4(ig)&
real(kind=jprb), dimension(9, 5, 13, ng5) ka
subroutine rrtm_taumol5(KLEV, P_TAU, P_WX, P_TAUAERL, P_FAC00, P_FAC01, P_FAC10, P_FAC11, P_FORFAC, K_JP, K_JT, K_JT1, P_ONEMINUS, P_COLH2O, P_COLCO2, P_COLO3, K_LAYTROP, P_SELFFAC, P_SELFFRAC, K_INDSELF, PFRAC)
real(kind=jprb), dimension(ng5, 9) fracrefa
integer(kind=jpim), parameter jpgpt
integer(kind=jpim), parameter jpband
real(kind=jprb), dimension(1175, ng5) absb
real(kind=jprb), dimension(10, ng5) selfref
real(kind=jprb), dimension(ng5) ccl4
integer(kind=jpim), parameter ng5
integer(kind=jpim), dimension(16) nspb
integer(kind=jpim), dimension(16) ng
integer(kind=jpim), parameter ngs4
integer(kind=jpim), dimension(16) nspa
real(kind=jprb), dimension(ng5, 5) fracrefb
real(kind=jprb), dimension(585, ng5) absa
integer(kind=jpim), parameter jplay
real(kind=jprb), dimension(5, 5, 13:59, ng5) kb
integer(kind=jpim), parameter jpxsec