3 & p_tauaerl,p_fac00,p_fac01,p_fac10,p_fac11,p_forfac,k_jp,k_jt,k_jt1,&
4 & p_colh2o,k_laytrop,p_selffac,p_selffrac,k_indself,pfrac)
30 INTEGER(KIND=JPIM),
INTENT(IN) :: KLEV
31 REAL(KIND=JPRB) ,
INTENT(OUT) :: P_TAU(
jpgpt,
jplay)
32 REAL(KIND=JPRB) ,
INTENT(IN) :: P_COLDRY(
jplay)
33 REAL(KIND=JPRB) ,
INTENT(IN) :: P_TAUAERL(
jplay,
jpband)
34 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC00(
jplay)
35 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC01(
jplay)
36 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC10(
jplay)
37 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC11(
jplay)
38 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FORFAC(
jplay)
39 INTEGER(KIND=JPIM),
INTENT(IN) :: K_JP(
jplay)
40 INTEGER(KIND=JPIM),
INTENT(IN) :: K_JT(
jplay)
41 INTEGER(KIND=JPIM),
INTENT(IN) :: K_JT1(
jplay)
42 REAL(KIND=JPRB) ,
INTENT(IN) :: P_COLH2O(
jplay)
43 INTEGER(KIND=JPIM),
INTENT(IN) :: K_LAYTROP
44 REAL(KIND=JPRB) ,
INTENT(IN) :: P_SELFFAC(
jplay)
45 REAL(KIND=JPRB) ,
INTENT(IN) :: P_SELFFRAC(
jplay)
46 INTEGER(KIND=JPIM),
INTENT(IN) :: K_INDSELF(
jplay)
47 REAL(KIND=JPRB) ,
INTENT(OUT) :: PFRAC(
jpgpt,
jplay)
57 REAL(KIND=JPRB) :: Z_FRACINT(
jplay)
60 INTEGER(KIND=JPIM) :: IFP, IFRAC, IG, JFRAC, I_LAY
62 REAL(KIND=JPRB) :: Z_FP, Z_H2OPARAM, Z_WATER
63 REAL(KIND=JPRB) :: ZHOOK_HANDLE
72 DO i_lay = 1, k_laytrop
73 z_water = 1.e20_jprb * p_colh2o(i_lay) / p_coldry(i_lay)
74 z_h2oparam = z_water/(z_water +.002_jprb)
88 IF (z_h2oparam <
refparam(jfrac))
THEN
99 z_fracint(i_lay) = (z_h2oparam-
refparam(ifrac))/&
103 DO i_lay = 1, k_laytrop
105 z_fp = p_fac11(i_lay) + p_fac01(i_lay)
106 ifp = 2.e2_jprb*z_fp+0.5_jprb
113 z_fc00(i_lay) = p_fac00(i_lay) *
corr2(ifp)
114 z_fc10(i_lay) = p_fac10(i_lay) *
corr2(ifp)
115 z_fc01(i_lay) = p_fac01(i_lay) *
corr1(ifp)
116 z_fc11(i_lay) = p_fac11(i_lay) *
corr1(ifp)
117 ind0(i_lay) = ((k_jp(i_lay)-1)*5+(k_jt(i_lay)-1))*
nspa(2) + 1
118 ind1(i_lay) = (k_jp(i_lay)*5+(k_jt1(i_lay)-1))*
nspa(2) + 1
119 inds(i_lay) = k_indself(i_lay)
124 DO i_lay = 1, k_laytrop
128 p_tau(
ngs1+ig,i_lay) = p_colh2o(i_lay) *&
129 & (z_fc00(i_lay) *
absa(ind0(i_lay) ,ig) +&
130 & z_fc10(i_lay) *
absa(ind0(i_lay)+1,ig) +&
131 & z_fc01(i_lay) *
absa(ind1(i_lay) ,ig) +&
132 & z_fc11(i_lay) *
absa(ind1(i_lay)+1,ig) +&
133 & p_selffac(i_lay) * (
selfref(inds(i_lay),ig) + &
134 & p_selffrac(i_lay) *&
136 & + p_forfac(i_lay) *
forref(ig) ) &
137 & + p_tauaerl(i_lay,2)
138 pfrac(
ngs1+ig,i_lay) =
fracrefa(ig,ifrac) + z_fracint(i_lay) *&
143 DO i_lay = k_laytrop+1, klev
144 z_fp = p_fac11(i_lay) + p_fac01(i_lay)
145 ifp = 2.e2_jprb*z_fp+0.5_jprb
150 z_fc00(i_lay) = p_fac00(i_lay) *
corr2(ifp)
151 z_fc10(i_lay) = p_fac10(i_lay) *
corr2(ifp)
152 z_fc01(i_lay) = p_fac01(i_lay) *
corr1(ifp)
153 z_fc11(i_lay) = p_fac11(i_lay) *
corr1(ifp)
154 ind0(i_lay) = ((k_jp(i_lay)-13)*5+(k_jt(i_lay)-1))*
nspb(2) + 1
155 ind1(i_lay) = ((k_jp(i_lay)-12)*5+(k_jt1(i_lay)-1))*
nspb(2) + 1
160 DO i_lay = k_laytrop+1, klev
162 p_tau(
ngs1+ig,i_lay) = p_colh2o(i_lay) *&
163 & (z_fc00(i_lay) *
absb(ind0(i_lay) ,ig) +&
164 & z_fc10(i_lay) *
absb(ind0(i_lay)+1,ig) +&
165 & z_fc01(i_lay) *
absb(ind1(i_lay) ,ig) +&
166 & z_fc11(i_lay) *
absb(ind1(i_lay)+1,ig)&
167 & + p_forfac(i_lay) *
forref(ig) ) &
168 & + p_tauaerl(i_lay,2)
real(kind=jprb), dimension(13) refparam
real(kind=jprb), dimension(0:200) corr2
integer(kind=jpim), parameter jpgpt
integer(kind=jpim), parameter jpband
real(kind=jprb), dimension(ng2) forref
real(kind=jprb), dimension(235, ng2) absb
integer(kind=jpim), dimension(16) nspb
integer(kind=jpim), dimension(16) nspa
real(kind=jprb), dimension(65, ng2) absa
integer(kind=jpim), parameter ng2
real(kind=jprb), dimension(ng2, 13) fracrefa
real(kind=jprb), dimension(10, ng2) selfref
integer(kind=jpim), parameter jplay
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
real(kind=jprb), dimension(ng2) fracrefb
subroutine rrtm_taumol2(KLEV, P_TAU, P_COLDRY, P_TAUAERL, P_FAC00, P_FAC01, P_FAC10, P_FAC11, P_FORFAC, K_JP, K_JT, K_JT1, P_COLH2O, K_LAYTROP, P_SELFFAC, P_SELFFRAC, K_INDSELF, PFRAC)
integer(kind=jpim), parameter ngs1
real(kind=jprb), dimension(0:200) corr1