3  & p_fac00   , p_fac01  , p_fac10   , p_fac11,&
 
    4  & k_jp      , k_jt     , k_jt1     , p_oneminus,&
 
    5  & p_colh2o  , p_colch4 , p_colmol,&
 
    6  & k_laytrop , p_selffac, p_selffrac, k_indself  , p_forfac, p_forfrac, k_indfor,&
 
    7  & p_sfluxzen, p_taug   , p_taur    &
 
   26 INTEGER(KIND=JPIM),
INTENT(IN)    :: KLEV 
 
   27 REAL(KIND=JPRB)   ,
INTENT(IN)    :: P_FAC00(
jplay) 
 
   28 REAL(KIND=JPRB)   ,
INTENT(IN)    :: P_FAC01(
jplay) 
 
   29 REAL(KIND=JPRB)   ,
INTENT(IN)    :: P_FAC10(
jplay) 
 
   30 REAL(KIND=JPRB)   ,
INTENT(IN)    :: P_FAC11(
jplay) 
 
   31 INTEGER(KIND=JPIM),
INTENT(IN)    :: K_JP(
jplay) 
 
   32 INTEGER(KIND=JPIM),
INTENT(IN)    :: K_JT(
jplay) 
 
   33 INTEGER(KIND=JPIM),
INTENT(IN)    :: K_JT1(
jplay) 
 
   34 REAL(KIND=JPRB)   ,
INTENT(IN)    :: P_ONEMINUS 
 
   35 REAL(KIND=JPRB)   ,
INTENT(IN)    :: P_COLH2O(
jplay) 
 
   36 REAL(KIND=JPRB)   ,
INTENT(IN)    :: P_COLCH4(
jplay) 
 
   37 REAL(KIND=JPRB)   ,
INTENT(IN)    :: P_COLMOL(
jplay) 
 
   38 INTEGER(KIND=JPIM),
INTENT(IN)    :: K_LAYTROP 
 
   39 REAL(KIND=JPRB)   ,
INTENT(IN)    :: P_SELFFAC(
jplay) 
 
   40 REAL(KIND=JPRB)   ,
INTENT(IN)    :: P_SELFFRAC(
jplay) 
 
   41 INTEGER(KIND=JPIM),
INTENT(IN)    :: K_INDSELF(
jplay) 
 
   42 REAL(KIND=JPRB)   ,
INTENT(IN)    :: P_FORFAC(
jplay) 
 
   43 REAL(KIND=JPRB)   ,
INTENT(IN)    :: P_FORFRAC(
jplay) 
 
   44 INTEGER(KIND=JPIM),
INTENT(IN)    :: K_INDFOR(
jplay)
 
   46 REAL(KIND=JPRB)   ,
INTENT(OUT)   :: P_SFLUXZEN(
jpg) 
 
   47 REAL(KIND=JPRB)   ,
INTENT(OUT)   :: P_TAUG(
jplay,
jpg) 
 
   48 REAL(KIND=JPRB)   ,
INTENT(OUT)   :: P_TAUR(
jplay,
jpg) 
 
   54 INTEGER(KIND=JPIM) :: IG, IND0, IND1, INDS, INDF, JS, I_LAY, I_LAYSOLFR, I_NLAYERS
 
   56 REAL(KIND=JPRB) :: Z_FAC000, Z_FAC001, Z_FAC010, Z_FAC011, Z_FAC100, Z_FAC101,&
 
   57  & Z_FAC110, Z_FAC111, Z_FS, Z_SPECCOMB, Z_SPECMULT, Z_SPECPARM, &
 
   59 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 
   68 i_laysolfr = k_laytrop
 
   70 DO i_lay = 1, k_laytrop
 
   72    & i_laysolfr = min(i_lay+1,k_laytrop)  
 
   73   z_speccomb = p_colh2o(i_lay) + 
