1 SUBROUTINE sw2s ( KIDIA, KFDIA, KLON , KLEV , KAER, KNU &
 
    2   &,  
paer  ,paki, palbd, palbp, pcg   , pcld, pclear, pcldsw &
 
    3   &,  pdsig ,pomega,poz , prmu , psec  , ptau &
 
    5   &,  pfdown,pfup,pfdownc,pfupc                               )
 
  107 integer_m :: iind2(2), iind3(3)
 
  130 integer_m :: iabs, ikl, ikm1, jabs, jaj, jajp, jk, jkki,&
 
  131              &jkkp4, jkl, jklp1, jkm1, jl, jn, jn2j, jref
 
  134 real_b :: zaa, zbb, zcneb, zre11, zrki, zrmum1, zwh2o
 
  150   zrmum1 = _one_ - prmu(jl)
 
  151   zrayl(jl) =  
rray(knu,1) + zrmum1   * (
rray(knu,2) + zrmum1 &
 
  152    &* (
rray(knu,3) + zrmum1   * (
rray(knu,4) + zrmum1 &
 
  153    &* (
rray(knu,5) + zrmum1   *  
rray(knu,6)     ))))
 
  168   &, 
paer   , palbp , pdsig , zrayl, psec &
 
  169   &, zcgaz  , zpizaz, zray1 , zray2, zrefz, zrj0 &
 
  170   &, zrk0   , zrmu0 , ztauaz, ztra1, ztra2           )
 
  178   &, palbd , pcg   , pcld , pdsig, pomega, psec , ptau &
 
  179   &, zcgaz , zpizaz, zray1, zray2, zrefz , zrj  , zrk, zrmue &
 
  180   &, ztauaz, ztra1 , ztra2 )
 
  199     zrefz(jl,2,1) = palbd(jl,knu)
 
  200     zrefz(jl,1,1) = palbd(jl,knu)
 
  212       zrneb(jl) = pcld(jl,jkm1)
 
  213       IF (jabs == 1.AND. zrneb(jl) > _two_*
replog) 
THEN 
  214         zwh2o=max(pwv(jl,ikl),
replog)
 
  216         zbb=pud(jl,jabs,jkm1)*pqs(jl,ikl)/zwh2o
 
  217         zaa=max((pud(jl,jabs,jkm1)-zcneb*zbb)/(_one_-zcneb),
replog)
 
  219         zaa=pud(jl,jabs,jkm1)
 
  223       zs(jl) = exp(min(200._jprb,-zrki * zaa * 1.66_jprb))
 
  224       zg(jl) = exp(min(200._jprb,-zrki * zaa / zrmue(jl,jk)))
 
  230       zw(jl)= pomega(jl,knu,jkm1)
 
  231       zto1(jl) = ptau(jl,knu,jkm1) / zw(jl)&
 
  232        &+ ztauaz(jl,jkm1) / zpizaz(jl,jkm1)&
 
  235       zr21(jl) = ptau(jl,knu,jkm1) + ztauaz(jl,jkm1)
 
  236       zr22(jl) = ptau(jl,knu,jkm1) / zr21(jl)
 
  237       zgg(jl) = zr22(jl) * pcg(jl,knu,jkm1)&
 
  238        &+ (_one_ - zr22(jl)) * zcgaz(jl,jkm1)
 
  239       zw(jl) = zr21(jl) / zto1(jl)
 
  240       zref(jl) = zrefz(jl,1,jkm1)
 
  241       zrmuz(jl) = zrmue(jl,jk)
 
  245      &, zgg  , zref , zrmuz, zto1, zw &
 
  246      &, zre1 , zre2 , ztr1 , ztr2     )
 
  250       zrefz(jl,2,jk) = (_one_-zrneb(jl)) * (zray1(jl,jkm1)&
 
  251        &+ zrefz(jl,2,jkm1) * ztra1(jl,jkm1)&
 
  252        &* ztra2(jl,jkm1) ) * zg(jl) * zs(jl)&
 
  253        &+ zrneb(jl) * zre1(jl)
 
  255       ztr(jl,2,jkm1)=zrneb(jl)*ztr1(jl)&
 
  256        &+ (ztra1(jl,jkm1)) * zg(jl) * (_one_-zrneb(jl))
 
  258       zrefz(jl,1,jk)=(_one_-zrneb(jl))*(zray1(jl,jkm1)&
 
  259        &+zrefz(jl,1,jkm1)*ztra1(jl,jkm1)*ztra2(jl,jkm1)&
 
  260        &/(_one_-zray2(jl,jkm1)*zrefz(jl,1,jkm1)))*zg(jl)*zs(jl)&
 
  261        &+ zrneb(jl) * zre2(jl)
 
  263       ztr(jl,1,jkm1)= zrneb(jl) * ztr2(jl)&
 
  264        &+ (ztra1(jl,jkm1)/(_one_-zray2(jl,jkm1)&
 
  265        &* zrefz(jl,1,jkm1)))&
 
  266        &* zg(jl) * (_one_ -zrneb(jl))
 
  280       zrj(jl,jn,
klev+1) = _one_
 
  281       zrk(jl,jn,
klev+1) = zrefz(jl,jref,
klev+1)
 
  288         zre11 = zrj(jl,jn,jklp1) * ztr(jl,jref,jkl)
 
  289         zrj(jl,jn,jkl) = zre11
 
  290         zrk(jl,jn,jkl) = zre11 * zrefz(jl,jref,jkl)
 
  312       zrj(jl,jaj,jk)=        zrj(jl,jaj,jk) - zrj(jl,jajp,jk)
 
  313       zrk(jl,jaj,jk)=        zrk(jl,jaj,jk) - zrk(jl,jajp,jk)
 
  314       zrj(jl,jaj,jk)= max( zrj(jl,jaj,jk) , 
replog )
 
  315       zrk(jl,jaj,jk)= max( zrk(jl,jaj,jk) , 
replog )
 
  323       zrj(jl,jaj,jk)= max( zrj(jl,jaj,jk) , 
replog )
 
  324       zrk(jl,jaj,jk)= max( zrk(jl,jaj,jk) , 
replog )
 
  347         zw2(jl,1) = log( zrj(jl,jn,jk) / zrj(jl,jn2j,jk))/ paki(jl,jaj)
 
  348         zw2(jl,2) = log( zrk(jl,jn,jk) / zrk(jl,jn2j,jk))/ paki(jl,jaj)
 
  360         zrl(jl,jkki) = zr2(jl,1)
 
  361         zruef(jl,jkki) = zw2(jl,1)
 
  362         zrl(jl,jkkp4) = zr2(jl,2)
 
  363         zruef(jl,jkkp4) = zw2(jl,2)
 
  375     pfdown(jl,jk) = zrj(jl,1,jk) * zrl(jl,1) * zrl(jl,3)&
 
  376      &+ zrj(jl,2,jk) * zrl(jl,2) * zrl(jl,4)
 
  377     pfup(jl,jk)   = zrk(jl,1,jk) * zrl(jl,5) * zrl(jl,7)&
 
  378      &+ zrk(jl,2,jk) * zrl(jl,6) * zrl(jl,8)
 
  411     zw3(jl,1)=zw3(jl,1)+pud(jl,1,ikl)/zrmu0(jl,ikl)
 
  412     zw3(jl,2)=zw3(jl,2)+pud(jl,2,ikl)/zrmu0(jl,ikl)
 
  413     zw3(jl,3)=zw3(jl,3)+poz(jl,  ikl)/zrmu0(jl,ikl)
 
  414     zw4(jl)  =zw4(jl)  +pud(jl,4,ikl)/zrmu0(jl,ikl)
 
  415     zw5(jl)  =zw5(jl)  +pud(jl,5,ikl)/zrmu0(jl,ikl)
 
  424     zfd(jl,ikl) = zr3(jl,1)*zr3(jl,2)*zr3(jl,3)*zr4(jl)* zrj0(jl,jaj,ikl)
 
  434   zfu(jl,1) = zfd(jl,1)*palbp(jl,knu)
 
  440     zw3(jl,1)=zw3(jl,1)+pud(jl,1,ikm1)*1.66_jprb
 
  441     zw3(jl,2)=zw3(jl,2)+pud(jl,2,ikm1)*1.66_jprb
 
  442     zw3(jl,3)=zw3(jl,3)+poz(jl,  ikm1)*1.66_jprb
 
  443     zw4(jl)  =zw4(jl)  +pud(jl,4,ikm1)*1.66_jprb
 
  444     zw5(jl)  =zw5(jl)  +pud(jl,5,ikm1)*1.66_jprb
 
  453     zfu(jl,jk) = zr3(jl,1)*zr3(jl,2)*zr3(jl,3)*zr4(jl)* zrk0(jl,jaj,jk)
 
  473   pfdown(jl,
klev+1) = ((_one_-pclear(jl))*pfdown(jl,
klev+1)&
 
  474    &+ pclear(jl) * zfd(jl,
klev+1)) * 
rsun(knu)
 
  481     zw1(jl) = zw1(jl)+poz(jl,  ikl)/zrmue(jl,ikl)
 
  482     zw4(jl) = zw4(jl)+pud(jl,4,ikl)/zrmue(jl,ikl)
 
  483     zw5(jl) = zw5(jl)+pud(jl,5,ikl)/zrmue(jl,ikl)
 
  490     pfdown(jl,ikl) = ((_one_-pclear(jl))*zr1(jl)*zr4(jl)*pfdown(jl,&
 
  492      &+pclear(jl)*zfd(jl,ikl)) * 
rsun(knu)
 
  493     pfdownc(jl,ikl) = zfd(jl,ikl) * 
rsun(knu)
 
  502   pfup(jl,1) = ((_one_-pclear(jl))*zr1(jl)*zr4(jl) * pfup(jl,1)&
 
  503    &+pclear(jl)*zfu(jl,1)) * 
rsun(knu)
 
  504   pfupc(jl,1) = zfu(jl,1) * 
rsun(knu)
 
  510     zw1(jl) = zw1(jl)+poz(jl  ,ikm1)*1.66_jprb
 
  511     zw4(jl) = zw4(jl)+pud(jl,4,ikm1)*1.66_jprb
 
  512     zw5(jl) = zw5(jl)+pud(jl,5,ikm1)*1.66_jprb
 
  519     pfup(jl,jk) = ((_one_-pclear(jl))*zr1(jl)*zr4(jl) * pfup(jl,jk)&
 
  520      &+pclear(jl)*zfu(jl,jk)) * 
rsun(knu)
 
  521     pfupc(jl,jk) = zfu(jl,jk) * 
rsun(knu)
 
subroutine swclr(KIDIA, KFDIA, KLON, KLEV, KAER, KNU, PAER, PALBP, PDSIG, PRAYL, PSEC, PCGAZ, PPIZAZ, PRAY1, PRAY2, PREFZ, PRJ, PRK, PRMU0, PTAUAZ, PTRA1, PTRA2, PTRCLR,
 
real(kind=jprb), dimension(:), allocatable rsun
 
subroutine sw2s(KIDIA, KFDIA, KLON, KLEV, KAER, KNU, PAER, PAKI, PALBD, PALBP, PCG, PCLD, PCLEAR, PCLDSW, PDSIG, POMEGA, POZ, PRMU, PSEC, PTAU, PUD, PWV, PQS, PFDOWN, PFUP, PFDOWNC, PFUPC)
 
subroutine swr(KIDIA, KFDIA, KLON, KLEV, KNU, PALBD, PCG, PCLD, POMEGA, PSEC, PTAU, PCGAZ, PPIZAZ, PRAY1, PRAY2, PREFZ, PRJ, PRK, PRMUE, PTAUAZ, PTRA1, PTRA2, PTRCLD)
 
subroutine swde(KIDIA, KFDIA, KLON, PGG, PREF, PRMUZ, PTO1, PW, PRE1, PRE2, PTR1, PTR2)
 
subroutine swtt1(KIDIA, KFDIA, KLON, KNU, KABS, KIND, PU, PTR)
 
real(kind=jprb), dimension(6, 6) rray
 
INTERFACE SUBROUTINE RRTM_ECRT_140GP && paer
 
subroutine swtt(KIDIA, KFDIA, KLON, KNU, KA, PU, PTR)