3 & p_tauaerl,p_fac00,p_fac01,p_fac10,p_fac11,k_jp,k_jt,k_jt1,p_oneminus,&
4 & p_colh2o,p_colch4,k_laytrop,p_selffac,p_selffrac,k_indself,pfrac)
23 INTEGER(KIND=JPIM),
INTENT(IN) :: KLEV
24 REAL(KIND=JPRB) ,
INTENT(OUT) :: P_TAU(
jpgpt,
jplay)
25 REAL(KIND=JPRB) ,
INTENT(IN) :: P_TAUAERL(
jplay,
jpband)
26 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC00(
jplay)
27 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC01(
jplay)
28 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC10(
jplay)
29 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC11(
jplay)
30 INTEGER(KIND=JPIM),
INTENT(IN) :: K_JP(
jplay)
31 INTEGER(KIND=JPIM),
INTENT(IN) :: K_JT(
jplay)
32 INTEGER(KIND=JPIM),
INTENT(IN) :: K_JT1(
jplay)
33 REAL(KIND=JPRB) ,
INTENT(IN) :: P_ONEMINUS
34 REAL(KIND=JPRB) ,
INTENT(IN) :: P_COLH2O(
jplay)
35 REAL(KIND=JPRB) ,
INTENT(IN) :: P_COLCH4(
jplay)
36 INTEGER(KIND=JPIM),
INTENT(IN) :: K_LAYTROP
37 REAL(KIND=JPRB) ,
INTENT(IN) :: P_SELFFAC(
jplay)
38 REAL(KIND=JPRB) ,
INTENT(IN) :: P_SELFFRAC(
jplay)
39 INTEGER(KIND=JPIM),
INTENT(IN) :: K_INDSELF(
jplay)
40 REAL(KIND=JPRB) ,
INTENT(OUT) :: PFRAC(
jpgpt,
jplay)
48 INTEGER(KIND=JPIM) :: IG, IND0, IND1, INDS, JS, I_LAY
50 REAL(KIND=JPRB) :: Z_FAC000, Z_FAC001, Z_FAC010, Z_FAC011, Z_FAC100, Z_FAC101,&
51 & Z_FAC110, Z_FAC111, Z_FS, Z_SPECCOMB, Z_SPECMULT, Z_SPECPARM
52 REAL(KIND=JPRB) :: ZHOOK_HANDLE
65 DO i_lay = 1, k_laytrop
66 z_speccomb = p_colh2o(i_lay) +
strrat*p_colch4(i_lay)
67 z_specparm = p_colh2o(i_lay)/z_speccomb
68 z_specparm = min(z_specparm,p_oneminus)
69 z_specmult = 8._jprb*(z_specparm)
70 js = 1 + int(z_specmult)
71 z_fs = mod(z_specmult,1.0_jprb)
73 z_fac000 = (1.0_jprb - z_fs) * p_fac00(i_lay)
74 z_fac010 = (1.0_jprb - z_fs) * p_fac10(i_lay)
75 z_fac100 = z_fs * p_fac00(i_lay)
76 z_fac110 = z_fs * p_fac10(i_lay)
77 z_fac001 = (1.0_jprb - z_fs) * p_fac01(i_lay)
78 z_fac011 = (1.0_jprb - z_fs) * p_fac11(i_lay)
79 z_fac101 = z_fs * p_fac01(i_lay)
80 z_fac111 = z_fs * p_fac11(i_lay)
82 ind0 = ((k_jp(i_lay)-1)*5+(k_jt(i_lay)-1))*
nspa(16) + js
83 ind1 = (k_jp(i_lay)*5+(k_jt1(i_lay)-1))*
nspa(16) + js
84 inds = k_indself(i_lay)
88 p_tau(
ngs15+ig,i_lay) = z_speccomb *&
97 & (z_fac000 *
absa(ind0 ,ig) +&
98 & z_fac100 *
absa(ind0+ 1,ig) +&
99 & z_fac010 *
absa(ind0+ 9,ig) +&
100 & z_fac110 *
absa(ind0+10,ig) +&
101 & z_fac001 *
absa(ind1 ,ig) +&
102 & z_fac101 *
absa(ind1+ 1,ig) +&
103 & z_fac011 *
absa(ind1+ 9,ig) +&
104 & z_fac111 *
absa(ind1+10,ig))+&
105 & p_colh2o(i_lay) * &
106 & p_selffac(i_lay) * (
selfref(inds,ig) + &
107 & p_selffrac(i_lay) *&
109 & + p_tauaerl(i_lay,16)
113 p_tau(
ngs15+ig,i_lay) = z_speccomb *&
122 & (z_fac000 *
absa(ind0 ,ig) +&
123 & z_fac100 *
absa(ind0+ 1,ig) +&
124 & z_fac010 *
absa(ind0+ 9,ig) +&
125 & z_fac110 *
absa(ind0+10,ig) +&
126 & z_fac001 *
absa(ind1 ,ig) +&
127 & z_fac101 *
absa(ind1+ 1,ig) +&
128 & z_fac011 *
absa(ind1+ 9,ig) +&
129 & z_fac111 *
absa(ind1+10,ig))+&
131 & p_selffac(i_lay) * (
selfref(inds,ig) +&
132 & p_selffrac(i_lay) *&
134 & + p_tauaerl(i_lay,16)
142 DO i_lay = k_laytrop+1, klev
146 p_tau(
ngs15+ig,i_lay) = p_tauaerl(i_lay,16)
147 pfrac(
ngs15+ig,i_lay) = 0.0_jprb
149 p_tau(
ngs15+ig,i_lay) = p_tauaerl(i_lay,16)
150 pfrac(
ngs15+ig,i_lay) = 0.0_jprb
integer(kind=jpim), parameter jpgpt
integer(kind=jpim), parameter jpband
real(kind=jprb), dimension(585, ng16) absa
real(kind=jprb), dimension(ng16, 9) fracrefa
integer(kind=jpim), dimension(16) nspa
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
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
integer(kind=jpim), parameter ngs15