7 USE yom_ygfl , ONLY :
ygfl,
ygflc,
yl,
yi,
ya,
ys,
yr,
yg,
ytke,&
11 &
ycpf ,
yspf ,
ycpf_nl,
yspf_nl,
yaero,
yaero_nl,
naero,
ygrg,
ygrg_nl,
ngrg,&
89 INTEGER(KIND=JPIM) :: JGFL,IGFLPTR,INCR
90 LOGICAL :: LLDERS,LLT1,LL5
91 REAL(KIND=JPRB) :: ZHOOK_HANDLE
95 #include "abor1.intfb.h"
198 igflptr=
ygfl%NUMFLDS+1
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, &
207 igflptr=
ygfl%NUMFLDS+1
211 & prefvali=
yl_nl%REFVALI,ldreqout=
yl_nl%LREQOUT,lders=llders,ld5=ll5, &
212 & ldt1=llt1,ldthermact=.
true.,pr=0.0_jprb,prcp=
rcw)
215 igflptr=
ygfl%NUMFLDS+1
219 & prefvali=
yi_nl%REFVALI,ldreqout=
yi_nl%LREQOUT,lders=llders,ld5=ll5, &
220 & ldt1=llt1,ldthermact=.
true.,pr=0.0_jprb,prcp=
rcs)
223 igflptr=
ygfl%NUMFLDS+1
227 & prefvali=
ys_nl%REFVALI,ldreqout=
ys_nl%LREQOUT,lders=llders,ld5=ll5, &
228 & ldt1=llt1,ldthermact=.
true.,pr=0.0_jprb,prcp=
rcs)
231 igflptr=
ygfl%NUMFLDS+1
235 & prefvali=
yr_nl%REFVALI,ldreqout=
yr_nl%LREQOUT,lders=llders,ld5=ll5, &
236 & ldt1=llt1,ldthermact=.
true.,pr=0.0_jprb,prcp=
rcw)
239 igflptr=
ygfl%NUMFLDS+1
243 & prefvali=
yg_nl%REFVALI,ldreqout=
yg_nl%LREQOUT,lders=llders,ld5=ll5, &
244 & ldt1=llt1,ldthermact=.
true.,pr=0.0_jprb,prcp=
rcs)
247 igflptr=
ygfl%NUMFLDS+1
251 & prefvali=
ytke_nl%REFVALI,ldreqout=
ytke_nl%LREQOUT,lders=llders,ld5=ll5,&
255 igflptr=
ygfl%NUMFLDS+1
259 & prefvali=
ya_nl%REFVALI,ldreqout=
ya_nl%LREQOUT,lders=llders,ld5=ll5,&
263 igflptr=
ygfl%NUMFLDS+1
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)
272 igflptr=
ygfl%NUMFLDS+1
278 & ldt1=llt1,ldgpingp=.
true.)
281 igflptr=
ygfl%NUMFLDS+1
287 & ldt1=llt1,ldgpingp=.
true.)
290 igflptr=
ygfl%NUMFLDS+1
294 & prefvali=
ysrc_nl%REFVALI,ldreqout=
ysrc_nl%LREQOUT,lders=llders,&
298 igflptr=
ygfl%NUMFLDS+1
306 igflptr=
ygfl%NUMFLDS+1
314 igflptr=
ygfl%NUMFLDS+1
318 & prefvali=
ycvv_nl%REFVALI, ldreqout=
ycvv_nl%LREQOUT,lders=llders,&
322 igflptr=
ygfl%NUMFLDS+1
328 & ldt1=llt1,ldgpingp=.
true.)
331 igflptr=
ygfl%NUMFLDS+1
337 & lders=.
false.,ld5=ll5,ldt1=llt1,ldgpingp=.
true.)
340 igflptr=
ygfl%NUMFLDS+1
346 & lders=.
false.,ld5=ll5,ldt1=llt1,ldgpingp=.
true.)
349 igflptr=
ygfl%NUMFLDS+1
355 & lders=.
false.,ld5=ll5,ldt1=llt1,ldgpingp=.
true.)
358 igflptr=
ygfl%NUMFLDS+1
364 & lders=.
false.,ld5=ll5,ldt1=llt1,ldgpingp=.
true.)
367 igflptr=
ygfl%NUMFLDS+1
373 & lders=.
false.,ld5=ll5,ldt1=llt1,ldgpingp=.
true.)
376 igflptr=
ygfl%NUMFLDS+1
382 & lders=.
false.,ld5=ll5,ldt1=llt1,ldgpingp=.
true.)
394 & (
'SUGFL:EXTRA GFL FIELDS HAVE TO BE ALL EITHER SPECTRAL OR GRIDPOINT')
402 igflptr=
ygfl%NUMFLDS+1
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)
417 igflptr=
ygfl%NUMFLDS+1
423 & lders=llders, ld5=ll5, ldt1=llt1,ldgpingp=
yforc_nl(jgfl)%LGPINGP, &
432 igflptr=
ygfl%NUMFLDS+1
438 & lders=llders, ld5=ll5, ldt1=llt1,ldgpingp=
yezdiag_nl(jgfl)%LGPINGP, &
447 igflptr=
ygfl%NUMFLDS+1
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)
462 igflptr=
ygfl%NUMFLDS+1
468 & lders=llders, ld5=ll5, ldt1=llt1,ldgpingp=
ytrac_nl(jgfl)%LGPINGP, &
477 igflptr=
ygfl%NUMFLDS+1
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)
492 igflptr=
ygfl%NUMFLDS+1
498 & lders=llders, ld5=ll5, ldt1=llt1,ldgpingp=
yaero_nl(jgfl)%LGPINGP, &
506 igflptr=
ygfl%NUMFLDS+1
510 & prefvali=
yq_nl%REFVALI, ldreqout=
yq_nl%LREQOUT, lders=
lader,ld5=ll5, &
511 & ldt1=llt1,ldthermact=.
true.,pr=
rv,prcp=
rcpv)
514 igflptr=
ygfl%NUMFLDS+1
518 & prefvali=
yl_nl%REFVALI, ldreqout=
yl_nl%LREQOUT, lders=
lader,ld5=ll5, &
519 & ldt1=llt1,ldthermact=.
true.,pr=0.0_jprb,prcp=
rcw)
522 igflptr=
ygfl%NUMFLDS+1
526 & prefvali=
yi_nl%REFVALI, ldreqout=
yi_nl%LREQOUT, lders=
lader,ld5=ll5, &
527 & ldt1=llt1,ldthermact=.
true.,pr=0.0_jprb,prcp=
rcs)
530 CALL abor1(
'SUGFL: spectral snow not coded ')
533 CALL abor1(
'SUGFL: spectral rain not coded ')
536 CALL abor1(
'SUGFL: spectral graupels not coded ')
539 CALL abor1(
'SUGFL: spectral TKE not coded ')
542 igflptr=
ygfl%NUMFLDS+1
546 & prefvali=
ya_nl%REFVALI, ldreqout=
ya_nl%LREQOUT, lders=
lader,ld5=ll5,&
550 igflptr=
ygfl%NUMFLDS+1
558 igflptr=
ygfl%NUMFLDS+1
567 igflptr=
ygfl%NUMFLDS+1
576 CALL abor1(
'SUGFL: spectral SRC not coded ')
579 igflptr=
ygfl%NUMFLDS+1
588 CALL abor1(
'SUGFL: spectral SDSAT not coded ')
591 CALL abor1(
'SUGFL: spectral CVV not coded ')
594 igflptr=
ygfl%NUMFLDS+1
603 CALL abor1(
'SUGFL: spectral UOM not coded ')
606 igflptr=
ygfl%NUMFLDS+1
616 CALL abor1(
'SUGFL: spectral UAL not coded ')
619 igflptr=
ygfl%NUMFLDS+1
629 CALL abor1(
'SUGFL: spectral DOM not coded ')
632 igflptr=
ygfl%NUMFLDS+1
642 CALL abor1(
'SUGFL: spectral DAL not coded ')
645 igflptr=
ygfl%NUMFLDS+1
655 CALL abor1(
'SUGFL: spectral UEN not coded ')
658 igflptr=
ygfl%NUMFLDS+1
668 CALL abor1(
'SUGFL: spectral UNEBH not coded ')
671 igflptr=
ygfl%NUMFLDS+1
685 igflptr=
ygfl%NUMFLDS+1
690 & prefvali=
yext_nl(jgfl)%REFVALI, ldreqout=
yext_nl(jgfl)%LREQOUT ,&
691 & lders=
lader, ld5=ll5, ldt1=llt1)
698 CALL abor1(
'SUGFL: FORCINGS HAVE TO BE GRIDPOINT FIELDS')
702 igflptr=
ygfl%NUMFLDS+1
716 CALL abor1(
'SUGFL: EZDIAG HAVE TO BE GRIDPOINT FIELDS')
720 igflptr=
ygfl%NUMFLDS+1
736 igflptr=
ygfl%NUMFLDS+1
741 & prefvali=
yghg_nl(jgfl)%REFVALI, ldreqout=
yghg_nl(jgfl)%LREQOUT ,&
742 & lders=
lader, ld5=ll5, ldt1=llt1)
750 igflptr=
ygfl%NUMFLDS+1
756 & lders=
lader, ld5=ll5, ldt1=llt1)
764 igflptr=
ygfl%NUMFLDS+1
769 & prefvali=
ygrg_nl(jgfl)%REFVALI, ldreqout=
ygrg_nl(jgfl)%LREQOUT ,&
770 & lders=
lader, ld5=ll5, ldt1=llt1)
778 igflptr=
ygfl%NUMFLDS+1
784 & lders=
lader, ld5=ll5, ldt1=llt1)
792 WRITE(nulout,*)
' SUGFL, LFPART2, YGFL%NUMFLDS=',
ygfl%NUMFLDS
type(type_gfl_comp), pointer ycpf
type(type_gfl_comp), dimension(:), pointer ygrg
type(type_gfl_comp), pointer yuen
type(type_gfl_comp), pointer ycvv
type(type_gfl_comp), pointer yr
subroutine, public define_gfl_comp(YDGFLC, CDNAME, KGRIB, LDGP, KREQIN, PREFVALI, LDREQOUT, LDERS, LD5, LDT1, LDGPINGP, LDTRAJIO, LDTHERMACT, PR, PRCP)
integer(kind=jpim) ngfl_ext
type(type_gfl_naml) yr_nl
type(type_gfl_naml) yspf_nl
type(type_gfl_naml) yq_nl
type(type_gfl_naml), dimension(jpezdiag) yezdiag_nl
integer(kind=jpim) ngrbciwc
type(type_gfl_comp), pointer yl
type(type_gfl_naml), dimension(jpgfl-jpnamed_gfl-jpghg-jpgrg-jpforc-jpezdiag-jpaero-jptrac) yext_nl
integer(kind=jpim) ngrb149
integer(kind=jpim) ngfl_forc
integer(kind=jpim) ngrbo3
type(type_gfl_comp), pointer ys
type(type_gfl_naml) yual_nl
type(type_gfl_comp), pointer ysrc
type(type_gfl_comp), pointer yqva
type(type_gfl_naml) ys_nl
type(type_gfl_comp), dimension(:), pointer yezdiag
type(type_gfl_naml), dimension(jpgrg) ygrg_nl
type(type_gfl_comp), pointer yq
type(type_gfl_comp), pointer ytke
!$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
type(type_gfl_naml) ysdsat_nl
type(type_gfl_comp), dimension(:), pointer yext
type(type_gfl_comp), pointer ysdsat
type(type_gfl_naml) ydal_nl
type(type_gfl_comp), pointer yspf
type(type_gfl_comp), dimension(:), pointer yaero
type(type_gfl_naml), dimension(jpaero) yaero_nl
type(type_gfl_comp), pointer yual
type(type_gfl_naml) yqva_nl
type(type_gfl_comp), dimension(:), pointer yforc
type(type_gfl_naml) yo3_nl
type(type_gfl_naml) ycvgq_nl
type(type_gfl_comp), dimension(:), pointer ytrac
type(type_gfl_naml) yl_nl
type(type_gfl_comp), pointer yo3
integer(kind=jpim), parameter jpgfl
type(type_gfl_comp), pointer ya
type(type_gfl_comp), pointer yunebh
type(type_gfl_comp), pointer yi
type(type_gfl_comp), pointer ydal
integer(kind=jpim) ngrbcc
!$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(type_gfl_naml), dimension(jpforc) yforc_nl
type(type_gfl_naml), dimension(jpghg) yghg_nl
type(type_gfl_naml) yuom_nl
type(type_gfl_naml) ysrc_nl
type(type_gfl_comp), pointer ydom
integer(kind=jpim) ngfl_ezdiag
type(type_gfl_naml), dimension(jptrac) ytrac_nl
type(type_gfl_naml) ycpf_nl
type(type_gfl_comp), dimension(:), pointer yghg
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
type(type_gfl_naml) ya_nl
type(type_gfl_naml) ydom_nl
type(type_gfl_comp), dimension(jpgfl), target ygflc
type(type_gfl_naml) ycvv_nl
type(type_gfl_comp), pointer ycvgq
type(type_gfl_naml) yi_nl
type(type_gfl_naml) yuen_nl
type(type_gfl_comp), pointer yuom
type(type_gfl_naml) yg_nl
type(type_gfl_comp), pointer yg
type(type_gfl_naml) ytke_nl
integer(kind=jpim) ngrbclwc
type(type_gfl_naml) yunebh_nl