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