Directory: | ./ |
---|---|
File: | rad/sugfl.f90 |
Date: | 2022-01-11 19:19:34 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 123 | 309 | 39.8% |
Branches: | 73 | 212 | 34.4% |
Line | Branch | Exec | Source |
---|---|---|---|
1 | 1 | SUBROUTINE SUGFL | |
2 | |||
3 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
4 | USE YOMHOOK ,ONLY : LHOOK, DR_HOOK | ||
5 | |||
6 | USE YOMLUN , ONLY : NULOUT | ||
7 | USE YOM_YGFL , ONLY : YGFL,YGFLC,YL, YI, YA, YS, YR, YG, YTKE,& | ||
8 | & YO3, YSRC, YEXT, YQ, YCVGQ, JPGFL,YQVA, & | ||
9 | & YL_NL, YI_NL, YA_NL, YO3_NL, YSRC_NL, YEXT_NL, YQ_NL,YQVA_NL, & | ||
10 | & YS_NL, YR_NL, YG_NL, YTKE_NL,YCVGQ_NL,NGFL_EXT,& | ||
11 | & YCPF , YSPF ,YCPF_NL, YSPF_NL, YAERO, YAERO_NL, NAERO, YGRG, YGRG_NL, NGRG,& | ||
12 | & YSDSAT, YCVV, YSDSAT_NL, YCVV_NL, YFORC, YFORC_NL, NGFL_FORC,& | ||
13 | & YEZDIAG, YEZDIAG_NL, NGFL_EZDIAG, & | ||
14 | & YGHG, YGHG_NL, NGHG, YTRAC, YTRAC_NL, NTRAC, & | ||
15 | & YUOM ,YUAL ,YDOM ,YDAL ,YUEN ,YUNEBH, & | ||
16 | & YUOM_NL ,YUAL_NL ,YDOM_NL ,YDAL_NL ,YUEN_NL ,YUNEBH_NL | ||
17 | USE GFL_SUBS ,ONLY : DEFINE_GFL_COMP | ||
18 | USE YOMDIM , ONLY : LADER | ||
19 | USE YOMCST , ONLY : RV ,RCPV ,RCW ,RCS | ||
20 | USE YOMGRB , ONLY : NGRBQ, NGRBO3, NGRBCLWC, NGRBCIWC,& | ||
21 | & NGRBCC, NGRB149 | ||
22 | USE YOMCT0 , ONLY : LFPART2,NCONF | ||
23 | USE YOMFA , ONLY : YFAQ ,YFAL ,YFAI ,YFAO3 ,& | ||
24 | & YFAS ,YFAR ,YFAG ,YFATKE ,& | ||
25 | & YFACPF, YFASPF, YFACLF,YFASRC, YFACVGQ, YFASDSAT, YFACVV ,& | ||
26 | & YFAQVA, & | ||
27 | & YFAUOM, YFAUAL, YFADOM, YFADAL, YFAUEN, YFAUNEBH | ||
28 | |||
29 | !**** *SUGFL* - Initialize definition of unified_treatment grid_point fields | ||
30 | |||
31 | ! Purpose. | ||
32 | ! -------- | ||
33 | ! Initialize definition of unified_treatment fields (GFL) | ||
34 | ! The GFL ordering in this routine is the ordering for "t" and | ||
35 | ! "t+dt" values of the GFL in grid-point arrays (GFL and GFLT1), | ||
36 | ! and also the ordering in the spectral array SPGFL. | ||
37 | |||
38 | !** Interface. | ||
39 | ! ---------- | ||
40 | ! *CALL* *SUGFL | ||
41 | |||
42 | ! Explicit arguments : | ||
43 | ! -------------------- | ||
44 | |||
45 | ! Implicit arguments : | ||
46 | ! -------------------- | ||
47 | ! MODULE YOM_YGFL | ||
48 | |||
49 | ! Method. | ||
50 | ! ------- | ||
51 | ! See documentation | ||
52 | |||
53 | ! Externals. | ||
54 | ! ---------- | ||
55 | ! None | ||
56 | |||
57 | ! Reference. | ||
58 | ! ---------- | ||
59 | ! ECMWF Research Department documentation of the IFS | ||
60 | |||
61 | ! Author. | ||
62 | ! ------- | ||
63 | ! Mats Hamrud *ECMWF* | ||
64 | |||
65 | ! Modifications. | ||
66 | ! -------------- | ||
67 | ! Original : 2002-03-11 | ||
68 | ! M.Hamrud : 2002-08-01 Extensive mods | ||
69 | ! R. El Khatib : 2003-08-19 ARPEGE field names | ||
70 | ! M.Hamrud 01-Oct-2003 CY28 Cleaning | ||
71 | ! M. Tudor : 2003-10-17 introduce YCPF and YSPF in GFL | ||
72 | ! A. Untch : 2005-03-11 introduce aerosols | ||
73 | ! J. Flemming : 2005-04-11 replace aerosols with GRG | ||
74 | ! Y. Seity : 2004-11-16 AROME GFL fields | ||
75 | ! C. Fischer: 23-May-2005 No Ozone in the Meteo-France control variable | ||
76 | ! Y. Bouteloup: 13-Oct-2005 introduce YCVGQ (Moisture convergence for French physics) | ||
77 | ! J. Haseler : 2005-10-11 introduce LTRAJIO | ||
78 | ! JJMorcrette 20060512 GEMS variables in cy31 | ||
79 | ! S. Serrar 20060907 tracers used for diagnostics only (in GFL between GHG and GRG) | ||
80 | ! A. Alias : 2006-10-13 introduction of YSDSAT and YCVV | ||
81 | ! B. Sass : HIRLAM pseudo-prognostic field YQVA | ||
82 | ! M. Bellus : 27-Sep-2006 introduce YUOM, YUAL, YDOM, YDAL, YUEN and | ||
83 | ! YUNEBH (ALARO-0 prognostic convection) + spotted/corrected bug | ||
84 | ! in index incrementation after YO3 | ||
85 | ! ------------------------------------------------------------------ | ||
86 | |||
87 | IMPLICIT NONE | ||
88 | |||
89 | INTEGER(KIND=JPIM) :: JGFL,IGFLPTR,INCR | ||
90 | LOGICAL :: LLDERS,LLT1,LL5 | ||
91 | REAL(KIND=JPRB) :: ZHOOK_HANDLE | ||
92 | |||
93 | !------------------------------------------------------------------------- | ||
94 | |||
95 | INTERFACE | ||
96 | SUBROUTINE ABOR1(CDTEXT) | ||
97 | CHARACTER(LEN=*) :: CDTEXT | ||
98 | END SUBROUTINE ABOR1 | ||
99 | END INTERFACE | ||
100 | |||
101 | !------------------------------------------------------------------------- | ||
102 | |||
103 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SUGFL',0,ZHOOK_HANDLE) |
104 | |||
105 | !------------------------------------------------------------------------- | ||
106 | |||
107 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF( .NOT.LFPART2) THEN |
108 | |||
109 | ! 1. CASE LFPART2=F | ||
110 | ! | ||
111 | ! 1.1 Initial settings. | ||
112 | |||
113 | 1 | YGFL%NUMFLDS=0 | |
114 | |||
115 | LL5=NCONF/100 == 1.OR.NCONF == 801.OR.NCONF == 601.OR. & | ||
116 |
4/8✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
1 | & NCONF == 401.OR.NCONF == 501 |
117 | 1 | LLT1=.TRUE. | |
118 | ! All gridpoint fields have to be set up before the spectral ones | ||
119 | ! (i.e. part 1.2 SHOULD be done before part 1.3) | ||
120 | 1 | LLDERS=.FALSE. | |
121 | ! * Simple GFL variables: | ||
122 | ! (order should be the same in parts 1.1, 1.2 and 1.3). | ||
123 | INCR=0 | ||
124 | 1 | YQ => YGFLC(JPGFL-INCR) | |
125 | INCR=INCR+1 | ||
126 | 1 | YL => YGFLC(JPGFL-INCR) | |
127 | INCR=INCR+1 | ||
128 | 1 | YI => YGFLC(JPGFL-INCR) | |
129 | INCR=INCR+1 | ||
130 | 1 | YS => YGFLC(JPGFL-INCR) | |
131 | INCR=INCR+1 | ||
132 | 1 | YR => YGFLC(JPGFL-INCR) | |
133 | INCR=INCR+1 | ||
134 | 1 | YG => YGFLC(JPGFL-INCR) | |
135 | INCR=INCR+1 | ||
136 | 1 | YTKE => YGFLC(JPGFL-INCR) | |
137 | INCR=INCR+1 | ||
138 | 1 | YA => YGFLC(JPGFL-INCR) | |
139 | INCR=INCR+1 | ||
140 | 1 | YO3 => YGFLC(JPGFL-INCR) | |
141 | INCR=INCR+1 | ||
142 | 1 | YCPF => YGFLC(JPGFL-INCR) | |
143 | INCR=INCR+1 | ||
144 | 1 | YSPF => YGFLC(JPGFL-INCR) | |
145 | INCR=INCR+1 | ||
146 | 1 | YSRC => YGFLC(JPGFL-INCR) | |
147 | INCR=INCR+1 | ||
148 | 1 | YCVGQ => YGFLC(JPGFL-INCR) | |
149 | INCR=INCR+1 | ||
150 | 1 | YSDSAT => YGFLC(JPGFL-INCR) | |
151 | INCR=INCR+1 | ||
152 | 1 | YCVV => YGFLC(JPGFL-INCR) | |
153 | INCR=INCR+1 | ||
154 | 1 | YQVA => YGFLC(JPGFL-INCR) | |
155 | INCR=INCR+1 | ||
156 | 1 | YUOM => YGFLC(JPGFL-INCR) | |
157 | INCR=INCR+1 | ||
158 | 1 | YUAL => YGFLC(JPGFL-INCR) | |
159 | INCR=INCR+1 | ||
160 | 1 | YDOM => YGFLC(JPGFL-INCR) | |
161 | INCR=INCR+1 | ||
162 | 1 | YDAL => YGFLC(JPGFL-INCR) | |
163 | INCR=INCR+1 | ||
164 | 1 | YUEN => YGFLC(JPGFL-INCR) | |
165 | INCR=INCR+1 | ||
166 | 1 | YUNEBH => YGFLC(JPGFL-INCR) | |
167 | INCR=INCR+1 | ||
168 | ! * Groups of multiple GFL variables: | ||
169 | ! (order should be the same in parts 1.1, 1.2 and 1.3). | ||
170 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (NGFL_EXT == 0) THEN |
171 | 1 | YEXT => YGFLC(JPGFL-INCR:JPGFL-INCR) | |
172 | INCR=INCR+1 | ||
173 | ENDIF | ||
174 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (NGFL_FORC == 0) THEN |
175 | 1 | YFORC => YGFLC(JPGFL-INCR:JPGFL-INCR) | |
176 | 1 | INCR=INCR+1 | |
177 | ENDIF | ||
178 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (NGFL_EZDIAG == 0) THEN |
179 | 1 | YEZDIAG => YGFLC(JPGFL-INCR:JPGFL-INCR) | |
180 | 1 | INCR=INCR+1 | |
181 | ENDIF | ||
182 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (NGHG == 0) THEN |
183 | 1 | YGHG => YGFLC(JPGFL-INCR:JPGFL-INCR) | |
184 | 1 | INCR=INCR+1 | |
185 | ENDIF | ||
186 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (NTRAC == 0) THEN |
187 | 1 | YTRAC => YGFLC(JPGFL-INCR:JPGFL-INCR) | |
188 | 1 | INCR=INCR+1 | |
189 | ENDIF | ||
190 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (NGRG == 0) THEN |
191 | 1 | YGRG => YGFLC(JPGFL-INCR:JPGFL-INCR) | |
192 | 1 | INCR=INCR+1 | |
193 | ENDIF | ||
194 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (NAERO == 0) THEN |
195 | 1 | YAERO => YGFLC(JPGFL-INCR:JPGFL-INCR) | |
196 | INCR=INCR+1 | ||
197 | ENDIF | ||
198 | |||
199 | ! 1.2 Grid-point GFL. | ||
200 | |||
201 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YQ_NL%LGP) THEN |
202 | IGFLPTR=YGFL%NUMFLDS+1 | ||
203 | ✗ | YQ=>YGFLC(IGFLPTR) | |
204 | CALL DEFINE_GFL_COMP(YDGFLC=YQ ,CDNAME=YFAQ%CLNAME,KGRIB=NGRBQ,LDGP=.TRUE.,& | ||
205 | & KREQIN=YQ_NL%NREQIN, & | ||
206 | & PREFVALI=YQ_NL%REFVALI,LDREQOUT=YQ_NL%LREQOUT,LDERS=LLDERS,LD5=LL5,& | ||
207 | & LDT1=LLT1,LDGPINGP=YQ_NL%LGPINGP, & | ||
208 | ✗ | & LDTRAJIO=YQ_NL%LTRAJIO,LDTHERMACT=.TRUE.,PR=RV,PRCP=RCPV) | |
209 | ENDIF | ||
210 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YL_NL%LGP) THEN |
211 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
212 | ✗ | YL=>YGFLC(IGFLPTR) | |
213 | CALL DEFINE_GFL_COMP(YDGFLC=YL ,CDNAME=YFAL%CLNAME,KGRIB=NGRBCLWC, & | ||
214 | & LDGP=.TRUE.,KREQIN=YL_NL%NREQIN, & | ||
215 | & PREFVALI=YL_NL%REFVALI,LDREQOUT=YL_NL%LREQOUT,LDERS=LLDERS,LD5=LL5, & | ||
216 | ✗ | & LDT1=LLT1,LDTHERMACT=.TRUE.,PR=0.0_JPRB,PRCP=RCW) | |
217 | ENDIF | ||
218 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YI_NL%LGP) THEN |
219 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
220 | ✗ | YI=>YGFLC(IGFLPTR) | |
221 | CALL DEFINE_GFL_COMP(YDGFLC=YI ,CDNAME=YFAI%CLNAME,KGRIB=NGRBCIWC,& | ||
222 | & LDGP=.TRUE.,KREQIN=YI_NL%NREQIN, & | ||
223 | & PREFVALI=YI_NL%REFVALI,LDREQOUT=YI_NL%LREQOUT,LDERS=LLDERS,LD5=LL5, & | ||
224 | ✗ | & LDT1=LLT1,LDTHERMACT=.TRUE.,PR=0.0_JPRB,PRCP=RCS) | |
225 | ENDIF | ||
226 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YS_NL%LGP) THEN |
227 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
228 | ✗ | YS=>YGFLC(IGFLPTR) | |
229 | CALL DEFINE_GFL_COMP(YDGFLC=YS ,CDNAME=YFAS%CLNAME,KGRIB=NGRB149, & | ||
230 | & LDGP=.TRUE.,KREQIN=YS_NL%NREQIN, & | ||
231 | & PREFVALI=YS_NL%REFVALI,LDREQOUT=YS_NL%LREQOUT,LDERS=LLDERS,LD5=LL5, & | ||
232 | ✗ | & LDT1=LLT1,LDTHERMACT=.TRUE.,PR=0.0_JPRB,PRCP=RCS) | |
233 | ENDIF | ||
234 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YR_NL%LGP) THEN |
235 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
236 | ✗ | YR=>YGFLC(IGFLPTR) | |
237 | CALL DEFINE_GFL_COMP(YDGFLC=YR ,CDNAME=YFAR%CLNAME,KGRIB=NGRB149,& | ||
238 | & LDGP=.TRUE.,KREQIN=YR_NL%NREQIN, & | ||
239 | & PREFVALI=YR_NL%REFVALI,LDREQOUT=YR_NL%LREQOUT,LDERS=LLDERS,LD5=LL5, & | ||
240 | ✗ | & LDT1=LLT1,LDTHERMACT=.TRUE.,PR=0.0_JPRB,PRCP=RCW) | |
241 | ENDIF | ||
242 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YG_NL%LGP) THEN |
243 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
244 | ✗ | YG=>YGFLC(IGFLPTR) | |
245 | CALL DEFINE_GFL_COMP(YDGFLC=YG ,CDNAME=YFAG%CLNAME,KGRIB=NGRB149,& | ||
246 | & LDGP=.TRUE.,KREQIN=YG_NL%NREQIN, & | ||
247 | & PREFVALI=YG_NL%REFVALI,LDREQOUT=YG_NL%LREQOUT,LDERS=LLDERS,LD5=LL5, & | ||
248 | ✗ | & LDT1=LLT1,LDTHERMACT=.TRUE.,PR=0.0_JPRB,PRCP=RCS) | |
249 | ENDIF | ||
250 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YTKE_NL%LGP) THEN |
251 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
252 | ✗ | YTKE=>YGFLC(IGFLPTR) | |
253 | CALL DEFINE_GFL_COMP(YDGFLC=YTKE ,CDNAME=YFATKE%CLNAME,KGRIB=NGRB149,& | ||
254 | & LDGP=.TRUE.,KREQIN=YTKE_NL%NREQIN, & | ||
255 | & PREFVALI=YTKE_NL%REFVALI,LDREQOUT=YTKE_NL%LREQOUT,LDERS=LLDERS,LD5=LL5,& | ||
256 | ✗ | & LDT1=LLT1) | |
257 | ENDIF | ||
258 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YA_NL%LGP)THEN |
259 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
260 | ✗ | YA=>YGFLC(IGFLPTR) | |
261 | CALL DEFINE_GFL_COMP(YDGFLC=YA ,CDNAME=YFACLF%CLNAME,KGRIB=NGRBCC,& | ||
262 | & LDGP=.TRUE.,KREQIN=YA_NL%NREQIN, & | ||
263 | & PREFVALI=YA_NL%REFVALI,LDREQOUT=YA_NL%LREQOUT,LDERS=LLDERS,LD5=LL5,& | ||
264 | ✗ | & LDT1=LLT1) | |
265 | ENDIF | ||
266 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YO3_NL%LGP)THEN |
267 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
268 | ✗ | YO3=>YGFLC(IGFLPTR) | |
269 | CALL DEFINE_GFL_COMP(YDGFLC=YO3,CDNAME=YFAO3%CLNAME,KGRIB=NGRBO3,& | ||
270 | & LDGP=.TRUE.,KREQIN=YO3_NL%NREQIN, & | ||
271 | & PREFVALI=YO3_NL%REFVALI,LDREQOUT=YO3_NL%LREQOUT,LDERS=LLDERS,LD5=LL5,& | ||
272 | & LDT1=LLT1,LDGPINGP=YO3_NL%LGPINGP, & | ||
273 | ✗ | & LDTRAJIO=YO3_NL%LTRAJIO) | |
274 | ENDIF | ||
275 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YCPF_NL%LGP)THEN |
276 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
277 | ✗ | YCPF=>YGFLC(IGFLPTR) | |
278 | CALL DEFINE_GFL_COMP(YDGFLC=YCPF,CDNAME=YFACPF%CLNAME,& | ||
279 | & KGRIB=YCPF_NL%IGRBCODE,LDGP=.TRUE., & | ||
280 | & KREQIN=YCPF_NL%NREQIN,PREFVALI= YCPF_NL%REFVALI,& | ||
281 | & LDREQOUT=YCPF_NL%LREQOUT,LDERS=.FALSE.,LD5=LL5, & | ||
282 | ✗ | & LDT1=LLT1,LDGPINGP=.TRUE.) | |
283 | ENDIF | ||
284 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YSPF_NL%LGP)THEN |
285 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
286 | ✗ | YSPF=>YGFLC(IGFLPTR) | |
287 | CALL DEFINE_GFL_COMP(YDGFLC=YSPF,CDNAME=YFASPF%CLNAME,& | ||
288 | & KGRIB=YSPF_NL%IGRBCODE,LDGP=.TRUE., & | ||
289 | & KREQIN=YSPF_NL%NREQIN, PREFVALI=YSPF_NL%REFVALI,& | ||
290 | & LDREQOUT=YSPF_NL%LREQOUT,LDERS=.FALSE.,LD5=LL5, & | ||
291 | ✗ | & LDT1=LLT1,LDGPINGP=.TRUE.) | |
292 | ENDIF | ||
293 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YSRC_NL%LGP) THEN |
294 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
295 | ✗ | YSRC=>YGFLC(IGFLPTR) | |
296 | CALL DEFINE_GFL_COMP(YDGFLC=YSRC ,CDNAME=YFASRC%CLNAME,KGRIB=NGRB149,& | ||
297 | & LDGP=.TRUE.,KREQIN=YSRC_NL%NREQIN, & | ||
298 | & PREFVALI=YSRC_NL%REFVALI,LDREQOUT=YSRC_NL%LREQOUT,LDERS=LLDERS,& | ||
299 | ✗ | & LD5=LL5,LDT1=LLT1) | |
300 | ENDIF | ||
301 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YCVGQ_NL%LGP) THEN |
302 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
303 | ✗ | YCVGQ=>YGFLC(IGFLPTR) | |
304 | CALL DEFINE_GFL_COMP(YDGFLC=YCVGQ ,CDNAME=YFACVGQ%CLNAME,KGRIB=NGRB149,& | ||
305 | & LDGP=.TRUE.,KREQIN=YCVGQ_NL%NREQIN, & | ||
306 | & PREFVALI=YCVGQ_NL%REFVALI, LDREQOUT=YCVGQ_NL%LREQOUT,LDERS=LLDERS,& | ||
307 | ✗ | & LD5=LL5,LDT1=LLT1) | |
308 | ENDIF | ||
309 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YSDSAT_NL%LGP) THEN |
310 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
311 | ✗ | YSDSAT=>YGFLC(IGFLPTR) | |
312 | CALL DEFINE_GFL_COMP(YDGFLC=YSDSAT,CDNAME=YFASDSAT%CLNAME,KGRIB=NGRB149,& | ||
313 | & LDGP=.TRUE.,KREQIN=YSDSAT_NL%NREQIN, & | ||
314 | & PREFVALI=YSDSAT_NL%REFVALI, LDREQOUT=YSDSAT_NL%LREQOUT,LDERS=LLDERS,& | ||
315 | ✗ | & LD5=LL5,LDT1=LLT1) | |
316 | ENDIF | ||
317 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YCVV_NL%LGP) THEN |
318 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
319 | ✗ | YCVV=>YGFLC(IGFLPTR) | |
320 | CALL DEFINE_GFL_COMP(YDGFLC=YCVV,CDNAME=YFACVV%CLNAME,KGRIB=NGRB149,& | ||
321 | & LDGP=.TRUE.,KREQIN=YCVV_NL%NREQIN, & | ||
322 | & PREFVALI=YCVV_NL%REFVALI, LDREQOUT=YCVV_NL%LREQOUT,LDERS=LLDERS,& | ||
323 | ✗ | & LD5=LL5,LDT1=LLT1) | |
324 | ENDIF | ||
325 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YQVA_NL%LGP) THEN |
326 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
327 | ✗ | YQVA=>YGFLC(IGFLPTR) | |
328 | CALL DEFINE_GFL_COMP(YDGFLC=YQVA,CDNAME=YFAQVA%CLNAME,& | ||
329 | & KGRIB=YQVA_NL%IGRBCODE,LDGP=.TRUE., & | ||
330 | & KREQIN=YQVA_NL%NREQIN, PREFVALI=YQVA_NL%REFVALI,& | ||
331 | & LDREQOUT=YQVA_NL%LREQOUT,LDERS=.FALSE.,LD5=LL5, & | ||
332 | ✗ | & LDT1=LLT1,LDGPINGP=.TRUE.) | |
333 | ENDIF | ||
334 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YUOM_NL%LGP)THEN |
335 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
336 | ✗ | YUOM=>YGFLC(IGFLPTR) | |
337 | CALL DEFINE_GFL_COMP(YDGFLC=YUOM,CDNAME=YFAUOM%CLNAME,& | ||
338 | & KGRIB=YUOM_NL%IGRBCODE,LDGP=.TRUE., & | ||
339 | & KREQIN=YUOM_NL%NREQIN,& | ||
340 | & PREFVALI=YUOM_NL%REFVALI,LDREQOUT=YUOM_NL%LREQOUT,& | ||
341 | ✗ | & LDERS=.FALSE.,LD5=LL5,LDT1=LLT1,LDGPINGP=.TRUE.) | |
342 | ENDIF | ||
343 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YUAL_NL%LGP)THEN |
344 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
345 | ✗ | YUAL=>YGFLC(IGFLPTR) | |
346 | CALL DEFINE_GFL_COMP(YDGFLC=YUAL,CDNAME=YFAUAL%CLNAME,& | ||
347 | & KGRIB=YUAL_NL%IGRBCODE,LDGP=.TRUE., & | ||
348 | & KREQIN=YUAL_NL%NREQIN,& | ||
349 | & PREFVALI=YUAL_NL%REFVALI,LDREQOUT=YUAL_NL%LREQOUT,& | ||
350 | ✗ | & LDERS=.FALSE.,LD5=LL5,LDT1=LLT1,LDGPINGP=.TRUE.) | |
351 | ENDIF | ||
352 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YDOM_NL%LGP)THEN |
353 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
354 | ✗ | YDOM=>YGFLC(IGFLPTR) | |
355 | CALL DEFINE_GFL_COMP(YDGFLC=YDOM,CDNAME=YFADOM%CLNAME,& | ||
356 | & KGRIB=YDOM_NL%IGRBCODE,LDGP=.TRUE., & | ||
357 | & KREQIN=YDOM_NL%NREQIN,& | ||
358 | & PREFVALI=YDOM_NL%REFVALI,LDREQOUT=YDOM_NL%LREQOUT,& | ||
359 | ✗ | & LDERS=.FALSE.,LD5=LL5,LDT1=LLT1,LDGPINGP=.TRUE.) | |
360 | ENDIF | ||
361 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YDAL_NL%LGP)THEN |
362 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
363 | ✗ | YDAL=>YGFLC(IGFLPTR) | |
364 | CALL DEFINE_GFL_COMP(YDGFLC=YDAL,CDNAME=YFADAL%CLNAME,& | ||
365 | & KGRIB=YDAL_NL%IGRBCODE,LDGP=.TRUE., & | ||
366 | & KREQIN=YDAL_NL%NREQIN,& | ||
367 | & PREFVALI=YDAL_NL%REFVALI,LDREQOUT=YDAL_NL%LREQOUT,& | ||
368 | ✗ | & LDERS=.FALSE.,LD5=LL5,LDT1=LLT1,LDGPINGP=.TRUE.) | |
369 | ENDIF | ||
370 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YUEN_NL%LGP)THEN |
371 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
372 | ✗ | YUEN=>YGFLC(IGFLPTR) | |
373 | CALL DEFINE_GFL_COMP(YDGFLC=YUEN,CDNAME=YFAUEN%CLNAME,& | ||
374 | & KGRIB=YUEN_NL%IGRBCODE,LDGP=.TRUE., & | ||
375 | & KREQIN=YUEN_NL%NREQIN,& | ||
376 | & PREFVALI=YUEN_NL%REFVALI,LDREQOUT=YUEN_NL%LREQOUT,& | ||
377 | ✗ | & LDERS=.FALSE.,LD5=LL5,LDT1=LLT1,LDGPINGP=.TRUE.) | |
378 | ENDIF | ||
379 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YUNEBH_NL%LGP)THEN |
380 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
381 | ✗ | YUNEBH=>YGFLC(IGFLPTR) | |
382 | CALL DEFINE_GFL_COMP(YDGFLC=YUNEBH,CDNAME=YFAUNEBH%CLNAME,& | ||
383 | & KGRIB=YUNEBH_NL%IGRBCODE,LDGP=.TRUE., & | ||
384 | & KREQIN=YUNEBH_NL%NREQIN,& | ||
385 | & PREFVALI=YUNEBH_NL%REFVALI,LDREQOUT=YUNEBH_NL%LREQOUT,& | ||
386 | ✗ | & LDERS=.FALSE.,LD5=LL5,LDT1=LLT1,LDGPINGP=.TRUE.) | |
387 | ENDIF | ||
388 | |||
389 | ! Extra GFL variables | ||
390 | ! - do a preliminary test to see if, when there are extra-GFL and when at | ||
391 | ! least one of them is a grid-point one, there is no extra-GFL which is | ||
392 | ! a spectral one (not allowed): | ||
393 | ! in this case all the extra-GFL must be grid-point ones. | ||
394 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF (NGFL_EXT > 1) THEN |
395 | ✗ | IF(ANY(YEXT_NL(1:NGFL_EXT)%LGP)) THEN | |
396 | ✗ | DO JGFL=1,NGFL_EXT | |
397 | ✗ | IF (YEXT_NL(JGFL)%LSP) CALL ABOR1& | |
398 | ✗ | & ('SUGFL:EXTRA GFL FIELDS HAVE TO BE ALL EITHER SPECTRAL OR GRIDPOINT') | |
399 | ENDDO | ||
400 | ENDIF | ||
401 | ENDIF | ||
402 | ! - define the GFL components (all the extra-GFL are grid-point ones). | ||
403 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | DO JGFL=1,NGFL_EXT |
404 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YEXT_NL(JGFL)%LGP) THEN |
405 | ✗ | IF(JGFL == 1) THEN | |
406 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
407 | ✗ | YEXT=>YGFLC(IGFLPTR:IGFLPTR+NGFL_EXT-1) | |
408 | ENDIF | ||
409 | CALL DEFINE_GFL_COMP(YDGFLC=YEXT(JGFL),CDNAME=YEXT_NL(JGFL)%CNAME ,& | ||
410 | & KGRIB=YEXT_NL(JGFL)%IGRBCODE,LDGP=.TRUE.,KREQIN=YEXT_NL(JGFL)%NREQIN,& | ||
411 | & PREFVALI=YEXT_NL(JGFL)%REFVALI, LDREQOUT=YEXT_NL(JGFL)%LREQOUT ,& | ||
412 | & LDERS=LLDERS, LD5=LL5, LDT1=LLT1,LDGPINGP=YEXT_NL(JGFL)%LGPINGP, & | ||
413 | ✗ | & LDTRAJIO=YEXT_NL(JGFL)%LTRAJIO) | |
414 | ENDIF | ||
415 | ENDDO | ||
416 | |||
417 | ! Forcings | ||
418 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | DO JGFL=1,NGFL_FORC |
419 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YFORC_NL(JGFL)%LGP) THEN |
420 | ✗ | IF(JGFL == 1) THEN | |
421 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
422 | ✗ | YFORC=>YGFLC(IGFLPTR:IGFLPTR+NGFL_FORC-1) | |
423 | ENDIF | ||
424 | CALL DEFINE_GFL_COMP(YDGFLC=YFORC(JGFL),CDNAME=YFORC_NL(JGFL)%CNAME ,& | ||
425 | & KGRIB=YFORC_NL(JGFL)%IGRBCODE,LDGP=.TRUE.,KREQIN=YFORC_NL(JGFL)%NREQIN,& | ||
426 | & PREFVALI=YFORC_NL(JGFL)%REFVALI, LDREQOUT=YFORC_NL(JGFL)%LREQOUT ,& | ||
427 | & LDERS=LLDERS, LD5=LL5, LDT1=LLT1,LDGPINGP=YFORC_NL(JGFL)%LGPINGP, & | ||
428 | ✗ | & LDTRAJIO=YFORC_NL(JGFL)%LTRAJIO) | |
429 | ENDIF | ||
430 | ENDDO | ||
431 | |||
432 | ! Easy diagnostics | ||
433 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | DO JGFL=1,NGFL_EZDIAG |
434 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YEZDIAG_NL(JGFL)%LGP) THEN |
435 | ✗ | IF(JGFL == 1) THEN | |
436 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
437 | ✗ | YEZDIAG=>YGFLC(IGFLPTR:IGFLPTR+NGFL_EZDIAG-1) | |
438 | ENDIF | ||
439 | CALL DEFINE_GFL_COMP(YDGFLC=YEZDIAG(JGFL),CDNAME=YEZDIAG_NL(JGFL)%CNAME ,& | ||
440 | & KGRIB=YEZDIAG_NL(JGFL)%IGRBCODE,LDGP=.TRUE.,KREQIN=YEZDIAG_NL(JGFL)%NREQIN,& | ||
441 | & PREFVALI=YEZDIAG_NL(JGFL)%REFVALI, LDREQOUT=YEZDIAG_NL(JGFL)%LREQOUT ,& | ||
442 | & LDERS=LLDERS, LD5=LL5, LDT1=LLT1,LDGPINGP=YEZDIAG_NL(JGFL)%LGPINGP, & | ||
443 | ✗ | & LDTRAJIO=YEZDIAG_NL(JGFL)%LTRAJIO) | |
444 | ENDIF | ||
445 | ENDDO | ||
446 | |||
447 | !-- Greenhouse Gases | ||
448 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | DO JGFL=1,NGHG |
449 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YGHG_NL(JGFL)%LGP) THEN |
450 | ✗ | IF(JGFL == 1) THEN | |
451 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
452 | ✗ | YGHG=>YGFLC(IGFLPTR:IGFLPTR+NGHG-1) | |
453 | ENDIF | ||
454 | CALL DEFINE_GFL_COMP(YDGFLC=YGHG(JGFL),CDNAME=YGHG_NL(JGFL)%CNAME ,& | ||
455 | & KGRIB=YGHG_NL(JGFL)%IGRBCODE, LDGP=.TRUE., KREQIN=YGHG_NL(JGFL)%NREQIN ,& | ||
456 | & PREFVALI=YGHG_NL(JGFL)%REFVALI, LDREQOUT=YGHG_NL(JGFL)%LREQOUT ,& | ||
457 | & LDERS=LLDERS, LD5=LL5, LDT1=LLT1,LDGPINGP=YGHG_NL(JGFL)%LGPINGP, & | ||
458 | ✗ | & LDTRAJIO=YGHG_NL(JGFL)%LTRAJIO) | |
459 | ENDIF | ||
460 | ENDDO | ||
461 | |||
462 | !-- Diagnostic tracers | ||
463 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | DO JGFL=1,NTRAC |
464 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YTRAC_NL(JGFL)%LGP) THEN |
465 | ✗ | IF(JGFL == 1) THEN | |
466 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
467 | ✗ | YTRAC=>YGFLC(IGFLPTR:IGFLPTR+NTRAC-1) | |
468 | ENDIF | ||
469 | CALL DEFINE_GFL_COMP(YDGFLC=YTRAC(JGFL),CDNAME=YTRAC_NL(JGFL)%CNAME ,& | ||
470 | & KGRIB=YTRAC_NL(JGFL)%IGRBCODE, LDGP=.TRUE., KREQIN=YTRAC_NL(JGFL)%NREQIN ,& | ||
471 | & PREFVALI=YTRAC_NL(JGFL)%REFVALI, LDREQOUT=YTRAC_NL(JGFL)%LREQOUT ,& | ||
472 | & LDERS=LLDERS, LD5=LL5, LDT1=LLT1,LDGPINGP=YTRAC_NL(JGFL)%LGPINGP, & | ||
473 | ✗ | & LDTRAJIO=YTRAC_NL(JGFL)%LTRAJIO) | |
474 | ENDIF | ||
475 | ENDDO | ||
476 | |||
477 | !-- Reactive Gases | ||
478 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | DO JGFL=1,NGRG |
479 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YGRG_NL(JGFL)%LGP) THEN |
480 | ✗ | IF(JGFL == 1) THEN | |
481 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
482 | ✗ | YGRG=>YGFLC(IGFLPTR:IGFLPTR+NGRG-1) | |
483 | ENDIF | ||
484 | CALL DEFINE_GFL_COMP(YDGFLC=YGRG(JGFL),CDNAME=YGRG_NL(JGFL)%CNAME ,& | ||
485 | & KGRIB=YGRG_NL(JGFL)%IGRBCODE, LDGP=.TRUE., KREQIN=YGRG_NL(JGFL)%NREQIN ,& | ||
486 | & PREFVALI=YGRG_NL(JGFL)%REFVALI, LDREQOUT=YGRG_NL(JGFL)%LREQOUT ,& | ||
487 | & LDERS=LLDERS, LD5=LL5, LDT1=LLT1,LDGPINGP=YGRG_NL(JGFL)%LGPINGP, & | ||
488 | ✗ | & LDTRAJIO=YGRG_NL(JGFL)%LTRAJIO) | |
489 | ENDIF | ||
490 | ENDDO | ||
491 | |||
492 | !-- Aerosols | ||
493 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | DO JGFL=1,NAERO |
494 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YAERO_NL(JGFL)%LGP) THEN |
495 | ✗ | IF(JGFL == 1) THEN | |
496 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
497 | ✗ | YAERO=>YGFLC(IGFLPTR:IGFLPTR+NAERO-1) | |
498 | ENDIF | ||
499 | CALL DEFINE_GFL_COMP(YDGFLC=YAERO(JGFL),CDNAME=YAERO_NL(JGFL)%CNAME ,& | ||
500 | & KGRIB=YAERO_NL(JGFL)%IGRBCODE, LDGP=.TRUE., KREQIN=YAERO_NL(JGFL)%NREQIN ,& | ||
501 | & PREFVALI=YAERO_NL(JGFL)%REFVALI, LDREQOUT=YAERO_NL(JGFL)%LREQOUT ,& | ||
502 | & LDERS=LLDERS, LD5=LL5, LDT1=LLT1,LDGPINGP=YAERO_NL(JGFL)%LGPINGP, & | ||
503 | ✗ | & LDTRAJIO=YAERO_NL(JGFL)%LTRAJIO) | |
504 | ENDIF | ||
505 | ENDDO | ||
506 | |||
507 | ! 1.3 Spectral GFL. | ||
508 | |||
509 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YQ_NL%LSP) THEN |
510 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
511 | ✗ | YQ=>YGFLC(IGFLPTR) | |
512 | CALL DEFINE_GFL_COMP(YDGFLC=YQ ,CDNAME=YFAQ%CLNAME,KGRIB=NGRBQ,& | ||
513 | & LDGP=.FALSE.,KREQIN=YQ_NL%NREQIN, & | ||
514 | & PREFVALI=YQ_NL%REFVALI, LDREQOUT=YQ_NL%LREQOUT, LDERS=LADER,LD5=LL5, & | ||
515 | ✗ | & LDT1=LLT1,LDTHERMACT=.TRUE.,PR=RV,PRCP=RCPV) | |
516 | ENDIF | ||
517 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YL_NL%LSP) THEN |
518 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
519 | ✗ | YL=>YGFLC(IGFLPTR) | |
520 | CALL DEFINE_GFL_COMP(YDGFLC=YL ,CDNAME=YFAL%CLNAME,KGRIB=NGRBCLWC,& | ||
521 | & LDGP=.FALSE.,KREQIN=YL_NL%NREQIN, & | ||
522 | & PREFVALI=YL_NL%REFVALI, LDREQOUT=YL_NL%LREQOUT, LDERS=LADER,LD5=LL5, & | ||
523 | ✗ | & LDT1=LLT1,LDTHERMACT=.TRUE.,PR=0.0_JPRB,PRCP=RCW) | |
524 | ENDIF | ||
525 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YI_NL%LSP)THEN |
526 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
527 | ✗ | YI=>YGFLC(IGFLPTR) | |
528 | CALL DEFINE_GFL_COMP(YDGFLC=YI ,CDNAME=YFAI%CLNAME,KGRIB=NGRBCIWC,& | ||
529 | & LDGP=.FALSE.,KREQIN=YI_NL%NREQIN, & | ||
530 | & PREFVALI=YI_NL%REFVALI, LDREQOUT=YI_NL%LREQOUT, LDERS=LADER,LD5=LL5, & | ||
531 | ✗ | & LDT1=LLT1,LDTHERMACT=.TRUE.,PR=0.0_JPRB,PRCP=RCS) | |
532 | ENDIF | ||
533 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YS_NL%LSP)THEN |
534 | ✗ | CALL ABOR1('SUGFL: spectral snow not coded ') | |
535 | ENDIF | ||
536 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YR_NL%LSP)THEN |
537 | ✗ | CALL ABOR1('SUGFL: spectral rain not coded ') | |
538 | ENDIF | ||
539 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YG_NL%LSP)THEN |
540 | ✗ | CALL ABOR1('SUGFL: spectral graupels not coded ') | |
541 | ENDIF | ||
542 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YTKE_NL%LSP)THEN |
543 | ✗ | CALL ABOR1('SUGFL: spectral TKE not coded ') | |
544 | ENDIF | ||
545 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YA_NL%LSP)THEN |
546 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
547 | ✗ | YA=>YGFLC(IGFLPTR) | |
548 | CALL DEFINE_GFL_COMP(YDGFLC=YA ,CDNAME=YFACLF%CLNAME,KGRIB=NGRBCC,& | ||
549 | & LDGP=.FALSE.,KREQIN=YA_NL%NREQIN, & | ||
550 | & PREFVALI=YA_NL%REFVALI, LDREQOUT=YA_NL%LREQOUT, LDERS=LADER,LD5=LL5,& | ||
551 | ✗ | & LDT1=LLT1) | |
552 | ENDIF | ||
553 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YO3_NL%LSP)THEN |
554 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
555 | ✗ | YO3=>YGFLC(IGFLPTR) | |
556 | CALL DEFINE_GFL_COMP(YDGFLC=YO3,CDNAME=YFAO3%CLNAME,KGRIB=NGRBO3,& | ||
557 | & LDGP=.FALSE.,KREQIN=YO3_NL%NREQIN, & | ||
558 | & PREFVALI=YO3_NL%REFVALI, LDREQOUT=YO3_NL%LREQOUT, LDERS=LADER,LD5=LL5,& | ||
559 | ✗ | & LDT1=LLT1) | |
560 | ENDIF | ||
561 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YCPF_NL%LSP)THEN |
562 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
563 | ✗ | YCPF=>YGFLC(IGFLPTR) | |
564 | CALL DEFINE_GFL_COMP(YDGFLC=YCPF,CDNAME=YFACPF%CLNAME,& | ||
565 | & KGRIB=YCPF_NL%IGRBCODE, LDGP=.FALSE., & | ||
566 | & KREQIN=YCPF_NL%NREQIN,PREFVALI=YCPF_NL%REFVALI,LDREQOUT=YCPF_NL%LREQOUT,& | ||
567 | & LDERS=.FALSE.,LD5=.FALSE., & | ||
568 | ✗ | & LDT1=LLT1) | |
569 | ENDIF | ||
570 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YSPF_NL%LSP)THEN |
571 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
572 | ✗ | YSPF=>YGFLC(IGFLPTR) | |
573 | CALL DEFINE_GFL_COMP(YDGFLC=YSPF,CDNAME=YFASPF%CLNAME,& | ||
574 | & KGRIB=YSPF_NL%IGRBCODE,LDGP= .FALSE., & | ||
575 | & KREQIN=YSPF_NL%NREQIN,PREFVALI=YSPF_NL%REFVALI,LDREQOUT=YSPF_NL%LREQOUT,& | ||
576 | & LDERS=.FALSE.,LD5=.FALSE., & | ||
577 | ✗ | & LDT1=LLT1) | |
578 | ENDIF | ||
579 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YSRC_NL%LSP)THEN |
580 | ✗ | CALL ABOR1('SUGFL: spectral SRC not coded ') | |
581 | ENDIF | ||
582 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YCVGQ_NL%LSP)THEN |
583 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
584 | ✗ | YCVGQ=>YGFLC(IGFLPTR) | |
585 | CALL DEFINE_GFL_COMP(YDGFLC=YCVGQ,CDNAME=YFACVGQ%CLNAME,& | ||
586 | & KGRIB=YCVGQ_NL%IGRBCODE,LDGP= .FALSE., & | ||
587 | & KREQIN=YCVGQ_NL%NREQIN,PREFVALI=YCVGQ_NL%REFVALI,& | ||
588 | & LDREQOUT=YCVGQ_NL%LREQOUT,LDERS= .TRUE.,LD5=.FALSE., & | ||
589 | ✗ | & LDT1=LLT1) | |
590 | ENDIF | ||
591 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YSDSAT_NL%LSP)THEN |
592 | ✗ | CALL ABOR1('SUGFL: spectral SDSAT not coded ') | |
593 | ENDIF | ||
594 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YCVV_NL%LSP)THEN |
595 | ✗ | CALL ABOR1('SUGFL: spectral CVV not coded ') | |
596 | ENDIF | ||
597 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YQVA_NL%LSP) THEN |
598 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
599 | ✗ | YQVA=>YGFLC(IGFLPTR) | |
600 | CALL DEFINE_GFL_COMP(YDGFLC=YQVA,CDNAME=YFAQVA%CLNAME,& | ||
601 | & KGRIB=YQVA_NL%IGRBCODE, LDGP=.FALSE., & | ||
602 | & KREQIN=YQVA_NL%NREQIN,PREFVALI=YQVA_NL%REFVALI,LDREQOUT=YQVA_NL%LREQOUT,& | ||
603 | & LDERS=.FALSE.,LD5=.FALSE., & | ||
604 | ✗ | & LDT1=LLT1) | |
605 | ENDIF | ||
606 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YUOM_NL%LSP)THEN |
607 | ✗ | CALL ABOR1('SUGFL: spectral UOM not coded ') | |
608 | ! ---------------------------------------------------------------------- | ||
609 | ! what is below must be checked when UOM will be coded! | ||
610 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
611 | ✗ | YUOM=>YGFLC(IGFLPTR) | |
612 | CALL DEFINE_GFL_COMP(YDGFLC=YUOM,CDNAME=YFAUOM%CLNAME,& | ||
613 | & KGRIB=YUOM_NL%IGRBCODE,LDGP=.FALSE., & | ||
614 | & KREQIN=YUOM_NL%NREQIN,& | ||
615 | & PREFVALI=YUOM_NL%REFVALI,LDREQOUT=YUOM_NL%LREQOUT,& | ||
616 | ✗ | & LDERS=.FALSE.,LD5=.FALSE.,LDT1=LLT1) | |
617 | ! ---------------------------------------------------------------------- | ||
618 | ENDIF | ||
619 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YUAL_NL%LSP)THEN |
620 | ✗ | CALL ABOR1('SUGFL: spectral UAL not coded ') | |
621 | ! ---------------------------------------------------------------------- | ||
622 | ! what is below must be checked when UAL will be coded! | ||
623 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
624 | ✗ | YUAL=>YGFLC(IGFLPTR) | |
625 | CALL DEFINE_GFL_COMP(YDGFLC=YUAL,CDNAME=YFAUAL%CLNAME,& | ||
626 | & KGRIB=YUAL_NL%IGRBCODE,LDGP=.FALSE., & | ||
627 | & KREQIN=YUAL_NL%NREQIN,& | ||
628 | & PREFVALI=YUAL_NL%REFVALI,LDREQOUT=YUAL_NL%LREQOUT,& | ||
629 | ✗ | & LDERS=.FALSE.,LD5=.FALSE.,LDT1=LLT1) | |
630 | ! ---------------------------------------------------------------------- | ||
631 | ENDIF | ||
632 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YDOM_NL%LSP)THEN |
633 | ✗ | CALL ABOR1('SUGFL: spectral DOM not coded ') | |
634 | ! ---------------------------------------------------------------------- | ||
635 | ! what is below must be checked when DOM will be coded! | ||
636 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
637 | ✗ | YDOM=>YGFLC(IGFLPTR) | |
638 | CALL DEFINE_GFL_COMP(YDGFLC=YDOM,CDNAME=YFADOM%CLNAME,& | ||
639 | & KGRIB=YDOM_NL%IGRBCODE,LDGP=.FALSE., & | ||
640 | & KREQIN=YDOM_NL%NREQIN,& | ||
641 | & PREFVALI=YDOM_NL%REFVALI,LDREQOUT=YDOM_NL%LREQOUT,& | ||
642 | ✗ | & LDERS=.FALSE.,LD5=.FALSE.,LDT1=LLT1) | |
643 | ! ---------------------------------------------------------------------- | ||
644 | ENDIF | ||
645 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YDAL_NL%LSP)THEN |
646 | ✗ | CALL ABOR1('SUGFL: spectral DAL not coded ') | |
647 | ! ---------------------------------------------------------------------- | ||
648 | ! what is below must be checked when DAL will be coded! | ||
649 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
650 | ✗ | YDAL=>YGFLC(IGFLPTR) | |
651 | CALL DEFINE_GFL_COMP(YDGFLC=YDAL,CDNAME=YFADAL%CLNAME,& | ||
652 | & KGRIB=YDAL_NL%IGRBCODE,LDGP=.FALSE., & | ||
653 | & KREQIN=YDAL_NL%NREQIN,& | ||
654 | & PREFVALI=YDAL_NL%REFVALI,LDREQOUT=YDOM_NL%LREQOUT,& | ||
655 | ✗ | & LDERS=.FALSE.,LD5=.FALSE.,LDT1=LLT1) | |
656 | ! ---------------------------------------------------------------------- | ||
657 | ENDIF | ||
658 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YUEN_NL%LSP)THEN |
659 | ✗ | CALL ABOR1('SUGFL: spectral UEN not coded ') | |
660 | ! ---------------------------------------------------------------------- | ||
661 | ! what is below must be checked when UEN will be coded! | ||
662 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
663 | ✗ | YUEN=>YGFLC(IGFLPTR) | |
664 | CALL DEFINE_GFL_COMP(YDGFLC=YUEN,CDNAME=YFAUEN%CLNAME,& | ||
665 | & KGRIB=YUEN_NL%IGRBCODE,LDGP=.FALSE., & | ||
666 | & KREQIN=YUEN_NL%NREQIN,& | ||
667 | & PREFVALI=YUEN_NL%REFVALI,LDREQOUT=YUEN_NL%LREQOUT,& | ||
668 | ✗ | & LDERS=.FALSE.,LD5=.FALSE.,LDT1=LLT1) | |
669 | ! ---------------------------------------------------------------------- | ||
670 | ENDIF | ||
671 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF(YUNEBH_NL%LSP)THEN |
672 | ✗ | CALL ABOR1('SUGFL: spectral UNEBH not coded ') | |
673 | ! ---------------------------------------------------------------------- | ||
674 | ! what is below must be checked when UNEBH will be coded! | ||
675 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
676 | ✗ | YUNEBH=>YGFLC(IGFLPTR) | |
677 | CALL DEFINE_GFL_COMP(YDGFLC=YUNEBH,CDNAME=YFAUNEBH%CLNAME,& | ||
678 | & KGRIB=YUNEBH_NL%IGRBCODE,LDGP=.FALSE., & | ||
679 | & KREQIN=YUNEBH_NL%NREQIN,& | ||
680 | & PREFVALI=YUNEBH_NL%REFVALI,LDREQOUT=YUNEBH_NL%LREQOUT,& | ||
681 | ✗ | & LDERS=.FALSE.,LD5=.FALSE.,LDT1=LLT1) | |
682 | ! ---------------------------------------------------------------------- | ||
683 | ENDIF | ||
684 | |||
685 | ! Extra GFL variables (assumed to be all spectral in this piece of code) | ||
686 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | DO JGFL=1,NGFL_EXT |
687 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YEXT_NL(JGFL)%LSP) THEN |
688 | ✗ | IF(JGFL == 1) THEN | |
689 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
690 | ✗ | YEXT=>YGFLC(IGFLPTR:IGFLPTR+NGFL_EXT-1) | |
691 | ENDIF | ||
692 | CALL DEFINE_GFL_COMP(YDGFLC=YEXT(JGFL),CDNAME=YEXT_NL(JGFL)%CNAME ,& | ||
693 | & KGRIB=YEXT_NL(JGFL)%IGRBCODE,LDGP=.FALSE.,KREQIN=YEXT_NL(JGFL)%NREQIN,& | ||
694 | & PREFVALI=YEXT_NL(JGFL)%REFVALI, LDREQOUT=YEXT_NL(JGFL)%LREQOUT ,& | ||
695 | ✗ | & LDERS=LADER, LD5=LL5, LDT1=LLT1) | |
696 | ENDIF | ||
697 | ENDDO | ||
698 | |||
699 | ! Forcings | ||
700 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | DO JGFL=1,NGFL_FORC |
701 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YFORC_NL(JGFL)%LSP) THEN |
702 | ✗ | CALL ABOR1('SUGFL: FORCINGS HAVE TO BE GRIDPOINT FIELDS') | |
703 | ! ---------------------------------------------------------------------- | ||
704 | ! what is below must be checked when spectral forcings will be coded! | ||
705 | ✗ | IF(JGFL == 1) THEN | |
706 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
707 | ✗ | YFORC=>YGFLC(IGFLPTR:IGFLPTR+NGFL_FORC-1) | |
708 | ENDIF | ||
709 | CALL DEFINE_GFL_COMP(YDGFLC=YFORC(JGFL),CDNAME=YFORC_NL(JGFL)%CNAME,& | ||
710 | & KGRIB=YFORC_NL(JGFL)%IGRBCODE,LDGP=.FALSE.,KREQIN=YFORC_NL(JGFL)%NREQIN,& | ||
711 | & PREFVALI=YFORC_NL(JGFL)%REFVALI, LDREQOUT=YFORC_NL(JGFL)%LREQOUT, & | ||
712 | ✗ | & LDERS=.FALSE.,LD5=.FALSE.,LDT1=.FALSE.) | |
713 | ! ---------------------------------------------------------------------- | ||
714 | ENDIF | ||
715 | ENDDO | ||
716 | |||
717 | ! Easy diagnostics | ||
718 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | DO JGFL=1,NGFL_EZDIAG |
719 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YEZDIAG_NL(JGFL)%LSP) THEN |
720 | ✗ | CALL ABOR1('SUGFL: EZDIAG HAVE TO BE GRIDPOINT FIELDS') | |
721 | ! ---------------------------------------------------------------------- | ||
722 | ! what is below must be checked when spectral easy diag. will be coded! | ||
723 | ✗ | IF(JGFL == 1) THEN | |
724 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
725 | ✗ | YEZDIAG=>YGFLC(IGFLPTR:IGFLPTR+NGFL_EZDIAG-1) | |
726 | ENDIF | ||
727 | CALL DEFINE_GFL_COMP(YDGFLC=YEZDIAG(JGFL),CDNAME=YEZDIAG_NL(JGFL)%CNAME,& | ||
728 | & KGRIB=YEZDIAG_NL(JGFL)%IGRBCODE,LDGP=.FALSE.,& | ||
729 | & KREQIN=YEZDIAG_NL(JGFL)%NREQIN,& | ||
730 | & PREFVALI=YEZDIAG_NL(JGFL)%REFVALI, LDREQOUT=YEZDIAG_NL(JGFL)%LREQOUT, & | ||
731 | ✗ | & LDERS=.FALSE.,LD5=.FALSE.,LDT1=.FALSE.) | |
732 | ! ---------------------------------------------------------------------- | ||
733 | ENDIF | ||
734 | ENDDO | ||
735 | |||
736 | !Greenhouse Gases | ||
737 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | DO JGFL=1,NGHG |
738 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YGHG_NL(JGFL)%LSP) THEN |
739 | ✗ | IF(JGFL == 1) THEN | |
740 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
741 | ✗ | YGHG=>YGFLC(IGFLPTR:IGFLPTR+NGHG-1) | |
742 | ENDIF | ||
743 | CALL DEFINE_GFL_COMP(YDGFLC=YGHG(JGFL),CDNAME=YGHG_NL(JGFL)%CNAME ,& | ||
744 | & KGRIB=YGHG_NL(JGFL)%IGRBCODE, LDGP=.FALSE., KREQIN=YGHG_NL(JGFL)%NREQIN ,& | ||
745 | & PREFVALI=YGHG_NL(JGFL)%REFVALI, LDREQOUT=YGHG_NL(JGFL)%LREQOUT ,& | ||
746 | ✗ | & LDERS=LADER, LD5=LL5, LDT1=LLT1) | |
747 | ENDIF | ||
748 | ENDDO | ||
749 | |||
750 | !Diagnostic tracers | ||
751 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | DO JGFL=1,NTRAC |
752 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YTRAC_NL(JGFL)%LSP) THEN |
753 | ✗ | IF(JGFL == 1) THEN | |
754 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
755 | ✗ | YTRAC=>YGFLC(IGFLPTR:IGFLPTR+NTRAC-1) | |
756 | ENDIF | ||
757 | CALL DEFINE_GFL_COMP(YDGFLC=YTRAC(JGFL),CDNAME=YTRAC_NL(JGFL)%CNAME ,& | ||
758 | & KGRIB=YTRAC_NL(JGFL)%IGRBCODE, LDGP=.FALSE., KREQIN=YTRAC_NL(JGFL)%NREQIN ,& | ||
759 | & PREFVALI=YTRAC_NL(JGFL)%REFVALI, LDREQOUT=YTRAC_NL(JGFL)%LREQOUT ,& | ||
760 | ✗ | & LDERS=LADER, LD5=LL5, LDT1=LLT1) | |
761 | ENDIF | ||
762 | ENDDO | ||
763 | |||
764 | !Reactive Gases | ||
765 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | DO JGFL=1,NGRG |
766 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YGRG_NL(JGFL)%LSP) THEN |
767 | ✗ | IF(JGFL == 1) THEN | |
768 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
769 | ✗ | YGRG=>YGFLC(IGFLPTR:IGFLPTR+NGRG-1) | |
770 | ENDIF | ||
771 | CALL DEFINE_GFL_COMP(YDGFLC=YGRG(JGFL),CDNAME=YGRG_NL(JGFL)%CNAME ,& | ||
772 | & KGRIB=YGRG_NL(JGFL)%IGRBCODE, LDGP=.FALSE., KREQIN=YGRG_NL(JGFL)%NREQIN ,& | ||
773 | & PREFVALI=YGRG_NL(JGFL)%REFVALI, LDREQOUT=YGRG_NL(JGFL)%LREQOUT ,& | ||
774 | ✗ | & LDERS=LADER, LD5=LL5, LDT1=LLT1) | |
775 | ENDIF | ||
776 | ENDDO | ||
777 | |||
778 | !Aerosols | ||
779 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | DO JGFL=1,NAERO |
780 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
1 | IF(YAERO_NL(JGFL)%LSP) THEN |
781 | ✗ | IF(JGFL == 1) THEN | |
782 | ✗ | IGFLPTR=YGFL%NUMFLDS+1 | |
783 | ✗ | YAERO=>YGFLC(IGFLPTR:IGFLPTR+NAERO-1) | |
784 | ENDIF | ||
785 | CALL DEFINE_GFL_COMP(YDGFLC=YAERO(JGFL),CDNAME=YAERO_NL(JGFL)%CNAME ,& | ||
786 | & KGRIB=YAERO_NL(JGFL)%IGRBCODE, LDGP=.FALSE., KREQIN=YAERO_NL(JGFL)%NREQIN ,& | ||
787 | & PREFVALI=YAERO_NL(JGFL)%REFVALI, LDREQOUT=YAERO_NL(JGFL)%LREQOUT ,& | ||
788 | ✗ | & LDERS=LADER, LD5=LL5, LDT1=LLT1) | |
789 | ENDIF | ||
790 | ENDDO | ||
791 | |||
792 | ELSE | ||
793 | |||
794 | ! 2. CASE LFPART2=T | ||
795 | |||
796 | ✗ | WRITE(NULOUT,*) ' SUGFL, LFPART2, YGFL%NUMFLDS=',YGFL%NUMFLDS | |
797 | ENDIF | ||
798 | |||
799 | !------------------------------------------------------------------------- | ||
800 | |||
801 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SUGFL',1,ZHOOK_HANDLE) |
802 | 1 | END SUBROUTINE SUGFL | |
803 |