Directory: | ./ |
---|---|
File: | rad/rrtm_gasabs1a_140gp.f90 |
Date: | 2022-01-11 19:19:34 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 29 | 29 | 100.0% |
Branches: | 6 | 8 | 75.0% |
Line | Branch | Exec | Source |
---|---|---|---|
1 | 119280 | SUBROUTINE RRTM_GASABS1A_140GP (KLEV,P_ATR1,P_OD,P_TF1,P_COLDRY,P_WX,& | |
2 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,P_FORFAC,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
3 | & P_COLH2O,P_COLCO2,P_COLO3,P_COLN2O,P_COLCH4,P_COLO2,P_CO2MULT,& | ||
4 | & K_LAYTROP,K_LAYSWTCH,K_LAYLOW,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
5 | |||
6 | ! Reformatted for F90 by JJMorcrette, ECMWF, 980714 | ||
7 | |||
8 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
9 | USE YOMHOOK ,ONLY : LHOOK, DR_HOOK | ||
10 | |||
11 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,JPXSEC | ||
12 | USE YOERRTAB , ONLY : TRANS ,BPADE | ||
13 | |||
14 | IMPLICIT NONE | ||
15 | |||
16 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
17 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_ATR1(JPGPT,JPLAY) | ||
18 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_OD(JPGPT,JPLAY) | ||
19 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TF1(JPGPT,JPLAY) | ||
20 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLDRY(JPLAY) | ||
21 | REAL(KIND=JPRB) ,INTENT(IN) :: P_WX(JPXSEC,JPLAY) ! Amount of trace gases | ||
22 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
23 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
24 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
25 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
26 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
27 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FORFAC(JPLAY) | ||
28 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
29 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
30 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
31 | REAL(KIND=JPRB) ,INTENT(IN) :: P_ONEMINUS | ||
32 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
33 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLCO2(JPLAY) | ||
34 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLO3(JPLAY) | ||
35 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLN2O(JPLAY) | ||
36 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLCH4(JPLAY) | ||
37 | REAL(KIND=JPRB) :: P_COLO2(JPLAY) ! Argument NOT used | ||
38 | REAL(KIND=JPRB) ,INTENT(IN) :: P_CO2MULT(JPLAY) | ||
39 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
40 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYSWTCH | ||
41 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYLOW | ||
42 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
43 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
44 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
45 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
46 | !- from AER | ||
47 | !- from INTFAC | ||
48 | !- from INTIND | ||
49 | !- from PRECISE | ||
50 | !- from PROFDATA | ||
51 | !- from SELF | ||
52 | !- from SP | ||
53 | REAL(KIND=JPRB) :: Z_TAU (JPGPT,JPLAY) | ||
54 | |||
55 | INTEGER(KIND=JPIM) :: IPR, ITR, I_LAY | ||
56 | |||
57 | REAL(KIND=JPRB) :: Z_ODEPTH, Z_SECANG, Z_TF | ||
58 | REAL(KIND=JPRB) :: ZHOOK_HANDLE | ||
59 | |||
60 | INTERFACE | ||
61 | SUBROUTINE RRTM_TAUMOL1 (KLEV,P_TAU,& | ||
62 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,P_FORFAC,K_JP,K_JT,K_JT1,& | ||
63 | & P_COLH2O,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
64 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
65 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,NG1 | ||
66 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
67 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
68 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
69 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
70 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
71 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
72 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
73 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FORFAC(JPLAY) | ||
74 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
75 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
76 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
77 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
78 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
79 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
80 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
81 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
82 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
83 | END SUBROUTINE RRTM_TAUMOL1 | ||
84 | END INTERFACE | ||
85 | INTERFACE | ||
86 | SUBROUTINE RRTM_TAUMOL10 (KLEV,P_TAU,& | ||
87 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,& | ||
88 | & P_COLH2O,K_LAYTROP,PFRAC) | ||
89 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
90 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,NG10 ,NGS9 | ||
91 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
92 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
93 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
94 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
95 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
96 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
97 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
98 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
99 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
100 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
101 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
102 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
103 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
104 | END SUBROUTINE RRTM_TAUMOL10 | ||
105 | END INTERFACE | ||
106 | INTERFACE | ||
107 | SUBROUTINE RRTM_TAUMOL11 (KLEV,P_TAU,& | ||
108 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,& | ||
109 | & P_COLH2O,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
110 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
111 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,NG11 ,NGS10 | ||
112 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
113 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
114 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
115 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
116 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
117 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
118 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
119 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
120 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
121 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
122 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
123 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
124 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
125 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
126 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
127 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
128 | END SUBROUTINE RRTM_TAUMOL11 | ||
129 | END INTERFACE | ||
130 | INTERFACE | ||
131 | SUBROUTINE RRTM_TAUMOL12 (KLEV,P_TAU,& | ||
132 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
133 | & P_COLH2O,P_COLCO2,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
134 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
135 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,NG12 ,NGS11 | ||
136 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
137 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
138 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
139 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
140 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
141 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
142 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
143 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
144 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
145 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
146 | REAL(KIND=JPRB) ,INTENT(IN) :: P_ONEMINUS | ||
147 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
148 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLCO2(JPLAY) | ||
149 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
150 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
151 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
152 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
153 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
154 | END SUBROUTINE RRTM_TAUMOL12 | ||
155 | END INTERFACE | ||
156 | INTERFACE | ||
157 | SUBROUTINE RRTM_TAUMOL13 (KLEV,P_TAU,& | ||
158 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
159 | & P_COLH2O,P_COLN2O,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
160 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
161 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,NG13 ,NGS12 | ||
162 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
163 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
164 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
165 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
166 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
167 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
168 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
169 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
170 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
171 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
172 | REAL(KIND=JPRB) ,INTENT(IN) :: P_ONEMINUS | ||
173 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
174 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLN2O(JPLAY) | ||
175 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
176 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
177 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
178 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
179 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
180 | END SUBROUTINE RRTM_TAUMOL13 | ||
181 | END INTERFACE | ||
182 | INTERFACE | ||
183 | SUBROUTINE RRTM_TAUMOL14 (KLEV,P_TAU,& | ||
184 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,& | ||
185 | & P_COLCO2,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
186 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
187 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,NGS13 | ||
188 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
189 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
190 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
191 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
192 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
193 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
194 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
195 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
196 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
197 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
198 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLCO2(JPLAY) | ||
199 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
200 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
201 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
202 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
203 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
204 | END SUBROUTINE RRTM_TAUMOL14 | ||
205 | END INTERFACE | ||
206 | INTERFACE | ||
207 | SUBROUTINE RRTM_TAUMOL15 (KLEV,P_TAU,& | ||
208 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
209 | & P_COLH2O,P_COLCO2,P_COLN2O,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
210 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
211 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,NGS14 | ||
212 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
213 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
214 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
215 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
216 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
217 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
218 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
219 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
220 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
221 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
222 | REAL(KIND=JPRB) ,INTENT(IN) :: P_ONEMINUS | ||
223 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
224 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLCO2(JPLAY) | ||
225 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLN2O(JPLAY) | ||
226 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
227 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
228 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
229 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
230 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
231 | END SUBROUTINE RRTM_TAUMOL15 | ||
232 | END INTERFACE | ||
233 | INTERFACE | ||
234 | SUBROUTINE RRTM_TAUMOL16 (KLEV,P_TAU,& | ||
235 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
236 | & P_COLH2O,P_COLCH4,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
237 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
238 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,NGS15 | ||
239 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
240 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
241 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
242 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
243 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
244 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
245 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
246 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
247 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
248 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
249 | REAL(KIND=JPRB) ,INTENT(IN) :: P_ONEMINUS | ||
250 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
251 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLCH4(JPLAY) | ||
252 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
253 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
254 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
255 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
256 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
257 | END SUBROUTINE RRTM_TAUMOL16 | ||
258 | END INTERFACE | ||
259 | INTERFACE | ||
260 | SUBROUTINE RRTM_TAUMOL2 (KLEV,P_TAU,P_COLDRY,& | ||
261 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,P_FORFAC,K_JP,K_JT,K_JT1,& | ||
262 | & P_COLH2O,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
263 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
264 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,NG2 ,NGS1 | ||
265 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
266 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
267 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLDRY(JPLAY) | ||
268 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
269 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
270 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
271 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
272 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
273 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FORFAC(JPLAY) | ||
274 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
275 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
276 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
277 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
278 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
279 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
280 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
281 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
282 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
283 | END SUBROUTINE RRTM_TAUMOL2 | ||
284 | END INTERFACE | ||
285 | INTERFACE | ||
286 | SUBROUTINE RRTM_TAUMOL3 (KLEV,P_TAU,& | ||
287 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,P_FORFAC,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
288 | & P_COLH2O,P_COLCO2,P_COLN2O,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
289 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
290 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,NG3 ,NGS2 | ||
291 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
292 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
293 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
294 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
295 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
296 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
297 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
298 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FORFAC(JPLAY) | ||
299 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
300 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
301 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
302 | REAL(KIND=JPRB) ,INTENT(IN) :: P_ONEMINUS | ||
303 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
304 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLCO2(JPLAY) | ||
305 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLN2O(JPLAY) | ||
306 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
307 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
308 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
309 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
310 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
311 | END SUBROUTINE RRTM_TAUMOL3 | ||
312 | END INTERFACE | ||
313 | INTERFACE | ||
314 | SUBROUTINE RRTM_TAUMOL4 (KLEV,P_TAU,& | ||
315 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,P_FORFAC,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
316 | & P_COLH2O,P_COLCO2,P_COLO3,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
317 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
318 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,NG4 ,NGS3 | ||
319 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
320 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
321 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
322 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
323 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
324 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
325 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
326 | REAL(KIND=JPRB) :: P_FORFAC(JPLAY) | ||
327 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
328 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
329 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
330 | REAL(KIND=JPRB) ,INTENT(IN) :: P_ONEMINUS | ||
331 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
332 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLCO2(JPLAY) | ||
333 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLO3(JPLAY) | ||
334 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
335 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
336 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
337 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
338 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
339 | END SUBROUTINE RRTM_TAUMOL4 | ||
340 | END INTERFACE | ||
341 | INTERFACE | ||
342 | SUBROUTINE RRTM_TAUMOL5 (KLEV,P_TAU,P_WX,& | ||
343 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,P_FORFAC,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
344 | & P_COLH2O,P_COLCO2, P_COLO3,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
345 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
346 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,JPXSEC ,NG5 ,NGS4 | ||
347 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
348 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
349 | REAL(KIND=JPRB) ,INTENT(IN) :: P_WX(JPXSEC,JPLAY) | ||
350 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
351 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
352 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
353 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
354 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
355 | REAL(KIND=JPRB) :: P_FORFAC(JPLAY) | ||
356 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
357 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
358 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
359 | REAL(KIND=JPRB) ,INTENT(IN) :: P_ONEMINUS | ||
360 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
361 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLCO2(JPLAY) | ||
362 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLO3(JPLAY) | ||
363 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
364 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
365 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
366 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
367 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
368 | END SUBROUTINE RRTM_TAUMOL5 | ||
369 | END INTERFACE | ||
370 | INTERFACE | ||
371 | SUBROUTINE RRTM_TAUMOL6 (KLEV,P_TAU,P_WX,& | ||
372 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,& | ||
373 | & P_COLH2O,P_CO2MULT,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
374 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
375 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,JPXSEC ,NG6 ,NGS5 | ||
376 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
377 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
378 | REAL(KIND=JPRB) ,INTENT(IN) :: P_WX(JPXSEC,JPLAY) | ||
379 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
380 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
381 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
382 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
383 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
384 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
385 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
386 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
387 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
388 | REAL(KIND=JPRB) ,INTENT(IN) :: P_CO2MULT(JPLAY) | ||
389 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
390 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
391 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
392 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
393 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
394 | END SUBROUTINE RRTM_TAUMOL6 | ||
395 | END INTERFACE | ||
396 | INTERFACE | ||
397 | SUBROUTINE RRTM_TAUMOL7 (KLEV,P_TAU,& | ||
398 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
399 | & P_COLH2O,P_COLO3,P_CO2MULT,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
400 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
401 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,NG7 ,NGS6 | ||
402 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
403 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
404 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
405 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
406 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
407 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
408 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
409 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
410 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
411 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
412 | REAL(KIND=JPRB) ,INTENT(IN) :: P_ONEMINUS | ||
413 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
414 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLO3(JPLAY) | ||
415 | REAL(KIND=JPRB) ,INTENT(IN) :: P_CO2MULT(JPLAY) | ||
416 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
417 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
418 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
419 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
420 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
421 | END SUBROUTINE RRTM_TAUMOL7 | ||
422 | END INTERFACE | ||
423 | INTERFACE | ||
424 | SUBROUTINE RRTM_TAUMOL8 (KLEV,P_TAU,P_WX,& | ||
425 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,& | ||
426 | & P_COLH2O,P_COLO3,P_COLN2O,P_CO2MULT,K_LAYSWTCH,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
427 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
428 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,JPXSEC ,NG8 ,NGS7 | ||
429 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
430 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
431 | REAL(KIND=JPRB) ,INTENT(IN) :: P_WX(JPXSEC,JPLAY) | ||
432 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
433 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
434 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
435 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
436 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
437 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
438 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
439 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
440 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
441 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLO3(JPLAY) | ||
442 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLN2O(JPLAY) | ||
443 | REAL(KIND=JPRB) ,INTENT(IN) :: P_CO2MULT(JPLAY) | ||
444 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYSWTCH | ||
445 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
446 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
447 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
448 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
449 | END SUBROUTINE RRTM_TAUMOL8 | ||
450 | END INTERFACE | ||
451 | INTERFACE | ||
452 | SUBROUTINE RRTM_TAUMOL9 (KLEV,P_TAU,& | ||
453 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
454 | & P_COLH2O,P_COLN2O,P_COLCH4,K_LAYTROP,K_LAYSWTCH,K_LAYLOW,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | ||
455 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
456 | USE PARRRTM , ONLY : JPLAY ,JPBAND ,JPGPT ,NG9 ,NGS8 | ||
457 | INTEGER(KIND=JPIM),INTENT(IN) :: KLEV | ||
458 | REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(JPGPT,JPLAY) | ||
459 | REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(JPLAY,JPBAND) | ||
460 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(JPLAY) | ||
461 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(JPLAY) | ||
462 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(JPLAY) | ||
463 | REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(JPLAY) | ||
464 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(JPLAY) | ||
465 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(JPLAY) | ||
466 | INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(JPLAY) | ||
467 | REAL(KIND=JPRB) ,INTENT(IN) :: P_ONEMINUS | ||
468 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(JPLAY) | ||
469 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLN2O(JPLAY) | ||
470 | REAL(KIND=JPRB) ,INTENT(IN) :: P_COLCH4(JPLAY) | ||
471 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP | ||
472 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYSWTCH | ||
473 | INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYLOW | ||
474 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFAC(JPLAY) | ||
475 | REAL(KIND=JPRB) ,INTENT(IN) :: P_SELFFRAC(JPLAY) | ||
476 | INTEGER(KIND=JPIM),INTENT(IN) :: K_INDSELF(JPLAY) | ||
477 | REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(JPGPT,JPLAY) | ||
478 | END SUBROUTINE RRTM_TAUMOL9 | ||
479 | END INTERFACE | ||
480 | |||
481 | !- SECANG is equal to the secant of the diffusivity angle. | ||
482 |
1/2✓ Branch 0 taken 119280 times.
✗ Branch 1 not taken.
|
119280 | IF (LHOOK) CALL DR_HOOK('RRTM_GASABS1A_140GP',0,ZHOOK_HANDLE) |
483 | Z_SECANG = 1.66_JPRB | ||
484 | |||
485 | CALL RRTM_TAUMOL1 (KLEV,Z_TAU,& | ||
486 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,P_FORFAC,K_JP,K_JT,K_JT1,& | ||
487 | 119280 | & P_COLH2O,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
488 | CALL RRTM_TAUMOL2 (KLEV,Z_TAU,P_COLDRY,& | ||
489 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,P_FORFAC,K_JP,K_JT,K_JT1,& | ||
490 | 119280 | & P_COLH2O,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
491 | CALL RRTM_TAUMOL3 (KLEV,Z_TAU,& | ||
492 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,P_FORFAC,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
493 | 119280 | & P_COLH2O,P_COLCO2,P_COLN2O,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
494 | CALL RRTM_TAUMOL4 (KLEV,Z_TAU,& | ||
495 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,P_FORFAC,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
496 | 119280 | & P_COLH2O,P_COLCO2,P_COLO3,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
497 | CALL RRTM_TAUMOL5 (KLEV,Z_TAU,P_WX,& | ||
498 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,P_FORFAC,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
499 | 119280 | & P_COLH2O,P_COLCO2,P_COLO3,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
500 | CALL RRTM_TAUMOL6 (KLEV,Z_TAU,P_WX,& | ||
501 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,& | ||
502 | 119280 | & P_COLH2O,P_CO2MULT,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
503 | CALL RRTM_TAUMOL7 (KLEV,Z_TAU,& | ||
504 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
505 | 119280 | & P_COLH2O,P_COLO3,P_CO2MULT,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
506 | CALL RRTM_TAUMOL8 (KLEV,Z_TAU,P_WX,& | ||
507 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,& | ||
508 | 119280 | & P_COLH2O,P_COLO3,P_COLN2O,P_CO2MULT,K_LAYSWTCH,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
509 | CALL RRTM_TAUMOL9 (KLEV,Z_TAU,& | ||
510 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
511 | 119280 | & P_COLH2O,P_COLN2O,P_COLCH4,K_LAYTROP,K_LAYSWTCH,K_LAYLOW,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
512 | CALL RRTM_TAUMOL10 (KLEV,Z_TAU,& | ||
513 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,& | ||
514 | 119280 | & P_COLH2O,K_LAYTROP,PFRAC) | |
515 | CALL RRTM_TAUMOL11 (KLEV,Z_TAU,& | ||
516 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,& | ||
517 | 119280 | & P_COLH2O,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
518 | CALL RRTM_TAUMOL12 (KLEV,Z_TAU,& | ||
519 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
520 | 119280 | & P_COLH2O,P_COLCO2,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
521 | CALL RRTM_TAUMOL13 (KLEV,Z_TAU,& | ||
522 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
523 | 119280 | & P_COLH2O,P_COLN2O,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
524 | CALL RRTM_TAUMOL14 (KLEV,Z_TAU,& | ||
525 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,& | ||
526 | 119280 | & P_COLCO2,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
527 | CALL RRTM_TAUMOL15 (KLEV,Z_TAU,& | ||
528 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
529 | 119280 | & P_COLH2O,P_COLCO2,P_COLN2O,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
530 | CALL RRTM_TAUMOL16 (KLEV,Z_TAU,& | ||
531 | & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,K_JP,K_JT,K_JT1,P_ONEMINUS,& | ||
532 | 119280 | & P_COLH2O,P_COLCH4,K_LAYTROP,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC) | |
533 | |||
534 | !- Loop over g-channels. | ||
535 |
2/2✓ Branch 0 taken 4651920 times.
✓ Branch 1 taken 119280 times.
|
4771200 | DO I_LAY = 1, KLEV |
536 |
2/2✓ Branch 0 taken 651268800 times.
✓ Branch 1 taken 4651920 times.
|
656040000 | DO IPR = 1, JPGPT |
537 | 651268800 | Z_ODEPTH = Z_SECANG * Z_TAU(IPR,I_LAY) | |
538 | 651268800 | P_OD(IPR,I_LAY) = Z_ODEPTH | |
539 | 651268800 | Z_ODEPTH=0.5D0*(ABS(Z_ODEPTH)+Z_ODEPTH) | |
540 | |||
541 | !-- revised code to get the pre-computed transmission | ||
542 | ! IF (ODEPTH.LE.0.) PRINT*, 'ODEPTH = ',ODEPTH | ||
543 | !! IF (ODEPTH <= _ZERO_)THEN | ||
544 | !! ATR1(IPR,LAY) = _ONE_ - TRANS(0) | ||
545 | !! TF1(IPR,LAY) = _ZERO_ | ||
546 | !! ELSE | ||
547 | |||
548 | 651268800 | Z_TF = Z_ODEPTH/(BPADE+Z_ODEPTH) | |
549 | 651268800 | ITR=INT(5.E+03_JPRB*Z_TF+0.5_JPRB) | |
550 | IF (ITR.LT.0) ITR=0 ! MPL 12.12.08 | ||
551 | 651268800 | P_ATR1(IPR,I_LAY) = 1.0_JPRB - TRANS(ITR) | |
552 | 655920720 | P_TF1(IPR,I_LAY) = Z_TF | |
553 | |||
554 | !! ENDIF | ||
555 | ENDDO | ||
556 | ENDDO | ||
557 | |||
558 | ! ----------------------------------------------------------------- | ||
559 | |||
560 |
1/2✓ Branch 0 taken 119280 times.
✗ Branch 1 not taken.
|
119280 | IF (LHOOK) CALL DR_HOOK('RRTM_GASABS1A_140GP',1,ZHOOK_HANDLE) |
561 | 119280 | END SUBROUTINE RRTM_GASABS1A_140GP | |
562 |