LMDZ
sugfl.F90
Go to the documentation of this file.
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, &
15  & yuom ,yual ,ydom ,ydal ,yuen ,yunebh, &
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 ,&
26  & yfaqva, &
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 #include "abor1.intfb.h"
96 
97 !-------------------------------------------------------------------------
98 
99 IF (lhook) CALL dr_hook('SUGFL',0,zhook_handle)
100 
101 !-------------------------------------------------------------------------
102 
103 IF( .NOT.lfpart2) THEN
104 
105 ! 1. CASE LFPART2=F
106 !
107 ! 1.1 Initial settings.
108 
109  ygfl%NUMFLDS=0
110 
111  ll5=nconf/100 == 1.OR.nconf == 801.OR.nconf == 601.OR. &
112  & nconf == 401.OR.nconf == 501
113  llt1=.true.
114  ! All gridpoint fields have to be set up before the spectral ones
115  ! (i.e. part 1.2 SHOULD be done before part 1.3)
116  llders=.false.
117  ! * Simple GFL variables:
118  ! (order should be the same in parts 1.1, 1.2 and 1.3).
119  incr=0
120  yq => ygflc(jpgfl-incr)
121  incr=incr+1
122  yl => ygflc(jpgfl-incr)
123  incr=incr+1
124  yi => ygflc(jpgfl-incr)
125  incr=incr+1
126  ys => ygflc(jpgfl-incr)
127  incr=incr+1
128  yr => ygflc(jpgfl-incr)
129  incr=incr+1
130  yg => ygflc(jpgfl-incr)
131  incr=incr+1
132  ytke => ygflc(jpgfl-incr)
133  incr=incr+1
134  ya => ygflc(jpgfl-incr)
135  incr=incr+1
136  yo3 => ygflc(jpgfl-incr)
137  incr=incr+1
138  ycpf => ygflc(jpgfl-incr)
139  incr=incr+1
140  yspf => ygflc(jpgfl-incr)
141  incr=incr+1
142  ysrc => ygflc(jpgfl-incr)
143  incr=incr+1
144  ycvgq => ygflc(jpgfl-incr)
145  incr=incr+1
146  ysdsat => ygflc(jpgfl-incr)
147  incr=incr+1
148  ycvv => ygflc(jpgfl-incr)
149  incr=incr+1
150  yqva => ygflc(jpgfl-incr)
151  incr=incr+1
152  yuom => ygflc(jpgfl-incr)
153  incr=incr+1
154  yual => ygflc(jpgfl-incr)
155  incr=incr+1
156  ydom => ygflc(jpgfl-incr)
157  incr=incr+1
158  ydal => ygflc(jpgfl-incr)
159  incr=incr+1
160  yuen => ygflc(jpgfl-incr)
161  incr=incr+1
162  yunebh => ygflc(jpgfl-incr)
163  incr=incr+1
164  ! * Groups of multiple GFL variables:
165  ! (order should be the same in parts 1.1, 1.2 and 1.3).
166  IF (ngfl_ext == 0) THEN
167  yext => ygflc(jpgfl-incr:jpgfl-incr)
168  incr=incr+1
169  ENDIF
170  IF (ngfl_forc == 0) THEN
171  yforc => ygflc(jpgfl-incr:jpgfl-incr)
172  incr=incr+1
173  ENDIF
174  IF (ngfl_ezdiag == 0) THEN
175  yezdiag => ygflc(jpgfl-incr:jpgfl-incr)
176  incr=incr+1
177  ENDIF
178  IF (nghg == 0) THEN
179  yghg => ygflc(jpgfl-incr:jpgfl-incr)
180  incr=incr+1
181  ENDIF
182  IF (ntrac == 0) THEN
183  ytrac => ygflc(jpgfl-incr:jpgfl-incr)
184  incr=incr+1
185  ENDIF
186  IF (ngrg == 0) THEN
187  ygrg => ygflc(jpgfl-incr:jpgfl-incr)
188  incr=incr+1
189  ENDIF
190  IF (naero == 0) THEN
191  yaero => ygflc(jpgfl-incr:jpgfl-incr)
192  incr=incr+1
193  ENDIF
194 
195 ! 1.2 Grid-point GFL.
196 
197  IF(yq_nl%LGP) THEN
198  igflptr=ygfl%NUMFLDS+1
199  yq=>ygflc(igflptr)
200  CALL define_gfl_comp(ydgflc=yq ,cdname=yfaq%CLNAME,kgrib=ngrbq,ldgp=.true.,&
201  & kreqin=yq_nl%NREQIN, &
202  & prefvali=yq_nl%REFVALI,ldreqout=yq_nl%LREQOUT,lders=llders,ld5=ll5,&
203  & ldt1=llt1,ldgpingp=yq_nl%LGPINGP, &
204  & ldtrajio=yq_nl%LTRAJIO,ldthermact=.true.,pr=rv,prcp=rcpv)
205  ENDIF
206  IF(yl_nl%LGP) THEN
207  igflptr=ygfl%NUMFLDS+1
208  yl=>ygflc(igflptr)
209  CALL define_gfl_comp(ydgflc=yl ,cdname=yfal%CLNAME,kgrib=ngrbclwc, &
210  & ldgp=.true.,kreqin=yl_nl%NREQIN, &
211  & prefvali=yl_nl%REFVALI,ldreqout=yl_nl%LREQOUT,lders=llders,ld5=ll5, &
212  & ldt1=llt1,ldthermact=.true.,pr=0.0_jprb,prcp=rcw)
213  ENDIF
214  IF(yi_nl%LGP) THEN
215  igflptr=ygfl%NUMFLDS+1
216  yi=>ygflc(igflptr)
217  CALL define_gfl_comp(ydgflc=yi ,cdname=yfai%CLNAME,kgrib=ngrbciwc,&
218  & ldgp=.true.,kreqin=yi_nl%NREQIN, &
219  & prefvali=yi_nl%REFVALI,ldreqout=yi_nl%LREQOUT,lders=llders,ld5=ll5, &
220  & ldt1=llt1,ldthermact=.true.,pr=0.0_jprb,prcp=rcs)
221  ENDIF
222  IF(ys_nl%LGP) THEN
223  igflptr=ygfl%NUMFLDS+1
224  ys=>ygflc(igflptr)
225  CALL define_gfl_comp(ydgflc=ys ,cdname=yfas%CLNAME,kgrib=ngrb149, &
226  & ldgp=.true.,kreqin=ys_nl%NREQIN, &
227  & prefvali=ys_nl%REFVALI,ldreqout=ys_nl%LREQOUT,lders=llders,ld5=ll5, &
228  & ldt1=llt1,ldthermact=.true.,pr=0.0_jprb,prcp=rcs)
229  ENDIF
230  IF(yr_nl%LGP) THEN
231  igflptr=ygfl%NUMFLDS+1
232  yr=>ygflc(igflptr)
233  CALL define_gfl_comp(ydgflc=yr ,cdname=yfar%CLNAME,kgrib=ngrb149,&
234  & ldgp=.true.,kreqin=yr_nl%NREQIN, &
235  & prefvali=yr_nl%REFVALI,ldreqout=yr_nl%LREQOUT,lders=llders,ld5=ll5, &
236  & ldt1=llt1,ldthermact=.true.,pr=0.0_jprb,prcp=rcw)
237  ENDIF
238  IF(yg_nl%LGP) THEN
239  igflptr=ygfl%NUMFLDS+1
240  yg=>ygflc(igflptr)
241  CALL define_gfl_comp(ydgflc=yg ,cdname=yfag%CLNAME,kgrib=ngrb149,&
242  & ldgp=.true.,kreqin=yg_nl%NREQIN, &
243  & prefvali=yg_nl%REFVALI,ldreqout=yg_nl%LREQOUT,lders=llders,ld5=ll5, &
244  & ldt1=llt1,ldthermact=.true.,pr=0.0_jprb,prcp=rcs)
245  ENDIF
246  IF(ytke_nl%LGP) THEN
247  igflptr=ygfl%NUMFLDS+1
248  ytke=>ygflc(igflptr)
249  CALL define_gfl_comp(ydgflc=ytke ,cdname=yfatke%CLNAME,kgrib=ngrb149,&
250  & ldgp=.true.,kreqin=ytke_nl%NREQIN, &
251  & prefvali=ytke_nl%REFVALI,ldreqout=ytke_nl%LREQOUT,lders=llders,ld5=ll5,&
252  & ldt1=llt1)
253  ENDIF
254  IF(ya_nl%LGP)THEN
255  igflptr=ygfl%NUMFLDS+1
256  ya=>ygflc(igflptr)
257  CALL define_gfl_comp(ydgflc=ya ,cdname=yfaclf%CLNAME,kgrib=ngrbcc,&
258  & ldgp=.true.,kreqin=ya_nl%NREQIN, &
259  & prefvali=ya_nl%REFVALI,ldreqout=ya_nl%LREQOUT,lders=llders,ld5=ll5,&
260  & ldt1=llt1)
261  ENDIF
262  IF(yo3_nl%LGP)THEN
263  igflptr=ygfl%NUMFLDS+1
264  yo3=>ygflc(igflptr)
265  CALL define_gfl_comp(ydgflc=yo3,cdname=yfao3%CLNAME,kgrib=ngrbo3,&
266  & ldgp=.true.,kreqin=yo3_nl%NREQIN, &
267  & prefvali=yo3_nl%REFVALI,ldreqout=yo3_nl%LREQOUT,lders=llders,ld5=ll5,&
268  & ldt1=llt1,ldgpingp=yo3_nl%LGPINGP, &
269  & ldtrajio=yo3_nl%LTRAJIO)
270  ENDIF
271  IF(ycpf_nl%LGP)THEN
272  igflptr=ygfl%NUMFLDS+1
273  ycpf=>ygflc(igflptr)
274  CALL define_gfl_comp(ydgflc=ycpf,cdname=yfacpf%CLNAME,&
275  & kgrib=ycpf_nl%IGRBCODE,ldgp=.true., &
276  & kreqin=ycpf_nl%NREQIN,prefvali= ycpf_nl%REFVALI,&
277  & ldreqout=ycpf_nl%LREQOUT,lders=.false.,ld5=ll5, &
278  & ldt1=llt1,ldgpingp=.true.)
279  ENDIF
280  IF(yspf_nl%LGP)THEN
281  igflptr=ygfl%NUMFLDS+1
282  yspf=>ygflc(igflptr)
283  CALL define_gfl_comp(ydgflc=yspf,cdname=yfaspf%CLNAME,&
284  & kgrib=yspf_nl%IGRBCODE,ldgp=.true., &
285  & kreqin=yspf_nl%NREQIN, prefvali=yspf_nl%REFVALI,&
286  & ldreqout=yspf_nl%LREQOUT,lders=.false.,ld5=ll5, &
287  & ldt1=llt1,ldgpingp=.true.)
288  ENDIF
289  IF(ysrc_nl%LGP) THEN
290  igflptr=ygfl%NUMFLDS+1
291  ysrc=>ygflc(igflptr)
292  CALL define_gfl_comp(ydgflc=ysrc ,cdname=yfasrc%CLNAME,kgrib=ngrb149,&
293  & ldgp=.true.,kreqin=ysrc_nl%NREQIN, &
294  & prefvali=ysrc_nl%REFVALI,ldreqout=ysrc_nl%LREQOUT,lders=llders,&
295  & ld5=ll5,ldt1=llt1)
296  ENDIF
297  IF(ycvgq_nl%LGP) THEN
298  igflptr=ygfl%NUMFLDS+1
299  ycvgq=>ygflc(igflptr)
300  CALL define_gfl_comp(ydgflc=ycvgq ,cdname=yfacvgq%CLNAME,kgrib=ngrb149,&
301  & ldgp=.true.,kreqin=ycvgq_nl%NREQIN, &
302  & prefvali=ycvgq_nl%REFVALI, ldreqout=ycvgq_nl%LREQOUT,lders=llders,&
303  & ld5=ll5,ldt1=llt1)
304  ENDIF
305  IF(ysdsat_nl%LGP) THEN
306  igflptr=ygfl%NUMFLDS+1
307  ysdsat=>ygflc(igflptr)
308  CALL define_gfl_comp(ydgflc=ysdsat,cdname=yfasdsat%CLNAME,kgrib=ngrb149,&
309  & ldgp=.true.,kreqin=ysdsat_nl%NREQIN, &
310  & prefvali=ysdsat_nl%REFVALI, ldreqout=ysdsat_nl%LREQOUT,lders=llders,&
311  & ld5=ll5,ldt1=llt1)
312  ENDIF
313  IF(ycvv_nl%LGP) THEN
314  igflptr=ygfl%NUMFLDS+1
315  ycvv=>ygflc(igflptr)
316  CALL define_gfl_comp(ydgflc=ycvv,cdname=yfacvv%CLNAME,kgrib=ngrb149,&
317  & ldgp=.true.,kreqin=ycvv_nl%NREQIN, &
318  & prefvali=ycvv_nl%REFVALI, ldreqout=ycvv_nl%LREQOUT,lders=llders,&
319  & ld5=ll5,ldt1=llt1)
320  ENDIF
321  IF(yqva_nl%LGP) THEN
322  igflptr=ygfl%NUMFLDS+1
323  yqva=>ygflc(igflptr)
324  CALL define_gfl_comp(ydgflc=yqva,cdname=yfaqva%CLNAME,&
325  & kgrib=yqva_nl%IGRBCODE,ldgp=.true., &
326  & kreqin=yqva_nl%NREQIN, prefvali=yqva_nl%REFVALI,&
327  & ldreqout=yqva_nl%LREQOUT,lders=.false.,ld5=ll5, &
328  & ldt1=llt1,ldgpingp=.true.)
329  ENDIF
330  IF(yuom_nl%LGP)THEN
331  igflptr=ygfl%NUMFLDS+1
332  yuom=>ygflc(igflptr)
333  CALL define_gfl_comp(ydgflc=yuom,cdname=yfauom%CLNAME,&
334  & kgrib=yuom_nl%IGRBCODE,ldgp=.true., &
335  & kreqin=yuom_nl%NREQIN,&
336  & prefvali=yuom_nl%REFVALI,ldreqout=yuom_nl%LREQOUT,&
337  & lders=.false.,ld5=ll5,ldt1=llt1,ldgpingp=.true.)
338  ENDIF
339  IF(yual_nl%LGP)THEN
340  igflptr=ygfl%NUMFLDS+1
341  yual=>ygflc(igflptr)
342  CALL define_gfl_comp(ydgflc=yual,cdname=yfaual%CLNAME,&
343  & kgrib=yual_nl%IGRBCODE,ldgp=.true., &
344  & kreqin=yual_nl%NREQIN,&
345  & prefvali=yual_nl%REFVALI,ldreqout=yual_nl%LREQOUT,&
346  & lders=.false.,ld5=ll5,ldt1=llt1,ldgpingp=.true.)
347  ENDIF
348  IF(ydom_nl%LGP)THEN
349  igflptr=ygfl%NUMFLDS+1
350  ydom=>ygflc(igflptr)
351  CALL define_gfl_comp(ydgflc=ydom,cdname=yfadom%CLNAME,&
352  & kgrib=ydom_nl%IGRBCODE,ldgp=.true., &
353  & kreqin=ydom_nl%NREQIN,&
354  & prefvali=ydom_nl%REFVALI,ldreqout=ydom_nl%LREQOUT,&
355  & lders=.false.,ld5=ll5,ldt1=llt1,ldgpingp=.true.)
356  ENDIF
357  IF(ydal_nl%LGP)THEN
358  igflptr=ygfl%NUMFLDS+1
359  ydal=>ygflc(igflptr)
360  CALL define_gfl_comp(ydgflc=ydal,cdname=yfadal%CLNAME,&
361  & kgrib=ydal_nl%IGRBCODE,ldgp=.true., &
362  & kreqin=ydal_nl%NREQIN,&
363  & prefvali=ydal_nl%REFVALI,ldreqout=ydal_nl%LREQOUT,&
364  & lders=.false.,ld5=ll5,ldt1=llt1,ldgpingp=.true.)
365  ENDIF
366  IF(yuen_nl%LGP)THEN
367  igflptr=ygfl%NUMFLDS+1
368  yuen=>ygflc(igflptr)
369  CALL define_gfl_comp(ydgflc=yuen,cdname=yfauen%CLNAME,&
370  & kgrib=yuen_nl%IGRBCODE,ldgp=.true., &
371  & kreqin=yuen_nl%NREQIN,&
372  & prefvali=yuen_nl%REFVALI,ldreqout=yuen_nl%LREQOUT,&
373  & lders=.false.,ld5=ll5,ldt1=llt1,ldgpingp=.true.)
374  ENDIF
375  IF(yunebh_nl%LGP)THEN
376  igflptr=ygfl%NUMFLDS+1
377  yunebh=>ygflc(igflptr)
378  CALL define_gfl_comp(ydgflc=yunebh,cdname=yfaunebh%CLNAME,&
379  & kgrib=yunebh_nl%IGRBCODE,ldgp=.true., &
380  & kreqin=yunebh_nl%NREQIN,&
381  & prefvali=yunebh_nl%REFVALI,ldreqout=yunebh_nl%LREQOUT,&
382  & lders=.false.,ld5=ll5,ldt1=llt1,ldgpingp=.true.)
383  ENDIF
384 
385  ! Extra GFL variables
386  ! - do a preliminary test to see if, when there are extra-GFL and when at
387  ! least one of them is a grid-point one, there is no extra-GFL which is
388  ! a spectral one (not allowed):
389  ! in this case all the extra-GFL must be grid-point ones.
390  IF (ngfl_ext > 1) THEN
391  IF(any(yext_nl(1:ngfl_ext)%LGP)) THEN
392  DO jgfl=1,ngfl_ext
393  IF (yext_nl(jgfl)%LSP) CALL abor1&
394  & ('SUGFL:EXTRA GFL FIELDS HAVE TO BE ALL EITHER SPECTRAL OR GRIDPOINT')
395  ENDDO
396  ENDIF
397  ENDIF
398  ! - define the GFL components (all the extra-GFL are grid-point ones).
399  DO jgfl=1,ngfl_ext
400  IF(yext_nl(jgfl)%LGP) THEN
401  IF(jgfl == 1) THEN
402  igflptr=ygfl%NUMFLDS+1
403  yext=>ygflc(igflptr:igflptr+ngfl_ext-1)
404  ENDIF
405  CALL define_gfl_comp(ydgflc=yext(jgfl),cdname=yext_nl(jgfl)%CNAME ,&
406  & kgrib=yext_nl(jgfl)%IGRBCODE,ldgp=.true.,kreqin=yext_nl(jgfl)%NREQIN,&
407  & prefvali=yext_nl(jgfl)%REFVALI, ldreqout=yext_nl(jgfl)%LREQOUT ,&
408  & lders=llders, ld5=ll5, ldt1=llt1,ldgpingp=yext_nl(jgfl)%LGPINGP, &
409  & ldtrajio=yext_nl(jgfl)%LTRAJIO)
410  ENDIF
411  ENDDO
412 
413  ! Forcings
414  DO jgfl=1,ngfl_forc
415  IF(yforc_nl(jgfl)%LGP) THEN
416  IF(jgfl == 1) THEN
417  igflptr=ygfl%NUMFLDS+1
418  yforc=>ygflc(igflptr:igflptr+ngfl_forc-1)
419  ENDIF
420  CALL define_gfl_comp(ydgflc=yforc(jgfl),cdname=yforc_nl(jgfl)%CNAME ,&
421  & kgrib=yforc_nl(jgfl)%IGRBCODE,ldgp=.true.,kreqin=yforc_nl(jgfl)%NREQIN,&
422  & prefvali=yforc_nl(jgfl)%REFVALI, ldreqout=yforc_nl(jgfl)%LREQOUT ,&
423  & lders=llders, ld5=ll5, ldt1=llt1,ldgpingp=yforc_nl(jgfl)%LGPINGP, &
424  & ldtrajio=yforc_nl(jgfl)%LTRAJIO)
425  ENDIF
426  ENDDO
427 
428  ! Easy diagnostics
429  DO jgfl=1,ngfl_ezdiag
430  IF(yezdiag_nl(jgfl)%LGP) THEN
431  IF(jgfl == 1) THEN
432  igflptr=ygfl%NUMFLDS+1
433  yezdiag=>ygflc(igflptr:igflptr+ngfl_ezdiag-1)
434  ENDIF
435  CALL define_gfl_comp(ydgflc=yezdiag(jgfl),cdname=yezdiag_nl(jgfl)%CNAME ,&
436  & kgrib=yezdiag_nl(jgfl)%IGRBCODE,ldgp=.true.,kreqin=yezdiag_nl(jgfl)%NREQIN,&
437  & prefvali=yezdiag_nl(jgfl)%REFVALI, ldreqout=yezdiag_nl(jgfl)%LREQOUT ,&
438  & lders=llders, ld5=ll5, ldt1=llt1,ldgpingp=yezdiag_nl(jgfl)%LGPINGP, &
439  & ldtrajio=yezdiag_nl(jgfl)%LTRAJIO)
440  ENDIF
441  ENDDO
442 
443 !-- Greenhouse Gases
444  DO jgfl=1,nghg
445  IF(yghg_nl(jgfl)%LGP) THEN
446  IF(jgfl == 1) THEN
447  igflptr=ygfl%NUMFLDS+1
448  yghg=>ygflc(igflptr:igflptr+nghg-1)
449  ENDIF
450  CALL define_gfl_comp(ydgflc=yghg(jgfl),cdname=yghg_nl(jgfl)%CNAME ,&
451  & kgrib=yghg_nl(jgfl)%IGRBCODE, ldgp=.true., kreqin=yghg_nl(jgfl)%NREQIN ,&
452  & prefvali=yghg_nl(jgfl)%REFVALI, ldreqout=yghg_nl(jgfl)%LREQOUT ,&
453  & lders=llders, ld5=ll5, ldt1=llt1,ldgpingp=yghg_nl(jgfl)%LGPINGP, &
454  & ldtrajio=yghg_nl(jgfl)%LTRAJIO)
455  ENDIF
456  ENDDO
457 
458 !-- Diagnostic tracers
459  DO jgfl=1,ntrac
460  IF(ytrac_nl(jgfl)%LGP) THEN
461  IF(jgfl == 1) THEN
462  igflptr=ygfl%NUMFLDS+1
463  ytrac=>ygflc(igflptr:igflptr+ntrac-1)
464  ENDIF
465  CALL define_gfl_comp(ydgflc=ytrac(jgfl),cdname=ytrac_nl(jgfl)%CNAME ,&
466  & kgrib=ytrac_nl(jgfl)%IGRBCODE, ldgp=.true., kreqin=ytrac_nl(jgfl)%NREQIN ,&
467  & prefvali=ytrac_nl(jgfl)%REFVALI, ldreqout=ytrac_nl(jgfl)%LREQOUT ,&
468  & lders=llders, ld5=ll5, ldt1=llt1,ldgpingp=ytrac_nl(jgfl)%LGPINGP, &
469  & ldtrajio=ytrac_nl(jgfl)%LTRAJIO)
470  ENDIF
471  ENDDO
472 
473 !-- Reactive Gases
474  DO jgfl=1,ngrg
475  IF(ygrg_nl(jgfl)%LGP) THEN
476  IF(jgfl == 1) THEN
477  igflptr=ygfl%NUMFLDS+1
478  ygrg=>ygflc(igflptr:igflptr+ngrg-1)
479  ENDIF
480  CALL define_gfl_comp(ydgflc=ygrg(jgfl),cdname=ygrg_nl(jgfl)%CNAME ,&
481  & kgrib=ygrg_nl(jgfl)%IGRBCODE, ldgp=.true., kreqin=ygrg_nl(jgfl)%NREQIN ,&
482  & prefvali=ygrg_nl(jgfl)%REFVALI, ldreqout=ygrg_nl(jgfl)%LREQOUT ,&
483  & lders=llders, ld5=ll5, ldt1=llt1,ldgpingp=ygrg_nl(jgfl)%LGPINGP, &
484  & ldtrajio=ygrg_nl(jgfl)%LTRAJIO)
485  ENDIF
486  ENDDO
487 
488 !-- Aerosols
489  DO jgfl=1,naero
490  IF(yaero_nl(jgfl)%LGP) THEN
491  IF(jgfl == 1) THEN
492  igflptr=ygfl%NUMFLDS+1
493  yaero=>ygflc(igflptr:igflptr+naero-1)
494  ENDIF
495  CALL define_gfl_comp(ydgflc=yaero(jgfl),cdname=yaero_nl(jgfl)%CNAME ,&
496  & kgrib=yaero_nl(jgfl)%IGRBCODE, ldgp=.true., kreqin=yaero_nl(jgfl)%NREQIN ,&
497  & prefvali=yaero_nl(jgfl)%REFVALI, ldreqout=yaero_nl(jgfl)%LREQOUT ,&
498  & lders=llders, ld5=ll5, ldt1=llt1,ldgpingp=yaero_nl(jgfl)%LGPINGP, &
499  & ldtrajio=yaero_nl(jgfl)%LTRAJIO)
500  ENDIF
501  ENDDO
502 
503 ! 1.3 Spectral GFL.
504 
505  IF(yq_nl%LSP) THEN
506  igflptr=ygfl%NUMFLDS+1
507  yq=>ygflc(igflptr)
508  CALL define_gfl_comp(ydgflc=yq ,cdname=yfaq%CLNAME,kgrib=ngrbq,&
509  & ldgp=.false.,kreqin=yq_nl%NREQIN, &
510  & prefvali=yq_nl%REFVALI, ldreqout=yq_nl%LREQOUT, lders=lader,ld5=ll5, &
511  & ldt1=llt1,ldthermact=.true.,pr=rv,prcp=rcpv)
512  ENDIF
513  IF(yl_nl%LSP) THEN
514  igflptr=ygfl%NUMFLDS+1
515  yl=>ygflc(igflptr)
516  CALL define_gfl_comp(ydgflc=yl ,cdname=yfal%CLNAME,kgrib=ngrbclwc,&
517  & ldgp=.false.,kreqin=yl_nl%NREQIN, &
518  & prefvali=yl_nl%REFVALI, ldreqout=yl_nl%LREQOUT, lders=lader,ld5=ll5, &
519  & ldt1=llt1,ldthermact=.true.,pr=0.0_jprb,prcp=rcw)
520  ENDIF
521  IF(yi_nl%LSP)THEN
522  igflptr=ygfl%NUMFLDS+1
523  yi=>ygflc(igflptr)
524  CALL define_gfl_comp(ydgflc=yi ,cdname=yfai%CLNAME,kgrib=ngrbciwc,&
525  & ldgp=.false.,kreqin=yi_nl%NREQIN, &
526  & prefvali=yi_nl%REFVALI, ldreqout=yi_nl%LREQOUT, lders=lader,ld5=ll5, &
527  & ldt1=llt1,ldthermact=.true.,pr=0.0_jprb,prcp=rcs)
528  ENDIF
529  IF(ys_nl%LSP)THEN
530  CALL abor1('SUGFL: spectral snow not coded ')
531  ENDIF
532  IF(yr_nl%LSP)THEN
533  CALL abor1('SUGFL: spectral rain not coded ')
534  ENDIF
535  IF(yg_nl%LSP)THEN
536  CALL abor1('SUGFL: spectral graupels not coded ')
537  ENDIF
538  IF(ytke_nl%LSP)THEN
539  CALL abor1('SUGFL: spectral TKE not coded ')
540  ENDIF
541  IF(ya_nl%LSP)THEN
542  igflptr=ygfl%NUMFLDS+1
543  ya=>ygflc(igflptr)
544  CALL define_gfl_comp(ydgflc=ya ,cdname=yfaclf%CLNAME,kgrib=ngrbcc,&
545  & ldgp=.false.,kreqin=ya_nl%NREQIN, &
546  & prefvali=ya_nl%REFVALI, ldreqout=ya_nl%LREQOUT, lders=lader,ld5=ll5,&
547  & ldt1=llt1)
548  ENDIF
549  IF(yo3_nl%LSP)THEN
550  igflptr=ygfl%NUMFLDS+1
551  yo3=>ygflc(igflptr)
552  CALL define_gfl_comp(ydgflc=yo3,cdname=yfao3%CLNAME,kgrib=ngrbo3,&
553  & ldgp=.false.,kreqin=yo3_nl%NREQIN, &
554  & prefvali=yo3_nl%REFVALI, ldreqout=yo3_nl%LREQOUT, lders=lader,ld5=ll5,&
555  & ldt1=llt1)
556  ENDIF
557  IF(ycpf_nl%LSP)THEN
558  igflptr=ygfl%NUMFLDS+1
559  ycpf=>ygflc(igflptr)
560  CALL define_gfl_comp(ydgflc=ycpf,cdname=yfacpf%CLNAME,&
561  & kgrib=ycpf_nl%IGRBCODE, ldgp=.false., &
562  & kreqin=ycpf_nl%NREQIN,prefvali=ycpf_nl%REFVALI,ldreqout=ycpf_nl%LREQOUT,&
563  & lders=.false.,ld5=.false., &
564  & ldt1=llt1)
565  ENDIF
566  IF(yspf_nl%LSP)THEN
567  igflptr=ygfl%NUMFLDS+1
568  yspf=>ygflc(igflptr)
569  CALL define_gfl_comp(ydgflc=yspf,cdname=yfaspf%CLNAME,&
570  & kgrib=yspf_nl%IGRBCODE,ldgp= .false., &
571  & kreqin=yspf_nl%NREQIN,prefvali=yspf_nl%REFVALI,ldreqout=yspf_nl%LREQOUT,&
572  & lders=.false.,ld5=.false., &
573  & ldt1=llt1)
574  ENDIF
575  IF(ysrc_nl%LSP)THEN
576  CALL abor1('SUGFL: spectral SRC not coded ')
577  ENDIF
578  IF(ycvgq_nl%LSP)THEN
579  igflptr=ygfl%NUMFLDS+1
580  ycvgq=>ygflc(igflptr)
581  CALL define_gfl_comp(ydgflc=ycvgq,cdname=yfacvgq%CLNAME,&
582  & kgrib=ycvgq_nl%IGRBCODE,ldgp= .false., &
583  & kreqin=ycvgq_nl%NREQIN,prefvali=ycvgq_nl%REFVALI,&
584  & ldreqout=ycvgq_nl%LREQOUT,lders= .true.,ld5=.false., &
585  & ldt1=llt1)
586  ENDIF
587  IF(ysdsat_nl%LSP)THEN
588  CALL abor1('SUGFL: spectral SDSAT not coded ')
589  ENDIF
590  IF(ycvv_nl%LSP)THEN
591  CALL abor1('SUGFL: spectral CVV not coded ')
592  ENDIF
593  IF(yqva_nl%LSP) THEN
594  igflptr=ygfl%NUMFLDS+1
595  yqva=>ygflc(igflptr)
596  CALL define_gfl_comp(ydgflc=yqva,cdname=yfaqva%CLNAME,&
597  & kgrib=yqva_nl%IGRBCODE, ldgp=.false., &
598  & kreqin=yqva_nl%NREQIN,prefvali=yqva_nl%REFVALI,ldreqout=yqva_nl%LREQOUT,&
599  & lders=.false.,ld5=.false., &
600  & ldt1=llt1)
601  ENDIF
602  IF(yuom_nl%LSP)THEN
603  CALL abor1('SUGFL: spectral UOM not coded ')
604  ! ----------------------------------------------------------------------
605  ! what is below must be checked when UOM will be coded!
606  igflptr=ygfl%NUMFLDS+1
607  yuom=>ygflc(igflptr)
608  CALL define_gfl_comp(ydgflc=yuom,cdname=yfauom%CLNAME,&
609  & kgrib=yuom_nl%IGRBCODE,ldgp=.false., &
610  & kreqin=yuom_nl%NREQIN,&
611  & prefvali=yuom_nl%REFVALI,ldreqout=yuom_nl%LREQOUT,&
612  & lders=.false.,ld5=.false.,ldt1=llt1)
613  ! ----------------------------------------------------------------------
614  ENDIF
615  IF(yual_nl%LSP)THEN
616  CALL abor1('SUGFL: spectral UAL not coded ')
617  ! ----------------------------------------------------------------------
618  ! what is below must be checked when UAL will be coded!
619  igflptr=ygfl%NUMFLDS+1
620  yual=>ygflc(igflptr)
621  CALL define_gfl_comp(ydgflc=yual,cdname=yfaual%CLNAME,&
622  & kgrib=yual_nl%IGRBCODE,ldgp=.false., &
623  & kreqin=yual_nl%NREQIN,&
624  & prefvali=yual_nl%REFVALI,ldreqout=yual_nl%LREQOUT,&
625  & lders=.false.,ld5=.false.,ldt1=llt1)
626  ! ----------------------------------------------------------------------
627  ENDIF
628  IF(ydom_nl%LSP)THEN
629  CALL abor1('SUGFL: spectral DOM not coded ')
630  ! ----------------------------------------------------------------------
631  ! what is below must be checked when DOM will be coded!
632  igflptr=ygfl%NUMFLDS+1
633  ydom=>ygflc(igflptr)
634  CALL define_gfl_comp(ydgflc=ydom,cdname=yfadom%CLNAME,&
635  & kgrib=ydom_nl%IGRBCODE,ldgp=.false., &
636  & kreqin=ydom_nl%NREQIN,&
637  & prefvali=ydom_nl%REFVALI,ldreqout=ydom_nl%LREQOUT,&
638  & lders=.false.,ld5=.false.,ldt1=llt1)
639  ! ----------------------------------------------------------------------
640  ENDIF
641  IF(ydal_nl%LSP)THEN
642  CALL abor1('SUGFL: spectral DAL not coded ')
643  ! ----------------------------------------------------------------------
644  ! what is below must be checked when DAL will be coded!
645  igflptr=ygfl%NUMFLDS+1
646  ydal=>ygflc(igflptr)
647  CALL define_gfl_comp(ydgflc=ydal,cdname=yfadal%CLNAME,&
648  & kgrib=ydal_nl%IGRBCODE,ldgp=.false., &
649  & kreqin=ydal_nl%NREQIN,&
650  & prefvali=ydal_nl%REFVALI,ldreqout=ydom_nl%LREQOUT,&
651  & lders=.false.,ld5=.false.,ldt1=llt1)
652  ! ----------------------------------------------------------------------
653  ENDIF
654  IF(yuen_nl%LSP)THEN
655  CALL abor1('SUGFL: spectral UEN not coded ')
656  ! ----------------------------------------------------------------------
657  ! what is below must be checked when UEN will be coded!
658  igflptr=ygfl%NUMFLDS+1
659  yuen=>ygflc(igflptr)
660  CALL define_gfl_comp(ydgflc=yuen,cdname=yfauen%CLNAME,&
661  & kgrib=yuen_nl%IGRBCODE,ldgp=.false., &
662  & kreqin=yuen_nl%NREQIN,&
663  & prefvali=yuen_nl%REFVALI,ldreqout=yuen_nl%LREQOUT,&
664  & lders=.false.,ld5=.false.,ldt1=llt1)
665  ! ----------------------------------------------------------------------
666  ENDIF
667  IF(yunebh_nl%LSP)THEN
668  CALL abor1('SUGFL: spectral UNEBH not coded ')
669  ! ----------------------------------------------------------------------
670  ! what is below must be checked when UNEBH will be coded!
671  igflptr=ygfl%NUMFLDS+1
672  yunebh=>ygflc(igflptr)
673  CALL define_gfl_comp(ydgflc=yunebh,cdname=yfaunebh%CLNAME,&
674  & kgrib=yunebh_nl%IGRBCODE,ldgp=.false., &
675  & kreqin=yunebh_nl%NREQIN,&
676  & prefvali=yunebh_nl%REFVALI,ldreqout=yunebh_nl%LREQOUT,&
677  & lders=.false.,ld5=.false.,ldt1=llt1)
678  ! ----------------------------------------------------------------------
679  ENDIF
680 
681  ! Extra GFL variables (assumed to be all spectral in this piece of code)
682  DO jgfl=1,ngfl_ext
683  IF(yext_nl(jgfl)%LSP) THEN
684  IF(jgfl == 1) THEN
685  igflptr=ygfl%NUMFLDS+1
686  yext=>ygflc(igflptr:igflptr+ngfl_ext-1)
687  ENDIF
688  CALL define_gfl_comp(ydgflc=yext(jgfl),cdname=yext_nl(jgfl)%CNAME ,&
689  & kgrib=yext_nl(jgfl)%IGRBCODE,ldgp=.false.,kreqin=yext_nl(jgfl)%NREQIN,&
690  & prefvali=yext_nl(jgfl)%REFVALI, ldreqout=yext_nl(jgfl)%LREQOUT ,&
691  & lders=lader, ld5=ll5, ldt1=llt1)
692  ENDIF
693  ENDDO
694 
695  ! Forcings
696  DO jgfl=1,ngfl_forc
697  IF(yforc_nl(jgfl)%LSP) THEN
698  CALL abor1('SUGFL: FORCINGS HAVE TO BE GRIDPOINT FIELDS')
699  ! ----------------------------------------------------------------------
700  ! what is below must be checked when spectral forcings will be coded!
701  IF(jgfl == 1) THEN
702  igflptr=ygfl%NUMFLDS+1
703  yforc=>ygflc(igflptr:igflptr+ngfl_forc-1)
704  ENDIF
705  CALL define_gfl_comp(ydgflc=yforc(jgfl),cdname=yforc_nl(jgfl)%CNAME,&
706  & kgrib=yforc_nl(jgfl)%IGRBCODE,ldgp=.false.,kreqin=yforc_nl(jgfl)%NREQIN,&
707  & prefvali=yforc_nl(jgfl)%REFVALI, ldreqout=yforc_nl(jgfl)%LREQOUT, &
708  & lders=.false.,ld5=.false.,ldt1=.false.)
709  ! ----------------------------------------------------------------------
710  ENDIF
711  ENDDO
712 
713  ! Easy diagnostics
714  DO jgfl=1,ngfl_ezdiag
715  IF(yezdiag_nl(jgfl)%LSP) THEN
716  CALL abor1('SUGFL: EZDIAG HAVE TO BE GRIDPOINT FIELDS')
717  ! ----------------------------------------------------------------------
718  ! what is below must be checked when spectral easy diag. will be coded!
719  IF(jgfl == 1) THEN
720  igflptr=ygfl%NUMFLDS+1
721  yezdiag=>ygflc(igflptr:igflptr+ngfl_ezdiag-1)
722  ENDIF
723  CALL define_gfl_comp(ydgflc=yezdiag(jgfl),cdname=yezdiag_nl(jgfl)%CNAME,&
724  & kgrib=yezdiag_nl(jgfl)%IGRBCODE,ldgp=.false.,&
725  & kreqin=yezdiag_nl(jgfl)%NREQIN,&
726  & prefvali=yezdiag_nl(jgfl)%REFVALI, ldreqout=yezdiag_nl(jgfl)%LREQOUT, &
727  & lders=.false.,ld5=.false.,ldt1=.false.)
728  ! ----------------------------------------------------------------------
729  ENDIF
730  ENDDO
731 
732 !Greenhouse Gases
733  DO jgfl=1,nghg
734  IF(yghg_nl(jgfl)%LSP) THEN
735  IF(jgfl == 1) THEN
736  igflptr=ygfl%NUMFLDS+1
737  yghg=>ygflc(igflptr:igflptr+nghg-1)
738  ENDIF
739  CALL define_gfl_comp(ydgflc=yghg(jgfl),cdname=yghg_nl(jgfl)%CNAME ,&
740  & kgrib=yghg_nl(jgfl)%IGRBCODE, ldgp=.false., kreqin=yghg_nl(jgfl)%NREQIN ,&
741  & prefvali=yghg_nl(jgfl)%REFVALI, ldreqout=yghg_nl(jgfl)%LREQOUT ,&
742  & lders=lader, ld5=ll5, ldt1=llt1)
743  ENDIF
744  ENDDO
745 
746 !Diagnostic tracers
747  DO jgfl=1,ntrac
748  IF(ytrac_nl(jgfl)%LSP) THEN
749  IF(jgfl == 1) THEN
750  igflptr=ygfl%NUMFLDS+1
751  ytrac=>ygflc(igflptr:igflptr+ntrac-1)
752  ENDIF
753  CALL define_gfl_comp(ydgflc=ytrac(jgfl),cdname=ytrac_nl(jgfl)%CNAME ,&
754  & kgrib=ytrac_nl(jgfl)%IGRBCODE, ldgp=.false., kreqin=ytrac_nl(jgfl)%NREQIN ,&
755  & prefvali=ytrac_nl(jgfl)%REFVALI, ldreqout=ytrac_nl(jgfl)%LREQOUT ,&
756  & lders=lader, ld5=ll5, ldt1=llt1)
757  ENDIF
758  ENDDO
759 
760 !Reactive Gases
761  DO jgfl=1,ngrg
762  IF(ygrg_nl(jgfl)%LSP) THEN
763  IF(jgfl == 1) THEN
764  igflptr=ygfl%NUMFLDS+1
765  ygrg=>ygflc(igflptr:igflptr+ngrg-1)
766  ENDIF
767  CALL define_gfl_comp(ydgflc=ygrg(jgfl),cdname=ygrg_nl(jgfl)%CNAME ,&
768  & kgrib=ygrg_nl(jgfl)%IGRBCODE, ldgp=.false., kreqin=ygrg_nl(jgfl)%NREQIN ,&
769  & prefvali=ygrg_nl(jgfl)%REFVALI, ldreqout=ygrg_nl(jgfl)%LREQOUT ,&
770  & lders=lader, ld5=ll5, ldt1=llt1)
771  ENDIF
772  ENDDO
773 
774 !Aerosols
775  DO jgfl=1,naero
776  IF(yaero_nl(jgfl)%LSP) THEN
777  IF(jgfl == 1) THEN
778  igflptr=ygfl%NUMFLDS+1
779  yaero=>ygflc(igflptr:igflptr+naero-1)
780  ENDIF
781  CALL define_gfl_comp(ydgflc=yaero(jgfl),cdname=yaero_nl(jgfl)%CNAME ,&
782  & kgrib=yaero_nl(jgfl)%IGRBCODE, ldgp=.false., kreqin=yaero_nl(jgfl)%NREQIN ,&
783  & prefvali=yaero_nl(jgfl)%REFVALI, ldreqout=yaero_nl(jgfl)%LREQOUT ,&
784  & lders=lader, ld5=ll5, ldt1=llt1)
785  ENDIF
786  ENDDO
787 
788 ELSE
789 
790 ! 2. CASE LFPART2=T
791 
792  WRITE(nulout,*) ' SUGFL, LFPART2, YGFL%NUMFLDS=',ygfl%NUMFLDS
793 ENDIF
794 
795 !-------------------------------------------------------------------------
796 
797 IF (lhook) CALL dr_hook('SUGFL',1,zhook_handle)
798 END SUBROUTINE sugfl
type(type_gfl_comp), pointer ycpf
Definition: yom_ygfl.F90:56
type(type_gfl_comp), dimension(:), pointer ygrg
Definition: yom_ygfl.F90:61
type(type_gfl_comp), pointer yuen
Definition: yom_ygfl.F90:76
type(type_gfl_comp), pointer ycvv
Definition: yom_ygfl.F90:69
type(fad) yfatke
Definition: yomfa.F90:49
type(type_gfl_comp), pointer yr
Definition: yom_ygfl.F90:48
integer(kind=jpim) ntrac
Definition: yom_ygfl.F90:36
subroutine, public define_gfl_comp(YDGFLC, CDNAME, KGRIB, LDGP, KREQIN, PREFVALI, LDREQOUT, LDERS, LD5, LDT1, LDGPINGP, LDTRAJIO, LDTHERMACT, PR, PRCP)
Definition: gfl_subs.F90:66
type(fad) yfacvv
Definition: yomfa.F90:56
integer(kind=jpim) naero
Definition: yom_ygfl.F90:38
integer(kind=jpim) ngfl_ext
Definition: yom_ygfl.F90:32
type(type_gfl_naml) yr_nl
Definition: yom_ygfl.F90:87
type(type_gfl_naml) yspf_nl
Definition: yom_ygfl.F90:96
subroutine sugfl
Definition: sugfl.F90:2
type(type_gfl_naml) yq_nl
Definition: yom_ygfl.F90:83
type(type_gfl_naml), dimension(jpezdiag) yezdiag_nl
Definition: yom_ygfl.F90:111
integer(kind=jpim) ngrbciwc
Definition: yomgrb.F90:579
type(type_gfl_comp), pointer yl
Definition: yom_ygfl.F90:46
type(type_gfl_naml), dimension(jpgfl-jpnamed_gfl-jpghg-jpgrg-jpforc-jpezdiag-jpaero-jptrac) yext_nl
Definition: yom_ygfl.F90:112
type(fad) yfao3
Definition: yomfa.F90:50
integer(kind=jpim) ngrb149
Definition: yomgrb.F90:484
logical lader
Definition: yomdim.F90:158
integer(kind=jpim) ngfl_forc
Definition: yom_ygfl.F90:33
subroutine abor1(CDTEXT)
Definition: abor1.F90:2
type(fad) yfaq
Definition: yomfa.F90:43
integer(kind=jpim) ngrbo3
Definition: yomgrb.F90:536
type(type_gfl_comp), pointer ys
Definition: yom_ygfl.F90:47
type(fad) yfacvgq
Definition: yomfa.F90:54
type(fad) yfas
Definition: yomfa.F90:46
Definition: yomct0.F90:1
type(fad) yfal
Definition: yomfa.F90:44
type(type_gfl_naml) yual_nl
Definition: yom_ygfl.F90:116
type(type_gfld) ygfl
Definition: yom_ygfl.F90:41
type(type_gfl_comp), pointer ysrc
Definition: yom_ygfl.F90:53
Definition: yomfa.F90:1
type(fad) yfag
Definition: yomfa.F90:48
type(type_gfl_comp), pointer yqva
Definition: yom_ygfl.F90:59
type(fad) yfaunebh
Definition: yomfa.F90:64
integer(kind=jpim) ngrg
Definition: yom_ygfl.F90:37
Definition: yomgrb.F90:1
type(type_gfl_naml) ys_nl
Definition: yom_ygfl.F90:86
integer(kind=jpim) nconf
Definition: yomct0.F90:325
type(fad) yfaual
Definition: yomfa.F90:60
type(type_gfl_comp), dimension(:), pointer yezdiag
Definition: yom_ygfl.F90:65
type(type_gfl_naml), dimension(jpgrg) ygrg_nl
Definition: yom_ygfl.F90:101
type(type_gfl_comp), pointer yq
Definition: yom_ygfl.F90:44
type(type_gfl_comp), pointer ytke
Definition: yom_ygfl.F90:50
type(fad) yfai
Definition: yomfa.F90:45
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
Definition: calcul_STDlev.h:26
type(type_gfl_naml) ysdsat_nl
Definition: yom_ygfl.F90:107
type(type_gfl_comp), dimension(:), pointer yext
Definition: yom_ygfl.F90:81
type(fad) yfaqva
Definition: yomfa.F90:69
type(type_gfl_comp), pointer ysdsat
Definition: yom_ygfl.F90:67
type(fad) yfauom
Definition: yomfa.F90:59
real(kind=jprb) rcs
Definition: yomcst.F90:58
type(type_gfl_naml) ydal_nl
Definition: yom_ygfl.F90:118
type(type_gfl_comp), pointer yspf
Definition: yom_ygfl.F90:57
type(type_gfl_comp), dimension(:), pointer yaero
Definition: yom_ygfl.F90:62
type(type_gfl_naml), dimension(jpaero) yaero_nl
Definition: yom_ygfl.F90:102
real(kind=jprb) rcw
Definition: yomcst.F90:57
integer, parameter jprb
Definition: parkind1.F90:31
type(fad) yfaspf
Definition: yomfa.F90:53
type(type_gfl_comp), pointer yual
Definition: yom_ygfl.F90:73
type(type_gfl_naml) yqva_nl
Definition: yom_ygfl.F90:98
type(type_gfl_comp), dimension(:), pointer yforc
Definition: yom_ygfl.F90:64
type(type_gfl_naml) yo3_nl
Definition: yom_ygfl.F90:91
real(kind=jprb) rcpv
Definition: yomcst.F90:42
type(type_gfl_naml) ycvgq_nl
Definition: yom_ygfl.F90:97
type(type_gfl_comp), dimension(:), pointer ytrac
Definition: yom_ygfl.F90:63
type(fad) yfar
Definition: yomfa.F90:47
type(fad) yfadal
Definition: yomfa.F90:62
type(type_gfl_naml) yl_nl
Definition: yom_ygfl.F90:85
type(type_gfl_comp), pointer yo3
Definition: yom_ygfl.F90:52
Definition: yomdim.F90:1
integer(kind=jpim), parameter jpgfl
Definition: yom_ygfl.F90:24
type(fad) yfasdsat
Definition: yomfa.F90:55
type(type_gfl_comp), pointer ya
Definition: yom_ygfl.F90:51
type(type_gfl_comp), pointer yunebh
Definition: yom_ygfl.F90:77
type(type_gfl_comp), pointer yi
Definition: yom_ygfl.F90:45
integer(kind=jpim) nghg
Definition: yom_ygfl.F90:35
Definition: yomlun.F90:1
type(type_gfl_comp), pointer ydal
Definition: yom_ygfl.F90:75
integer(kind=jpim) ngrbcc
Definition: yomgrb.F90:580
type(fad) yfacpf
Definition: yomfa.F90:52
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
type(fad) yfaclf
Definition: yomfa.F90:51
logical lhook
Definition: yomhook.F90:12
type(type_gfl_naml), dimension(jpforc) yforc_nl
Definition: yom_ygfl.F90:110
type(fad) yfauen
Definition: yomfa.F90:63
type(type_gfl_naml), dimension(jpghg) yghg_nl
Definition: yom_ygfl.F90:100
type(type_gfl_naml) yuom_nl
Definition: yom_ygfl.F90:115
integer(kind=jpim) ngrbq
Definition: yomgrb.F90:469
type(type_gfl_naml) ysrc_nl
Definition: yom_ygfl.F90:92
type(type_gfl_comp), pointer ydom
Definition: yom_ygfl.F90:74
integer(kind=jpim) ngfl_ezdiag
Definition: yom_ygfl.F90:34
type(type_gfl_naml), dimension(jptrac) ytrac_nl
Definition: yom_ygfl.F90:103
type(type_gfl_naml) ycpf_nl
Definition: yom_ygfl.F90:95
real(kind=jprb) rv
Definition: yomcst.F90:40
type(type_gfl_comp), dimension(:), pointer yghg
Definition: yom_ygfl.F90:60
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
type(type_gfl_naml) ya_nl
Definition: yom_ygfl.F90:90
type(type_gfl_naml) ydom_nl
Definition: yom_ygfl.F90:117
integer, parameter jpim
Definition: parkind1.F90:13
type(type_gfl_comp), dimension(jpgfl), target ygflc
Definition: yom_ygfl.F90:42
type(type_gfl_naml) ycvv_nl
Definition: yom_ygfl.F90:109
type(type_gfl_comp), pointer ycvgq
Definition: yom_ygfl.F90:58
type(type_gfl_naml) yi_nl
Definition: yom_ygfl.F90:84
type(type_gfl_naml) yuen_nl
Definition: yom_ygfl.F90:119
type(type_gfl_comp), pointer yuom
Definition: yom_ygfl.F90:72
type(fad) yfasrc
Definition: yomfa.F90:68
Definition: yomcst.F90:1
type(type_gfl_naml) yg_nl
Definition: yom_ygfl.F90:88
type(type_gfl_comp), pointer yg
Definition: yom_ygfl.F90:49
type(type_gfl_naml) ytke_nl
Definition: yom_ygfl.F90:89
type(fad) yfadom
Definition: yomfa.F90:61
integer(kind=jpim) ngrbclwc
Definition: yomgrb.F90:578
type(type_gfl_naml) yunebh_nl
Definition: yom_ygfl.F90:120
logical lfpart2
Definition: yomct0.F90:341