GCC Code Coverage Report


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