3 & p_tauaerl,p_fac00,p_fac01,p_fac10,p_fac11,k_jp,k_jt,k_jt1,&
4 & p_colh2o,p_colo3,p_coln2o,p_co2mult,k_layswtch,p_selffac,p_selffrac,k_indself,pfrac)
28 INTEGER(KIND=JPIM),
INTENT(IN) :: KLEV
29 REAL(KIND=JPRB) ,
INTENT(OUT) :: P_TAU(
jpgpt,
jplay)
31 REAL(KIND=JPRB) ,
INTENT(IN) :: P_TAUAERL(
jplay,
jpband)
32 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC00(
jplay)
33 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC01(
jplay)
34 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC10(
jplay)
35 REAL(KIND=JPRB) ,
INTENT(IN) :: P_FAC11(
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_COLH2O(
jplay)
40 REAL(KIND=JPRB) ,
INTENT(IN) :: P_COLO3(
jplay)
41 REAL(KIND=JPRB) ,
INTENT(IN) :: P_COLN2O(
jplay)
42 REAL(KIND=JPRB) ,
INTENT(IN) :: P_CO2MULT(
jplay)
43 INTEGER(KIND=JPIM),
INTENT(IN) :: K_LAYSWTCH
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)
58 REAL(KIND=JPRB) :: Z_N2OMULT(
jplay)
60 INTEGER(KIND=JPIM) :: IG, I_LAY
62 REAL(KIND=JPRB) :: Z_COLREF1, Z_COLREF2, Z_CURRN2O, Z_FP, Z_RATIO, Z_WCOMB1, Z_WCOMB2
63 REAL(KIND=JPRB) :: ZHOOK_HANDLE
71 DO i_lay = 1, k_layswtch
72 z_fp = p_fac01(i_lay) + p_fac11(i_lay)
73 ind0(i_lay) = ((k_jp(i_lay)-1)*5+(k_jt(i_lay)-1))*
nspa(8) + 1
74 ind1(i_lay) = (k_jp(i_lay)*5+(k_jt1(i_lay)-1))*
nspa(8) + 1
75 inds(i_lay) = k_indself(i_lay)
76 z_colref1 =
n2oref(k_jp(i_lay))
77 z_colref2 =
n2oref(k_jp(i_lay)+1)
78 z_wcomb1 = 1.0_jprb/
h2oref(k_jp(i_lay))
79 z_wcomb2 = 1.0_jprb/
h2oref(k_jp(i_lay)+1)
80 z_ratio = (z_colref1*z_wcomb1)+z_fp*((z_colref2*z_wcomb2)-(z_colref1*z_wcomb1))
81 z_currn2o = p_colh2o(i_lay) * z_ratio
82 z_n2omult(i_lay) = p_coln2o(i_lay) - z_currn2o
87 DO i_lay = 1, k_layswtch
89 p_tau(
ngs7+ig,i_lay) = p_colh2o(i_lay) *&
90 & (p_fac00(i_lay) *
absa(ind0(i_lay) ,ig) +&
91 & p_fac10(i_lay) *
absa(ind0(i_lay)+1,ig) +&
92 & p_fac01(i_lay) *
absa(ind1(i_lay) ,ig) +&
93 & p_fac11(i_lay) *
absa(ind1(i_lay)+1,ig) +&
94 & p_selffac(i_lay) * (
selfref(inds(i_lay),ig) + &
95 & p_selffrac(i_lay) *&
97 & + p_wx(3,i_lay) *
cfc12(ig)&
99 & + p_co2mult(i_lay) *
absco2a(ig)&
100 & + z_n2omult(i_lay) *
absn2oa(ig)&
101 & + p_tauaerl(i_lay,8)
106 DO i_lay = k_layswtch+1, klev
107 z_fp = p_fac01(i_lay) + p_fac11(i_lay)
108 ind0(i_lay) = ((k_jp(i_lay)-7)*5+(k_jt(i_lay)-1))*
nspb(8) + 1
109 ind1(i_lay) = ((k_jp(i_lay)-6)*5+(k_jt1(i_lay)-1))*
nspb(8) + 1
110 z_colref1 =
n2oref(k_jp(i_lay))
111 z_colref2 =
n2oref(k_jp(i_lay)+1)
112 z_wcomb1 = 1.0_jprb/
o3ref(k_jp(i_lay))
113 z_wcomb2 = 1.0_jprb/
o3ref(k_jp(i_lay)+1)
114 z_ratio = (z_colref1*z_wcomb1)+z_fp*((z_colref2*z_wcomb2)-(z_colref1*z_wcomb1))
115 z_currn2o = p_colo3(i_lay) * z_ratio
116 z_n2omult(i_lay) = p_coln2o(i_lay) - z_currn2o
121 DO i_lay = k_layswtch+1, klev
123 p_tau(
ngs7+ig,i_lay) = p_colo3(i_lay) *&
124 & (p_fac00(i_lay) *
absb(ind0(i_lay) ,ig) +&
125 & p_fac10(i_lay) *
absb(ind0(i_lay)+1,ig) +&
126 & p_fac01(i_lay) *
absb(ind1(i_lay) ,ig) +&
127 & p_fac11(i_lay) *
absb(ind1(i_lay)+1,ig)) &
128 & + p_wx(3,i_lay) *
cfc12(ig)&
130 & + p_co2mult(i_lay) *
absco2b(ig)&
131 & + z_n2omult(i_lay) *
absn2ob(ig)&
132 & + p_tauaerl(i_lay,8)
real(kind=jprb), dimension(ng8) cfc22adj
real(kind=jprb), dimension(ng8) absn2oa
integer(kind=jpim), parameter jpgpt
real(kind=jprb), dimension(59) o3ref
integer(kind=jpim), parameter jpband
subroutine rrtm_taumol8(KLEV, P_TAU, P_WX, P_TAUAERL, P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, P_COLH2O, P_COLO3, P_COLN2O, P_CO2MULT, K_LAYSWTCH, P_SELFFAC, P_SELFFRAC, K_INDSELF, PFRAC)
real(kind=jprb), dimension(35, ng8) absa
integer(kind=jpim), dimension(16) nspb
integer(kind=jpim), parameter ng8
real(kind=jprb), dimension(10, ng8) selfref
real(kind=jprb), dimension(ng8) fracrefb
integer(kind=jpim), dimension(16) nspa
real(kind=jprb), dimension(ng8) absco2b
real(kind=jprb), dimension(59) n2oref
integer(kind=jpim), parameter ngs7
real(kind=jprb), dimension(ng8) absco2a
real(kind=jprb), dimension(59) h2oref
integer(kind=jpim), parameter jplay
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
real(kind=jprb), dimension(ng8) absn2ob
real(kind=jprb), dimension(ng8) cfc12
real(kind=jprb), dimension(ng8) fracrefa
real(kind=jprb), dimension(265, ng8) absb
integer(kind=jpim), parameter jpxsec