1 | MODULE TYPE_GFLS |
---|
2 | |
---|
3 | USE PARKIND1 ,ONLY : JPIM ,JPRB |
---|
4 | |
---|
5 | IMPLICIT NONE |
---|
6 | SAVE |
---|
7 | |
---|
8 | !------------------------------------------------------------------------- |
---|
9 | ! Derived types for describing the GFL structure. The descriptors themselves |
---|
10 | ! (YGFL and YGFLC) can be found in module yom_ygfl.F90. |
---|
11 | !------------------------------------------------------------------------- |
---|
12 | ! Modifications: |
---|
13 | ! 03/07/09 C. Fischer - add Arome/Aladin attributes |
---|
14 | ! 03/10/01 C. Moussy - add Arome/Aladin attributes coupling |
---|
15 | ! 03/10/31 M. Tudor - add physics tendencies for predictor-corrector |
---|
16 | ! 05/10/10 J. Haseler - switch for I/O to trajectory structure |
---|
17 | ! 2004-Nov F. Vana - update of CSLINT attribute |
---|
18 | ! 20-Feb-2005 Vivoda - 3TL Eul PC scheme (GFLPC) |
---|
19 | |
---|
20 | TYPE TYPE_GFLD |
---|
21 | ! Overall descriptor,dimensioning etc. |
---|
22 | INTEGER(KIND=JPIM) :: NUMFLDS ! Number of GFL fields |
---|
23 | INTEGER(KIND=JPIM) :: NDERS ! Number of horizontal derivatives fields |
---|
24 | INTEGER(KIND=JPIM) :: NUMSPFLDS ! Number of spectrally represented GFL fields |
---|
25 | INTEGER(KIND=JPIM) :: NUMGPFLDS ! Number of grid-point GFL fields |
---|
26 | INTEGER(KIND=JPIM) :: NUMFLDS9 ! Number of GFL fields in (t-dt) part |
---|
27 | INTEGER(KIND=JPIM) :: NUMFLDS1 ! Number of GFL fields in (t+dt) array |
---|
28 | INTEGER(KIND=JPIM) :: NUMSPFLDS1 ! Number of spectrally represented GFL fields (t+dt) |
---|
29 | INTEGER(KIND=JPIM) :: NUMFLDS5 ! Number of GFL fields (trajectory) |
---|
30 | INTEGER(KIND=JPIM) :: NUMFLDSPHY ! Number of GFL fields (phys.) |
---|
31 | INTEGER(KIND=JPIM) :: NUMFLDS_SPL ! Number of GFL fields (S.L. spline interpolation) |
---|
32 | INTEGER(KIND=JPIM) :: NUMFLDS_SL1 ! Number of GFL fields in S.L. buffer 1 |
---|
33 | INTEGER(KIND=JPIM) :: NUMFLDSPC ! Number of GFL fields (predictor/corrector) |
---|
34 | INTEGER(KIND=JPIM) :: NDIM ! Dimension of main array holding GFL fields(GFL) |
---|
35 | INTEGER(KIND=JPIM) :: NUMFLDSPT ! Number of GFL fields (phy. tend.) |
---|
36 | INTEGER(KIND=JPIM) :: NDIM0 ! Dimension of t0 part of GFL |
---|
37 | INTEGER(KIND=JPIM) :: NDIM9 ! Dimension of t-dt part of GFL |
---|
38 | INTEGER(KIND=JPIM) :: NDIM1 ! Dimension of t+dt array (GFLT1) |
---|
39 | INTEGER(KIND=JPIM) :: NDIM5 ! Dimension of traj. GFL array (GFL5) |
---|
40 | INTEGER(KIND=JPIM) :: NDIMSLP ! Diminsion of S.L. phys. GFL array (GFLSLP) |
---|
41 | INTEGER(KIND=JPIM) :: NDIM_SPL ! Dim. of arrays holding GFL fields (S.L.spline int.) |
---|
42 | INTEGER(KIND=JPIM) :: NDIMPT ! Dimension of phy. tend. GFL array (GFLPT) |
---|
43 | INTEGER(KIND=JPIM) :: NDIMPC ! Dimension of iterative scheme auxiliary array (GFLPC) |
---|
44 | |
---|
45 | END TYPE TYPE_GFLD |
---|
46 | |
---|
47 | TYPE TYPE_GFL_COMP ! Individual field descriptor |
---|
48 | |
---|
49 | CHARACTER(LEN=16) :: CNAME ! ARPEGE field name |
---|
50 | INTEGER(KIND=JPIM) :: IGRBCODE ! GRIB code |
---|
51 | LOGICAL :: LADV ! Field advected or not |
---|
52 | INTEGER(KIND=JPIM) :: NREQIN ! 1 if field requiered in input, 0 if not, -1 if initialised |
---|
53 | ! with a reference value REFVALI |
---|
54 | LOGICAL :: LREQOUT ! T if field requiered in output |
---|
55 | LOGICAL :: LGPINGP ! GP field input as GP |
---|
56 | LOGICAL :: LGP ! Field exists and of grid-point type |
---|
57 | LOGICAL :: LSP ! Field exists and of spectral type |
---|
58 | LOGICAL :: LCDERS ! Derivatives required (spectral only) |
---|
59 | LOGICAL :: LACTIVE ! Field in use |
---|
60 | LOGICAL :: LTHERMACT ! Field thermodynamically active |
---|
61 | REAL(KIND=JPRB) :: R |
---|
62 | REAL(KIND=JPRB) :: RCP |
---|
63 | LOGICAL :: LT9 ! Field in t-dt GFL |
---|
64 | LOGICAL :: LT1 ! Field in t+dt GFL |
---|
65 | LOGICAL :: LT5 ! Field in trajectory GFL |
---|
66 | LOGICAL :: LPHY ! Field in physics GFL |
---|
67 | LOGICAL :: LPT ! Field in PC phy. tend. GFL (GFLPT) |
---|
68 | LOGICAL :: LTRAJIO ! Field written to and from trajectory structure |
---|
69 | LOGICAL :: LPC ! Field in predictor/corrector time stepping (GFLPC) |
---|
70 | REAL(KIND=JPRB) :: REFVALI ! Reference value for init, used in case NREQIN==-1 |
---|
71 | ! LAM specific attributes (Arome/Aladin) |
---|
72 | LOGICAL :: LADJUST0 ! True if field is thermodynamically adjusted at t |
---|
73 | ! (immediatly after inverse spectral transforms) |
---|
74 | LOGICAL :: LADJUST1 ! True if field is thermodynamically adjusted at t+dt |
---|
75 | ! (after SL interpolations and NL residuals) |
---|
76 | INTEGER(KIND=JPIM) :: NCOUPLING ! 1 if field is coupled by Davies relaxation, 0 if not, |
---|
77 | ! -1 if coupled with reference value for coupling REFVALC |
---|
78 | REAL(KIND=JPRB) :: REFVALC ! Reference value for coupling, used in case NCOUPLING==-1 |
---|
79 | LOGICAL :: LBIPER ! True if field must be biperiodised inside the transforms |
---|
80 | ! End LAM specific attributes (Arome/Aladin) |
---|
81 | CHARACTER(LEN=12) :: CSLINT ! S.L interpolaion "type" |
---|
82 | INTEGER(KIND=JPIM) :: MP ! Basic field "pointer" |
---|
83 | INTEGER(KIND=JPIM) :: MPL ! zonal derivative "pointer" |
---|
84 | INTEGER(KIND=JPIM) :: MPM ! Meridional derivative "pointer" |
---|
85 | INTEGER(KIND=JPIM) :: MP9 ! Basic field "pointer" t-dt |
---|
86 | INTEGER(KIND=JPIM) :: MP9_PH ! Basic field "pointer" for Physics |
---|
87 | INTEGER(KIND=JPIM) :: MP1 ! Basic field "pointer" t+dt |
---|
88 | INTEGER(KIND=JPIM) :: MP5 ! Basic field "pointer" trajectory |
---|
89 | INTEGER(KIND=JPIM) :: MP5L ! zonal derivative "pointer" trajectory |
---|
90 | INTEGER(KIND=JPIM) :: MP5M ! Meridional derivative "pointer" trajectory |
---|
91 | INTEGER(KIND=JPIM) :: MPSLP ! Basic field "pointer" physics |
---|
92 | INTEGER(KIND=JPIM) :: MPSP ! Basic field "pointer" spectral space |
---|
93 | INTEGER(KIND=JPIM) :: MP_SPL ! Basic field "pointer" spline interpolation |
---|
94 | INTEGER(KIND=JPIM) :: MP_SL1 ! Basic field "pointer" in SLBUF1 |
---|
95 | INTEGER(KIND=JPIM) :: MP_SLX ! Basic field "pointer" in SLBUF1 for CPG_PT |
---|
96 | INTEGER(KIND=JPIM) :: MPPT ! Physics tendency "pointer" |
---|
97 | INTEGER(KIND=JPIM) :: MPPC ! Predictor/corrector auxiliary array "pointer" |
---|
98 | |
---|
99 | TYPE(TYPE_GFL_COMP),POINTER :: PREVIOUS ! Pointer to previously def. field |
---|
100 | |
---|
101 | END TYPE TYPE_GFL_COMP |
---|
102 | |
---|
103 | TYPE TYPE_GFL_NAML ! Individual field descriptor for namelist input |
---|
104 | |
---|
105 | CHARACTER(LEN=16) :: CNAME ! ARPEGE field name |
---|
106 | INTEGER(KIND=JPIM) :: IGRBCODE ! GRIB code |
---|
107 | INTEGER(KIND=JPIM) :: NREQIN ! 1 if field required in input, 0 if not, -1 if initialised |
---|
108 | ! with a reference value REFVALI |
---|
109 | REAL(KIND=JPRB) :: REFVALI ! Reference value for initialisation, used in case NREQIN==-1 |
---|
110 | LOGICAL :: LREQOUT ! T if field requiered in output |
---|
111 | LOGICAL :: LGPINGP ! GP field input as GP |
---|
112 | LOGICAL :: LGP ! Field exists and of grid-point type |
---|
113 | LOGICAL :: LSP ! Field exists and of spectral type |
---|
114 | LOGICAL :: LCDERS ! Derivatives required (spectral only) |
---|
115 | LOGICAL :: LT9 ! Field in t-dt GFL |
---|
116 | LOGICAL :: LT1 ! Field in t+dt GFL |
---|
117 | LOGICAL :: LT5 ! Field in trajectory GFL |
---|
118 | LOGICAL :: LPHY ! Field with physics tendencies GFL |
---|
119 | LOGICAL :: LPT ! Field in PC physics tendency GFLPT |
---|
120 | LOGICAL :: LTRAJIO ! Field written to and from trajectory structure |
---|
121 | LOGICAL :: LPC ! Field in predictor/corrector time stepping GFLPC |
---|
122 | LOGICAL :: LADV ! Field advected or not |
---|
123 | |
---|
124 | LOGICAL :: LQM ! quasi-monotonous interpolation for field |
---|
125 | LOGICAL :: LQMH ! quasi-monotonous interpolation in horizontal for field |
---|
126 | LOGICAL :: LSLHD ! Semi-lagrangian horizontal diffusion used for fiels |
---|
127 | LOGICAL :: LRSPLINE ! 12 points spline interpolation used for field |
---|
128 | LOGICAL :: LHV ! Hermite vertical interpolation used for field (only ozone sofar) |
---|
129 | LOGICAL :: LVSPLIP ! vertical spline interpolation used for field (only ozone sofar) |
---|
130 | INTEGER(KIND=JPIM) :: NCOUPLING ! 1 if field is coupled by Davies relaxation, 0 if not, |
---|
131 | ! -1 if coupled with reference value for coupling REFVALC |
---|
132 | REAL(KIND=JPRB) :: REFVALC ! Reference value for coupling, used in case |
---|
133 | ! NCOUPLING==-1 |
---|
134 | END TYPE TYPE_GFL_NAML |
---|
135 | |
---|
136 | !------------------------------------------------------------------------- |
---|
137 | END MODULE TYPE_GFLS |
---|