LMDZ
yom_ygfl.F90
Go to the documentation of this file.
1 MODULE yom_ygfl
2 
3 USE parkind1 ,ONLY : jpim ,jprb
4 
6 
7 IMPLICIT NONE
8 SAVE
9 
10 !-------------------------------------------------------------------------
11 ! Contains the descriptors of GFL arrays
12 
13 ! YGFL : GFL general descriptor, for info about content see comments
14 ! in type declaration module : type_gfls.F90
15 
16 ! JPGFL : Max number of GFL fields
17 ! JPNAMED_GFL : Number of currently pre-defined components of GFL
18 ! JPGHG : Number of greenhouse gas fields
19 ! JPGRG : Number of reactive gas fields
20 ! JPAERO : Number of aerosol fields
21 ! JPTRAC : Number of tracers for diagnostics
22 !-------------------------------------------------------------------------
23 
24 INTEGER(KIND=JPIM),PARAMETER :: jpgfl=211
25 INTEGER(KIND=JPIM),PARAMETER :: jpnamed_gfl=22
26 INTEGER(KIND=JPIM),PARAMETER :: jpghg=3
27 INTEGER(KIND=JPIM),PARAMETER :: jptrac=2
28 INTEGER(KIND=JPIM),PARAMETER :: jpgrg=5
29 INTEGER(KIND=JPIM),PARAMETER :: jpaero=7
30 INTEGER(KIND=JPIM),PARAMETER :: jpforc=25
31 INTEGER(KIND=JPIM),PARAMETER :: jpezdiag=25
32 INTEGER(KIND=JPIM) :: ngfl_ext
33 INTEGER(KIND=JPIM) :: ngfl_forc
34 INTEGER(KIND=JPIM) :: ngfl_ezdiag
35 INTEGER(KIND=JPIM) :: nghg
36 INTEGER(KIND=JPIM) :: ntrac
37 INTEGER(KIND=JPIM) :: ngrg
38 INTEGER(KIND=JPIM) :: naero
39 INTEGER(KIND=JPIM) :: nactaero
40 LOGICAL :: lghgsfc, laerosfc , lsf6sfc
41 TYPE(type_gfld) :: ygfl
42 TYPE(type_gfl_comp),TARGET :: ygflc(jpgfl) ! General descriptor of all components
43 
44 TYPE(type_gfl_comp),POINTER :: yq ! Specific humidity
45 TYPE(type_gfl_comp),POINTER :: yi ! Ice water
46 TYPE(type_gfl_comp),POINTER :: yl ! Liquid water
47 TYPE(type_gfl_comp),POINTER :: ys ! Snow
48 TYPE(type_gfl_comp),POINTER :: yr ! Rain
49 TYPE(type_gfl_comp),POINTER :: yg ! Graupels
50 TYPE(type_gfl_comp),POINTER :: ytke ! Turbulent Kinetic Energy
51 TYPE(type_gfl_comp),POINTER :: ya ! Cloud fraction
52 TYPE(type_gfl_comp),POINTER :: yo3 ! Ozone
53 TYPE(type_gfl_comp),POINTER :: ysrc ! Second-order flux for AROME
54  ! s'rc'/2Sigma_s2
55  ! multiplied by Lambda_3
56 TYPE(type_gfl_comp),POINTER :: ycpf ! Convective precipitation flux
57 TYPE(type_gfl_comp),POINTER :: yspf ! Stratiform precipitation flux
58 TYPE(type_gfl_comp),POINTER :: ycvgq ! Moisture Convergence for french physics
59 TYPE(type_gfl_comp),POINTER :: yqva ! total humidity variation
60 TYPE(type_gfl_comp),POINTER :: yghg(:) ! Greenhouse Gases
61 TYPE(type_gfl_comp),POINTER :: ygrg(:) ! Reactive Gases
62 TYPE(type_gfl_comp),POINTER :: yaero(:) ! Aerosols
63 TYPE(type_gfl_comp),POINTER :: ytrac(:) ! tracers for diagnostics
64 TYPE(type_gfl_comp),POINTER :: yforc(:) ! large scale forcing
65 TYPE(type_gfl_comp),POINTER :: yezdiag(:) ! easy diagnostics
66 
67 TYPE(type_gfl_comp),POINTER :: ysdsat ! Standard Deviation of the
68  ! SATuration Depression (Sigma_s)
69 TYPE(type_gfl_comp),POINTER :: ycvv ! Convective Vertical Velocity
70 
71 ! Prognostic convection variables: add 6 named components
72 TYPE(type_gfl_comp),POINTER :: yuom ! Updraught vert velocity
73 TYPE(type_gfl_comp),POINTER :: yual ! Updraught mesh fraction
74 TYPE(type_gfl_comp),POINTER :: ydom ! Downdraught vert velocity
75 TYPE(type_gfl_comp),POINTER :: ydal ! Downdraught mesh fraction
76 TYPE(type_gfl_comp),POINTER :: yuen ! Updraught entrainment
77 TYPE(type_gfl_comp),POINTER :: yunebh ! pseudo-historic convective
78 
79 ! Extra fields
80 
81 TYPE(type_gfl_comp),POINTER :: yext(:) ! Extra fields
82 
83 TYPE(type_gfl_naml) :: yq_nl ! Specific humidity
84 TYPE(type_gfl_naml) :: yi_nl ! Ice water
85 TYPE(type_gfl_naml) :: yl_nl ! Liquid water
86 TYPE(type_gfl_naml) :: ys_nl ! Snow
87 TYPE(type_gfl_naml) :: yr_nl ! Rain
88 TYPE(type_gfl_naml) :: yg_nl ! Graupels
89 TYPE(type_gfl_naml) :: ytke_nl ! Turbulent Kinetic Energy
90 TYPE(type_gfl_naml) :: ya_nl ! Cloud fraction
91 TYPE(type_gfl_naml) :: yo3_nl ! Ozone
92 TYPE(type_gfl_naml) :: ysrc_nl ! Second-order flux for AROME
93  ! s'rc'/2Sigma_s2
94  ! multiplied by Lambda_3
95 TYPE(type_gfl_naml) :: ycpf_nl ! Convective precipitation flux
96 TYPE(type_gfl_naml) :: yspf_nl ! Stratiform precipitation flux
97 TYPE(type_gfl_naml) :: ycvgq_nl ! Moisture Convergence for french physics
98 TYPE(type_gfl_naml) :: yqva_nl ! Total humidity variation
99 
100 TYPE(type_gfl_naml) :: yghg_nl(jpghg) ! Greenhouse Gases
101 TYPE(type_gfl_naml) :: ygrg_nl(jpgrg) ! Reactive Gases
102 TYPE(type_gfl_naml) :: yaero_nl(jpaero) ! Aerosol fields
103 TYPE(type_gfl_naml) :: ytrac_nl(jptrac) ! Tracers for diagnostics
104 
105 ! Extra fields
106 
107 TYPE(type_gfl_naml) :: ysdsat_nl ! Standard Deviation of the
108  ! SATuration Depression (Sigma_s)
109 TYPE(type_gfl_naml) :: ycvv_nl ! Convective Vertical Velocity
110 TYPE(type_gfl_naml) :: yforc_nl(jpforc) ! Forcing precursor
111 TYPE(type_gfl_naml) :: yezdiag_nl(jpezdiag) ! Easy diagnostics
113 
114 ! Prognostic convection variables: 6 more namelist components
115 TYPE(type_gfl_naml) :: yuom_nl ! Updraught vert velocity
116 TYPE(type_gfl_naml) :: yual_nl ! Updraught mesh fraction
117 TYPE(type_gfl_naml) :: ydom_nl ! Downdraught vert velocity
118 TYPE(type_gfl_naml) :: ydal_nl ! Downdraught mesh fraction
119 TYPE(type_gfl_naml) :: yuen_nl ! Updraught entrainment
120 TYPE(type_gfl_naml) :: yunebh_nl ! Pseudi Hist Conv cloud fraction
121 
122 !------------------------------------------------------------------
123 !$OMP THREADPRIVATE(laerosfc,lghgsfc,lsf6sfc,nactaero,naero,ngfl_ext,ngfl_ezdiag,ngfl_forc,nghg,ngrg)
124 !$OMP THREADPRIVATE(ntrac,ya,ya_nl,yaero,yaero_nl,ycpf,ycpf_nl,ycvgq,ycvgq_nl,ycvv,ycvv_nl,ydal,ydal_nl)
125 !$OMP THREADPRIVATE(ydom,ydom_nl,yext,yext_nl,yezdiag,yezdiag_nl,yforc,yforc_nl,yg,yg_nl,ygfl,ygflc,yghg)
126 !$OMP THREADPRIVATE(yghg_nl,ygrg,ygrg_nl,yi,yi_nl,yl,yl_nl,yo3,yo3_nl,yq,yq_nl,yqva,yqva_nl,yr,yr_nl,ys)
127 !$OMP THREADPRIVATE(ys_nl,ysdsat,ysdsat_nl,yspf,yspf_nl,ysrc,ysrc_nl,ytke,ytke_nl,ytrac,ytrac_nl,yual)
128 !$OMP THREADPRIVATE(yual_nl,yuen,yuen_nl,yunebh,yunebh_nl,yuom,yuom_nl)
129 END MODULE yom_ygfl
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(type_gfl_comp), pointer yr
Definition: yom_ygfl.F90:48
integer(kind=jpim) ntrac
Definition: yom_ygfl.F90:36
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
type(type_gfl_naml) yq_nl
Definition: yom_ygfl.F90:83
type(type_gfl_naml), dimension(jpezdiag) yezdiag_nl
Definition: yom_ygfl.F90:111
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
integer(kind=jpim) ngfl_forc
Definition: yom_ygfl.F90:33
type(type_gfl_comp), pointer ys
Definition: yom_ygfl.F90:47
type(type_gfl_naml) yual_nl
Definition: yom_ygfl.F90:116
type(type_gfld) ygfl
Definition: yom_ygfl.F90:41
integer(kind=jpim), parameter jpnamed_gfl
Definition: yom_ygfl.F90:25
type(type_gfl_comp), pointer ysrc
Definition: yom_ygfl.F90:53
type(type_gfl_comp), pointer yqva
Definition: yom_ygfl.F90:59
integer(kind=jpim) ngrg
Definition: yom_ygfl.F90:37
type(type_gfl_naml) ys_nl
Definition: yom_ygfl.F90:86
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(type_gfl_naml) ysdsat_nl
Definition: yom_ygfl.F90:107
type(type_gfl_comp), dimension(:), pointer yext
Definition: yom_ygfl.F90:81
type(type_gfl_comp), pointer ysdsat
Definition: yom_ygfl.F90:67
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
integer(kind=jpim), parameter jpezdiag
Definition: yom_ygfl.F90:31
type(type_gfl_naml), dimension(jpaero) yaero_nl
Definition: yom_ygfl.F90:102
integer, parameter jprb
Definition: parkind1.F90:31
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
type(type_gfl_naml) ycvgq_nl
Definition: yom_ygfl.F90:97
type(type_gfl_comp), dimension(:), pointer ytrac
Definition: yom_ygfl.F90:63
type(type_gfl_naml) yl_nl
Definition: yom_ygfl.F90:85
type(type_gfl_comp), pointer yo3
Definition: yom_ygfl.F90:52
integer(kind=jpim), parameter jpgfl
Definition: yom_ygfl.F90:24
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
type(type_gfl_comp), pointer ydal
Definition: yom_ygfl.F90:75
integer(kind=jpim) nactaero
Definition: yom_ygfl.F90:39
type(type_gfl_naml), dimension(jpforc) yforc_nl
Definition: yom_ygfl.F90:110
logical laerosfc
Definition: yom_ygfl.F90:40
type(type_gfl_naml), dimension(jpghg) yghg_nl
Definition: yom_ygfl.F90:100
type(type_gfl_naml) yuom_nl
Definition: yom_ygfl.F90:115
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
type(type_gfl_comp), dimension(:), pointer yghg
Definition: yom_ygfl.F90:60
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
integer(kind=jpim), parameter jpforc
Definition: yom_ygfl.F90:30
integer(kind=jpim), parameter jpaero
Definition: yom_ygfl.F90:29
type(type_gfl_naml) yuen_nl
Definition: yom_ygfl.F90:119
type(type_gfl_comp), pointer yuom
Definition: yom_ygfl.F90:72
integer(kind=jpim), parameter jpgrg
Definition: yom_ygfl.F90:28
logical lsf6sfc
Definition: yom_ygfl.F90:40
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
integer(kind=jpim), parameter jptrac
Definition: yom_ygfl.F90:27
integer(kind=jpim), parameter jpghg
Definition: yom_ygfl.F90:26
logical lghgsfc
Definition: yom_ygfl.F90:40
type(type_gfl_naml) yunebh_nl
Definition: yom_ygfl.F90:120