3 & p_tauaerl,p_fac00,p_fac01,p_fac10,p_fac11,p_forfac,k_jp,k_jt,k_jt1,p_oneminus,&
4 & p_colh2o,p_colco2, p_colo3,k_laytrop,p_selffac,p_selffrac,k_indself,pfrac)
27 INTEGER(KIND=JPIM),
INTENT(IN) :: KLEV
28 REAL(KIND=JPRB) ,
INTENT(OUT) :: P_TAU(
jpgpt,
jplay)
30 REAL(KIND=JPRB) ,
INTENT(IN) :: P_TAUAERL(
jplay,
jpband)
31 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC00(
jplay)
32 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC01(
jplay)
33 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC10(
jplay)
34 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC11(
jplay)
35 REAL(KIND=JPRB) :: P_FORFAC(
jplay)
36 INTEGER(KIND=JPIM),
INTENT(IN) :: K_JP(
jplay)
37 INTEGER(KIND=JPIM),
INTENT(IN) :: K_JT(
jplay)
38 INTEGER(KIND=JPIM),
INTENT(IN) :: K_JT1(
jplay)
39 REAL(KIND=JPRB) ,
INTENT(IN) :: P_ONEMINUS
40 REAL(KIND=JPRB) ,
INTENT(IN) :: P_COLH2O(
jplay)
41 REAL(KIND=JPRB) ,
INTENT(IN) :: P_COLCO2(
jplay)
42 REAL(KIND=JPRB) ,
INTENT(IN) :: P_COLO3(
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)
56 INTEGER(KIND=JPIM) :: IJS(
jplay)
57 REAL(KIND=JPRB) :: ZFS(
jplay),Z_SPECCOMB(
jplay)
60 INTEGER(KIND=JPIM) :: IG, JS, I_LAY
62 REAL(KIND=JPRB) :: Z_FAC000, Z_FAC001, Z_FAC010, Z_FAC011, Z_FAC100, Z_FAC101,&
63 & Z_FAC110, Z_FAC111, Z_FS, Z_SPECMULT, Z_SPECPARM
64 REAL(KIND=JPRB) :: ZHOOK_HANDLE
73 DO i_lay = 1, k_laytrop
74 z_speccomb(i_lay) = p_colh2o(i_lay) +
strrat1*p_colco2(i_lay)
75 z_specparm = p_colh2o(i_lay)/z_speccomb(i_lay)
76 z_specparm=min(p_oneminus,z_specparm)
77 z_specmult = 8._jprb*(z_specparm)
78 js = 1 + int(z_specmult)
79 z_fs = mod(z_specmult,1.0_jprb)
80 ind0(i_lay) = ((k_jp(i_lay)-1)*5+(k_jt(i_lay)-1))*
nspa(5) + js
81 ind1(i_lay) = (k_jp(i_lay)*5+(k_jt1(i_lay)-1))*
nspa(5) + js
82 inds(i_lay) = k_indself(i_lay)
90 DO i_lay = 1, k_laytrop
107 p_tau(
ngs4+ig,i_lay) = z_speccomb(i_lay) * &
109 & ( (1. - z_fs) *(p_fac00(i_lay) *
absa(ind0(i_lay) ,ig) + &
110 & p_fac10(i_lay) *
absa(ind0(i_lay)+ 9,ig) + &
111 & p_fac01(i_lay) *
absa(ind1(i_lay) ,ig) + &
112 & p_fac11(i_lay) *
absa(ind1(i_lay)+ 9,ig))+ &
113 & z_fs *(p_fac00(i_lay) *
absa(ind0(i_lay)+ 1,ig) + &
114 & p_fac10(i_lay) *
absa(ind0(i_lay)+10,ig) + &
115 & p_fac01(i_lay) *
absa(ind1(i_lay)+ 1,ig) + &
116 & p_fac11(i_lay) *
absa(ind1(i_lay)+10,ig))) + &
126 & p_colh2o(i_lay) * &
127 & p_selffac(i_lay) * (
selfref(inds(i_lay),ig) + &
128 & p_selffrac(i_lay) *&
130 & + p_wx(1,i_lay) *
ccl4(ig)&
131 & + p_tauaerl(i_lay,5)
137 DO i_lay = k_laytrop+1, klev
138 z_speccomb(i_lay) = p_colo3(i_lay) +
strrat2*p_colco2(i_lay)
139 z_specparm = p_colo3(i_lay)/z_speccomb(i_lay)
140 z_specparm=min(p_oneminus,z_specparm)
141 z_specmult = 4._jprb*(z_specparm)
142 js = 1 + int(z_specmult)
143 z_fs = mod(z_specmult,1.0_jprb)
144 ind0(i_lay) = ((k_jp(i_lay)-13)*5+(k_jt(i_lay)-1))*
nspb(5) + js
145 ind1(i_lay) = ((k_jp(i_lay)-12)*5+(k_jt1(i_lay)-1))*
nspb(5) + js
160 DO i_lay = k_laytrop+1, klev
165 p_tau(
ngs4+ig,i_lay) = z_speccomb(i_lay) * &
166 & ( (1. - z_fs) *(p_fac00(i_lay) *
absb(ind0(i_lay) ,ig) + &
167 & p_fac10(i_lay) *
absb(ind0(i_lay)+5,ig) + &
168 & p_fac01(i_lay) *
absb(ind1(i_lay) ,ig) + &
169 & p_fac11(i_lay) *
absb(ind1(i_lay)+5,ig))+ &
170 & z_fs *(p_fac00(i_lay) *
absb(ind0(i_lay)+1,ig) + &
171 & p_fac10(i_lay) *
absb(ind0(i_lay)+6,ig) + &
172 & p_fac01(i_lay) *
absb(ind1(i_lay)+1,ig) + &
173 & p_fac11(i_lay) *
absb(ind1(i_lay)+6,ig))) &
183 & + p_wx(1,i_lay) *
ccl4(ig)&
184 & + p_tauaerl(i_lay,5)
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), dimension(16) nspb
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
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
integer(kind=jpim), parameter ng5
integer(kind=jpim), parameter jpxsec