3 & p_fac00 , p_fac01 , p_fac10 , p_fac11,&
4 & k_jp , k_jt , k_jt1 , p_oneminus,&
5 & p_colmol , p_colo2 , p_colo3,&
7 & p_sfluxzen, p_taug , p_taur &
33 INTEGER(KIND=JPIM),
INTENT(IN) :: KLEV
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 INTEGER(KIND=JPIM),
INTENT(IN) :: K_JP(
jplay)
39 INTEGER(KIND=JPIM),
INTENT(IN) :: K_JT(
jplay)
40 INTEGER(KIND=JPIM),
INTENT(IN) :: K_JT1(
jplay)
41 REAL(KIND=JPRB) ,
INTENT(IN) :: P_ONEMINUS
42 REAL(KIND=JPRB) ,
INTENT(IN) :: P_COLMOL(
jplay)
43 REAL(KIND=JPRB) ,
INTENT(IN) :: P_COLO2(
jplay)
44 REAL(KIND=JPRB) ,
INTENT(IN) :: P_COLO3(
jplay)
45 INTEGER(KIND=JPIM),
INTENT(IN) :: K_LAYTROP
47 REAL(KIND=JPRB) ,
INTENT(OUT) :: P_SFLUXZEN(
jpg)
48 REAL(KIND=JPRB) ,
INTENT(OUT) :: P_TAUG(
jplay,
jpg)
49 REAL(KIND=JPRB) ,
INTENT(OUT) :: P_TAUR(
jplay,
jpg)
55 INTEGER(KIND=JPIM) :: IG, IND0, IND1, JS, I_LAY, I_LAYSOLFR, I_NLAYERS
57 REAL(KIND=JPRB) :: Z_FAC000, Z_FAC001, Z_FAC010, Z_FAC011, Z_FAC100, Z_FAC101,&
58 & Z_FAC110, Z_FAC111, Z_FS, Z_SPECCOMB, Z_SPECMULT, Z_SPECPARM, &
60 REAL(KIND=JPRB) :: ZHOOK_HANDLE
69 DO i_lay = 1, k_laytrop
70 z_speccomb = p_colo3(i_lay) +
strrat*p_colo2(i_lay)
71 z_specparm = p_colo3(i_lay)/z_speccomb
72 IF (z_specparm >= p_oneminus) z_specparm = p_oneminus
73 z_specmult = 8.*(z_specparm)
74 js = 1 + int(z_specmult)
75 z_fs = mod(z_specmult, 1.0_jprb )
84 ind0 = ((k_jp(i_lay)-1)*5+(k_jt(i_lay)-1))*
nspa(28) + js
85 ind1 = (k_jp(i_lay)*5+(k_jt1(i_lay)-1))*
nspa(28) + js
86 z_tauray = p_colmol(i_lay) *
rayl
90 p_taug(i_lay,ig) = z_speccomb * &
100 & (1. - z_fs) * (
absa(ind0,ig) * p_fac00(i_lay) + &
101 &
absa(ind0+9,ig) * p_fac10(i_lay) + &
102 &
absa(ind1,ig) * p_fac01(i_lay) + &
103 &
absa(ind1+9,ig) * p_fac11(i_lay) ) + &
104 & z_fs * (
absa(ind0+1,ig) * p_fac00(i_lay) + &
105 &
absa(ind0+10,ig) * p_fac10(i_lay) + &
106 &
absa(ind1+1,ig) * p_fac01(i_lay) + &
107 &
absa(ind1+10,ig) * p_fac11(i_lay) ) &
111 p_taur(i_lay,ig) = z_tauray
115 i_laysolfr = i_nlayers
117 DO i_lay = k_laytrop+1, i_nlayers
120 z_speccomb = p_colo3(i_lay) +
strrat*p_colo2(i_lay)
121 z_specparm = p_colo3(i_lay)/z_speccomb
122 IF (z_specparm >= p_oneminus) z_specparm = p_oneminus
123 z_specmult = 4.*(z_specparm)
124 js = 1 + int(z_specmult)
125 z_fs = mod(z_specmult, 1.0_jprb )
134 ind0 = ((k_jp(i_lay)-13)*5+(k_jt(i_lay)-1))*
nspb(28) + js
135 ind1 = ((k_jp(i_lay)-12)*5+(k_jt1(i_lay)-1))*
nspb(28) + js
136 z_tauray = p_colmol(i_lay) *
rayl
140 p_taug(i_lay,ig) = z_speccomb * &
150 & (1. - z_fs) * (
absb(ind0,ig) * p_fac00(i_lay) + &
151 &
absb(ind0+5,ig) * p_fac10(i_lay) + &
152 &
absb(ind1,ig) * p_fac01(i_lay) + &
153 &
absb(ind1+5,ig) * p_fac11(i_lay) ) + &
154 & z_fs * (
absb(ind0+1,ig) * p_fac00(i_lay) + &
155 &
absb(ind0+6,ig) * p_fac10(i_lay) + &
156 &
absb(ind1+1,ig) * p_fac01(i_lay) + &
157 &
absb(ind1+6,ig) * p_fac11(i_lay) ) &
161 IF (i_lay == i_laysolfr) p_sfluxzen(ig) =
sfluxrefc(ig,js) &
163 p_taur(i_lay,ig) = z_tauray
real(kind=jprb), dimension(1175, ng28) absb
integer(kind=jpim) layreffr
integer(kind=jpim), parameter jplay
integer(kind=jpim), parameter ng28
integer(kind=jpim), dimension(16:29) nspa
real(kind=jprb), dimension(585, ng28) absa
integer(kind=jpim), dimension(16:29) nspb
real(kind=jprb), dimension(ng28, 5) sfluxrefc
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
subroutine srtm_taumol28(KLEV, P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, P_ONEMINUS, P_COLMOL, P_COLO2, P_COLO3, K_LAYTROP, P_SFLUXZEN, P_TAUG, P_TAUR)
integer(kind=jpim), parameter jpg