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