3 &tauaerl,fac00,fac01,fac10,fac11,jp,jt,jt1,oneminus,&
4 &colh2o,colch4,laytrop,selffac,selffrac,indself,pfrac)
32 real_b :: fac00(
jplay)
33 real_b :: fac01(
jplay)
34 real_b :: fac10(
jplay)
35 real_b :: fac11(
jplay)
38 integer_m :: jp(
jplay)
39 integer_m :: jt(
jplay)
40 integer_m :: jt1(
jplay)
46 real_b :: colh2o(
jplay)
47 real_b :: colch4(
jplay)
51 real_b :: selffac(
jplay)
52 real_b :: selffrac(
jplay)
53 integer_m :: indself(
jplay)
60 integer_m :: ig, ind0, ind1, inds, js, lay
63 real_b :: fac000, fac001, fac010, fac011, fac100, fac101,&
64 &fac110, fac111, fs, speccomb, specmult, specparm
78 speccomb = colh2o(lay) +
strrat*colch4(lay)
79 specparm = colh2o(lay)/speccomb
80 specparm = min(specparm,oneminus)
81 specmult = 8._jprb*(specparm)
82 js = 1 + int(specmult)
83 fs = mod(specmult,_one_)
85 fac000 = (_one_ - fs) * fac00(lay)
86 fac010 = (_one_ - fs) * fac10(lay)
87 fac100 = fs * fac00(lay)
88 fac110 = fs * fac10(lay)
89 fac001 = (_one_ - fs) * fac01(lay)
90 fac011 = (_one_ - fs) * fac11(lay)
91 fac101 = fs * fac01(lay)
92 fac111 = fs * fac11(lay)
94 ind0 = ((jp(lay)-1)*5+(jt(lay)-1))*
nspa(16) + js
95 ind1 = (jp(lay)*5+(jt1(lay)-1))*
nspa(16) + js
100 tau(
ngs15+ig,lay) = speccomb *&
109 &(fac000 *
absa(ind0 ,ig) +&
110 & fac100 *
absa(ind0+ 1,ig) +&
111 & fac010 *
absa(ind0+ 9,ig) +&
112 & fac110 *
absa(ind0+10,ig) +&
113 & fac001 *
absa(ind1 ,ig) +&
114 & fac101 *
absa(ind1+ 1,ig) +&
115 & fac011 *
absa(ind1+ 9,ig) +&
116 & fac111 *
absa(ind1+10,ig))+&
118 &selffac(lay) * (
selfref(inds,ig) + &
125 tau(
ngs15+ig,lay) = speccomb *&
134 &(fac000 *
absa(ind0 ,ig) +&
135 & fac100 *
absa(ind0+ 1,ig) +&
136 & fac010 *
absa(ind0+ 9,ig) +&
137 & fac110 *
absa(ind0+10,ig) +&
138 & fac001 *
absa(ind1 ,ig) +&
139 & fac101 *
absa(ind1+ 1,ig) +&
140 & fac011 *
absa(ind1+ 9,ig) +&
141 & fac111 *
absa(ind1+10,ig))+&
143 &selffac(lay) * (
selfref(inds,ig) +&
154 DO lay = laytrop+1,
klev
158 tau(
ngs15+ig,lay) = tauaerl(lay,16)
159 pfrac(
ngs15+ig,lay) = _zero_
161 tau(
ngs15+ig,lay) = tauaerl(lay,16)
162 pfrac(
ngs15+ig,lay) = _zero_
integer(kind=jpim), parameter ng16
integer(kind=jpim), parameter jpgpt
integer(kind=jpim), parameter jpband
real(kind=jprb), dimension(585, ng16) absa
integer(kind=jpim), dimension(16) nspb
integer(kind=jpim), dimension(16) ng
real(kind=jprb), dimension(ng16, 9) fracrefa
integer(kind=jpim), dimension(16) nspa
real(kind=jprb), dimension(9, 5, 13, ng16) ka
real(kind=jprb), dimension(10, ng16) selfref
subroutine rrtm_taumol16(KLEV, P_TAU, P_TAUAERL, P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, P_ONEMINUS, P_COLH2O, P_COLCH4, K_LAYTROP, P_SELFFAC, P_SELFFRAC, K_INDSELF, PFRAC)
integer(kind=jpim), parameter jplay
integer(kind=jpim), parameter ngs15
integer(kind=jpim), parameter jpxsec