strrat*p_colch4(i_lay)
 
   74   z_specparm = p_colh2o(i_lay)/z_speccomb 
 
   75   IF (z_specparm >= p_oneminus) z_specparm = p_oneminus
 
   76   z_specmult = 8.*(z_specparm)
 
   77   js = 1 + int(z_specmult)
 
   78   z_fs = mod(z_specmult, 1.0_jprb )
 
   87   ind0 = ((k_jp(i_lay)-1)*5+(k_jt(i_lay)-1))*
nspa(18) + js
 
   88   ind1 = (k_jp(i_lay)*5+(k_jt1(i_lay)-1))*
nspa(18) + js
 
   89   inds = k_indself(i_lay)
 
   90   indf = k_indfor(i_lay)
 
   91   z_tauray = p_colmol(i_lay) * 
rayl 
   95     p_taug(i_lay,ig) = z_speccomb * &
 
  105      & (1. - z_fs) * ( 
absa(ind0,ig) * p_fac00(i_lay) + &
 
  106      &                 
absa(ind0+9,ig) * p_fac10(i_lay) + &
 
  107      &                 
absa(ind1,ig) * p_fac01(i_lay) + &
 
  108      &                 
absa(ind1+9,ig) * p_fac11(i_lay) ) + &
 
  109      & z_fs        * ( 
absa(ind0+1,ig) * p_fac00(i_lay) + &
 
  110      &                 
absa(ind0+10,ig) * p_fac10(i_lay) + &
 
  111      &                 
absa(ind1+1,ig) * p_fac01(i_lay) + &
 
  112      &                 
absa(ind1+10,ig) * p_fac11(i_lay) ) &
 
  114      & p_colh2o(i_lay) * &
 
  115      & (p_selffac(i_lay) * (
selfrefc(inds,ig) + &
 
  116      & p_selffrac(i_lay) * &
 
  118      & p_forfac(i_lay) * (
forrefc(indf,ig) + &
 
  119      & p_forfrac(i_lay) * &
 
  123     IF (i_lay == i_laysolfr) p_sfluxzen(ig) = 
sfluxrefc(ig,js)  &
 
  125     p_taur(i_lay,ig) = z_tauray
 
  129 DO i_lay = k_laytrop+1, i_nlayers
 
  130   ind0 = ((k_jp(i_lay)-13)*5+(k_jt(i_lay)-1))*
nspb(18) + 1
 
  131   ind1 = ((k_jp(i_lay)-12)*5+(k_jt1(i_lay)-1))*
nspb(18) + 1
 
  132   z_tauray = p_colmol(i_lay) * 
rayl 
  136     p_taug(i_lay,ig) = p_colch4(i_lay) * &
 
  137      & (p_fac00(i_lay) * 
absb(ind0,ig) + &
 
  138      & p_fac10(i_lay) * 
absb(ind0+1,ig) + &
 
  139      & p_fac01(i_lay) * 
absb(ind1,ig) +       &
 
  140      & p_fac11(i_lay) * 
absb(ind1+1,ig))   
 
  143     p_taur(i_lay,ig) = z_tauray
 
real(kind=jprb), dimension(3, ng18) forrefc
 
integer(kind=jpim), parameter jplay
 
subroutine srtm_taumol18(KLEV, P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, P_ONEMINUS, P_COLH2O, P_COLCH4, P_COLMOL, K_LAYTROP, P_SELFFAC, P_SELFFRAC, K_INDSELF, P_FORFAC, P_FORFRAC, K_INDFOR, P_SFLUXZEN, P_TAUG, P_TAUR)
 
integer(kind=jpim), parameter ng18
 
integer(kind=jpim) layreffr
 
integer(kind=jpim), dimension(16:29) nspa
 
real(kind=jprb), dimension(585, ng18) absa
 
integer(kind=jpim), dimension(16:29) nspb
 
real(kind=jprb), dimension(ng18, 9) sfluxrefc
 
real(kind=jprb), dimension(10, ng18) selfrefc
 
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
 
real(kind=jprb), dimension(235, ng18) absb
 
integer(kind=jpim), parameter jpg