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