1 | SUBROUTINE SURRTFTR |
---|
2 | |
---|
3 | ! Adapted from Eli J. Mlawer, Atmospheric & Environmental Research. |
---|
4 | ! by JJMorcrette, ECMWF |
---|
5 | |
---|
6 | ! JJMorcrette 20110613 flexible number of g-points |
---|
7 | ! ABozzo 201306 updated to rrtmg v4.85 |
---|
8 | |
---|
9 | ! ------------------------------------------------------------------ |
---|
10 | |
---|
11 | USE PARKIND1 ,ONLY : JPIM , JPRB |
---|
12 | USE YOMHOOK ,ONLY : LHOOK, DR_HOOK |
---|
13 | |
---|
14 | !USE PARRRTM ,ONLY : JPBAND ,JPG |
---|
15 | USE YOERRTFTR ,ONLY : NGC ,NGS ,NGN ,NGB ,NGM , WT |
---|
16 | !USE YOERAD ,ONLY : NREDGLW |
---|
17 | USE YOERRTM ,ONLY : JPGPT |
---|
18 | !USE YOERRTM ,ONLY : JPGPT, & |
---|
19 | ! & NG1 , NG2 , NG3 , NG4 , NG5 , NG6 , NG7 , NG8 ,& |
---|
20 | ! & NG9 , NG10, NG11, NG12, NG13, NG14, NG15, NG16,& |
---|
21 | ! & NGS1, NGS2, NGS3, NGS4, NGS5, NGS6, NGS7, NGS8,& |
---|
22 | ! & NGS9, NGS10,NGS11,NGS12,NGS13,NGS14,NGS15,NGS16 |
---|
23 | |
---|
24 | ! ------------------------------------------------------------------ |
---|
25 | |
---|
26 | IMPLICIT NONE |
---|
27 | |
---|
28 | !INTEGER(KIND=JPIM) :: KGC(16), KGS(16), KGM(256), KGN(JPGPT), KGB(JPGPT) |
---|
29 | !!INTEGER(KIND=JPIM) :: KGC(JPG), KGS(JPG), KGM(JPG*JPBAND), KGN(JPGPT), KGB(JPGPT) |
---|
30 | |
---|
31 | INTEGER(KIND=JPIM) :: IGC70(16) , IGC140(16) , IGC256(16) |
---|
32 | INTEGER(KIND=JPIM) :: IGS70(16) , IGS140(16) , IGS256(16) |
---|
33 | |
---|
34 | INTEGER(KIND=JPIM) :: IGM70(256), IGM140(256), IGM256(256) |
---|
35 | |
---|
36 | INTEGER(KIND=JPIM) :: IGN70(70) , IGN140(140), IGN256(256) |
---|
37 | INTEGER(KIND=JPIM) :: IGB70(70) , IGB140(140), IGB256(256) |
---|
38 | |
---|
39 | REAL(KIND=JPRB) :: ZHOOK_HANDLE |
---|
40 | IF (LHOOK) CALL DR_HOOK('SURRTFTR',0,ZHOOK_HANDLE) |
---|
41 | |
---|
42 | !------------------------------------------------------------------------------- |
---|
43 | !-- configuration for EPS with 70 g-points |
---|
44 | |
---|
45 | IGC70( :) = (/4, 7, 8, 7, 8, 4, 6, 4, 6, 3, 4, 4, 2, 1, 1, 1 /) |
---|
46 | |
---|
47 | IGS70(:) = (/ 4, 11, 19, 26, 34, 38, 44, 48, & |
---|
48 | & 54, 57, 61, 65, 67, 68, 69, 70 /) |
---|
49 | |
---|
50 | IGM70(:) = (/& |
---|
51 | & 1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4, &! Band 1 |
---|
52 | & 1,1,2,2,3,3,4,4,5,5,6,6,7,7,7,7, &! Band 2 |
---|
53 | & 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8, &! Band 3 |
---|
54 | & 1,1,2,2,3,3,4,4,5,5,6,6,7,7,7,7, &! Band 4 |
---|
55 | & 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8, &! Band 5 |
---|
56 | & 1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4, &! Band 6 |
---|
57 | & 1,1,1,1,2,2,3,3,4,4,5,5,6,6,6,6, &! Band 7 |
---|
58 | & 1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4, &! Band 8 |
---|
59 | & 1,1,2,2,3,3,4,4,5,5,5,5,6,6,6,6, &! Band 9 |
---|
60 | & 1,1,1,1,2,2,2,2,3,3,3,3,3,3,3,3, &! Band 10 |
---|
61 | & 1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,4, &! Band 11 |
---|
62 | & 1,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4, &! Band 12 |
---|
63 | & 1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, &! Band 13 |
---|
64 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 14 |
---|
65 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 15 |
---|
66 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1/) ! Band 16 |
---|
67 | |
---|
68 | IGN70(:) = (/& |
---|
69 | & 4,4,4,4, &! Band 1 |
---|
70 | & 2,2,2,2,2,2,4, &! Band 2 |
---|
71 | & 2,2,2,2,2,2,2,2, &! Band 3 |
---|
72 | & 2,2,2,2,2,2,4, &! Band 4 |
---|
73 | & 2,2,2,2,2,2,2,2, &! Band 5 |
---|
74 | & 4,4,4,4, &! Band 6 |
---|
75 | & 4,2,2,2,2,4, &! Band 7 |
---|
76 | & 4,4,4,4, &! Band 8 |
---|
77 | & 2,2,2,2,4,4, &! Band 9 |
---|
78 | & 4,4,8, &! Band 10 |
---|
79 | & 2,4,4,6, &! Band 11 |
---|
80 | & 2,2,4,8, &! Band 12 |
---|
81 | & 6,10, &! Band 13 |
---|
82 | & 16, &! Band 14 |
---|
83 | & 16, &! Band 15 |
---|
84 | & 16/) ! Band 16 |
---|
85 | |
---|
86 | IGB70(:) = (/& |
---|
87 | & 1,1,1,1, &! Band 1 |
---|
88 | & 2,2,2,2,2,2,2, &! Band 2 |
---|
89 | & 3,3,3,3,3,3,3,3, &! Band 3 |
---|
90 | & 4,4,4,4,4,4,4, &! Band 4 |
---|
91 | & 5,5,5,5,5,5,5,5, &! Band 5 |
---|
92 | & 6,6,6,6, &! Band 6 |
---|
93 | & 7,7,7,7,7,7, &! Band 7 |
---|
94 | & 8,8,8,8, &! Band 8 |
---|
95 | & 9,9,9,9,9,9, &! Band 9 |
---|
96 | & 10,10,10, &! Band 10 |
---|
97 | & 11,11,11,11, &! Band 11 |
---|
98 | & 12,12,12,12, &! Band 12 |
---|
99 | & 13,13, &! Band 13 |
---|
100 | & 14, &! Band 14 |
---|
101 | & 15, &! Band 15 |
---|
102 | & 16/) ! Band 16 |
---|
103 | |
---|
104 | |
---|
105 | !------------------------------------------------------------------------------ |
---|
106 | !-- configuration with 140 g-points |
---|
107 | |
---|
108 | IGC140(:) = (/10, 12, 16, 14, 16, 8, 12, 8, 12, 6, 8, 8, 4, 2, 2, 2 /) |
---|
109 | |
---|
110 | IGS140(:) = (/ 10, 22, 38, 52, 68, 76, 88, 96, & |
---|
111 | & 108, 114, 122, 130, 134, 136, 138, 140 /) |
---|
112 | |
---|
113 | IGM140(:) = (/& |
---|
114 | & 1,2,3,3,4,4,5,5,6,6,7,7,8,8,9,10, &! Band 1 |
---|
115 | & 1,2,3,4,5,6,7,8,9,9,10,10,11,11,12,12, &! Band 2 |
---|
116 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 3 |
---|
117 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,14,14, &! Band 4 |
---|
118 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 5 |
---|
119 | & 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8, &! Band 6 |
---|
120 | & 1,1,2,2,3,4,5,6,7,8,9,10,11,11,12,12, &! Band 7 |
---|
121 | & 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8, &! Band 8 |
---|
122 | & 1,2,3,4,5,6,7,8,9,9,10,10,11,11,12,12, &! Band 9 |
---|
123 | & 1,1,2,2,3,3,4,4,5,5,5,5,6,6,6,6, &! Band 10 |
---|
124 | & 1,2,3,3,4,4,5,5,6,6,7,7,7,8,8,8, &! Band 11 |
---|
125 | & 1,2,3,4,5,5,6,6,7,7,7,7,8,8,8,8, &! Band 12 |
---|
126 | & 1,1,1,2,2,2,3,3,3,3,4,4,4,4,4,4, &! Band 13 |
---|
127 | & 1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, &! Band 14 |
---|
128 | & 1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, &! Band 15 |
---|
129 | & 1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2/) ! Band 16 |
---|
130 | |
---|
131 | IGN140(:) = (/& |
---|
132 | & 1,1,2,2,2,2,2,2,1,1, &! Band 1 |
---|
133 | & 1,1,1,1,1,1,1,1,2,2,2,2, &! Band 2 |
---|
134 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 3 |
---|
135 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,3, &! Band 4 |
---|
136 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 5 |
---|
137 | & 2,2,2,2,2,2,2,2, &! Band 6 |
---|
138 | & 2,2,1,1,1,1,1,1,1,1,2,2, &! Band 7 |
---|
139 | & 2,2,2,2,2,2,2,2, &! Band 8 |
---|
140 | & 1,1,1,1,1,1,1,1,2,2,2,2, &! Band 9 |
---|
141 | & 2,2,2,2,4,4, &! Band 10 |
---|
142 | & 1,1,2,2,2,2,3,3, &! Band 11 |
---|
143 | & 1,1,1,1,2,2,4,4, &! Band 12 |
---|
144 | & 3,3,4,6, &! Band 13 |
---|
145 | & 8,8, &! Band 14 |
---|
146 | & 8,8, &! Band 15 |
---|
147 | & 4,12/) ! Band 16 |
---|
148 | |
---|
149 | IGB140( :) = (/& |
---|
150 | & 1,1,1,1,1,1,1,1,1,1, &! Band 1 |
---|
151 | & 2,2,2,2,2,2,2,2,2,2,2,2, &! Band 2 |
---|
152 | & 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, &! Band 3 |
---|
153 | & 4,4,4,4,4,4,4,4,4,4,4,4,4,4, &! Band 4 |
---|
154 | & 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, &! Band 5 |
---|
155 | & 6,6,6,6,6,6,6,6, &! Band 6 |
---|
156 | & 7,7,7,7,7,7,7,7,7,7,7,7, &! Band 7 |
---|
157 | & 8,8,8,8,8,8,8,8, &! Band 8 |
---|
158 | & 9,9,9,9,9,9,9,9,9,9,9,9, &! Band 9 |
---|
159 | & 10,10,10,10,10,10, &! Band 10 |
---|
160 | & 11,11,11,11,11,11,11,11, &! Band 11 |
---|
161 | & 12,12,12,12,12,12,12,12, &! Band 12 |
---|
162 | & 13,13,13,13, &! Band 13 |
---|
163 | & 14,14, &! Band 14 |
---|
164 | & 15,15, &! Band 15 |
---|
165 | & 16,16/) ! Band 16 |
---|
166 | |
---|
167 | |
---|
168 | |
---|
169 | !------------------------------------------------------------------------------ |
---|
170 | !-- configuration with 256 g-points |
---|
171 | |
---|
172 | IGC256(:) = (/16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 /) |
---|
173 | |
---|
174 | IGS256(:) = (/ 16, 32, 48, 64, 80, 96, 112, 128, & |
---|
175 | & 144, 160, 176, 192, 208, 224, 240, 256 /) |
---|
176 | |
---|
177 | IGM256(:) = (/& |
---|
178 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 1 |
---|
179 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,13,14,14, &! Band 2 |
---|
180 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 3 |
---|
181 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 4 |
---|
182 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 5 |
---|
183 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 6 |
---|
184 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 7 |
---|
185 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,13,14,14, &! Band 8 |
---|
186 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 9 |
---|
187 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 10 |
---|
188 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 11 |
---|
189 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 12 |
---|
190 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 13 |
---|
191 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 14 |
---|
192 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &! Band 15 |
---|
193 | & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 /) ! Band 16 |
---|
194 | |
---|
195 | IGN256(:) = (/& |
---|
196 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 1 |
---|
197 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 2 |
---|
198 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 3 |
---|
199 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 4 |
---|
200 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 5 |
---|
201 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 6 |
---|
202 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 7 |
---|
203 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 8 |
---|
204 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 9 |
---|
205 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 10 |
---|
206 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 11 |
---|
207 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 12 |
---|
208 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 13 |
---|
209 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 14 |
---|
210 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 15 |
---|
211 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 /) ! Band 16 |
---|
212 | |
---|
213 | IGB256( :) = (/& |
---|
214 | & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, &! Band 1 |
---|
215 | & 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, &! Band 2 |
---|
216 | & 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, &! Band 3 |
---|
217 | & 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, &! Band 4 |
---|
218 | & 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, &! Band 5 |
---|
219 | & 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, &! Band 6 |
---|
220 | & 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, &! Band 7 |
---|
221 | & 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, &! Band 8 |
---|
222 | & 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, &! Band 9 |
---|
223 | & 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, &! Band 10 |
---|
224 | & 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, &! Band 11 |
---|
225 | & 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, &! Band 12 |
---|
226 | & 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, &! Band 13 |
---|
227 | & 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, &! Band 14 |
---|
228 | & 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, &! Band 15 |
---|
229 | & 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16/) ! Band 16 |
---|
230 | |
---|
231 | !------------------------------------------------------------------------------- |
---|
232 | |
---|
233 | WT( :) = (/& |
---|
234 | & 0.1527534276_JPRB,0.1491729617_JPRB,0.1420961469_JPRB,0.1316886544_JPRB,& |
---|
235 | & 0.1181945205_JPRB,0.1019300893_JPRB,0.0832767040_JPRB,0.0626720116_JPRB,& |
---|
236 | & 0.0424925_JPRB ,0.0046269894_JPRB,0.0038279891_JPRB,0.0030260086_JPRB,& |
---|
237 | & 0.0022199750_JPRB,0.0014140010_JPRB,0.000533_JPRB ,0.000075_JPRB /) |
---|
238 | |
---|
239 | !------------------------------------------------------------------------------- |
---|
240 | |
---|
241 | IF (JPGPT == 70) THEN |
---|
242 | |
---|
243 | !-- 16 |
---|
244 | NGC(:)=IGC70(:) |
---|
245 | NGS(:)=IGS70(:) |
---|
246 | |
---|
247 | !-- 16*16=256 |
---|
248 | NGM(:)=IGM70(:) |
---|
249 | |
---|
250 | NGN(1:70)=IGN70(1:70) |
---|
251 | NGB(1:70)=IGB70(1:70) |
---|
252 | |
---|
253 | ELSEIF (JPGPT == 140) THEN |
---|
254 | !- 16 |
---|
255 | NGC(:)=IGC140(:) |
---|
256 | NGS(:)=IGS140(:) |
---|
257 | |
---|
258 | !- 16*16=256 |
---|
259 | NGM(:)=IGM140(:) |
---|
260 | |
---|
261 | NGN(1:140)=IGN140(1:140) |
---|
262 | NGB(1:140)=IGB140(1:140) |
---|
263 | |
---|
264 | ELSEIF (JPGPT == 256) THEN |
---|
265 | !- 16 |
---|
266 | NGC(:)=IGC256(:) |
---|
267 | NGS(:)=IGS256(:) |
---|
268 | |
---|
269 | !- 16*16=256 |
---|
270 | NGM(:)=IGM256(:) |
---|
271 | |
---|
272 | NGN(1:256)=IGN256(1:256) |
---|
273 | NGB(1:256)=IGB256(1:256) |
---|
274 | |
---|
275 | ENDIF |
---|
276 | |
---|
277 | ! ----------------------------------------------------------------- |
---|
278 | IF (LHOOK) CALL DR_HOOK('SURRTFTR',1,ZHOOK_HANDLE) |
---|
279 | END SUBROUTINE SURRTFTR |
---|