source: LMDZ6/branches/Ocean_skin/libf/phylmd/rrtm/type_gfls.F90 @ 3628

Last change on this file since 3628 was 1990, checked in by Laurent Fairhead, 10 years ago

Corrections à la version r1989 pour permettre la compilation avec RRTM
Inclusion de la licence CeCILL_V2 pour RRTM


Changes to revision r1989 to enable RRTM code compilation
RRTM part put under CeCILL_V2 licence

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 8.0 KB
Line 
1MODULE TYPE_GFLS
2
3USE PARKIND1  ,ONLY : JPIM ,JPRB   
4
5IMPLICIT NONE
6SAVE
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 
20TYPE TYPE_GFLD
21! Overall descriptor,dimensioning etc.
22INTEGER(KIND=JPIM) :: NUMFLDS          ! Number of GFL fields
23INTEGER(KIND=JPIM) :: NDERS            ! Number of horizontal derivatives fields
24INTEGER(KIND=JPIM) :: NUMSPFLDS        ! Number of spectrally represented GFL fields
25INTEGER(KIND=JPIM) :: NUMGPFLDS        ! Number of grid-point GFL fields
26INTEGER(KIND=JPIM) :: NUMFLDS9         ! Number of GFL fields in (t-dt) part
27INTEGER(KIND=JPIM) :: NUMFLDS1         ! Number of GFL fields in (t+dt) array
28INTEGER(KIND=JPIM) :: NUMSPFLDS1       ! Number of spectrally represented GFL fields (t+dt)
29INTEGER(KIND=JPIM) :: NUMFLDS5         ! Number of GFL fields (trajectory)
30INTEGER(KIND=JPIM) :: NUMFLDSPHY       ! Number of GFL fields (phys.)
31INTEGER(KIND=JPIM) :: NUMFLDS_SPL      ! Number of GFL fields (S.L. spline interpolation)
32INTEGER(KIND=JPIM) :: NUMFLDS_SL1      ! Number of GFL fields in S.L. buffer 1
33INTEGER(KIND=JPIM) :: NUMFLDSPC        ! Number of GFL fields (predictor/corrector)
34INTEGER(KIND=JPIM) :: NDIM             ! Dimension of main array holding GFL fields(GFL)
35INTEGER(KIND=JPIM) :: NUMFLDSPT        ! Number of GFL fields (phy. tend.)
36INTEGER(KIND=JPIM) :: NDIM0            ! Dimension of t0 part of GFL
37INTEGER(KIND=JPIM) :: NDIM9            ! Dimension of t-dt part of GFL
38INTEGER(KIND=JPIM) :: NDIM1            ! Dimension of t+dt array (GFLT1)
39INTEGER(KIND=JPIM) :: NDIM5            ! Dimension of traj. GFL array (GFL5)
40INTEGER(KIND=JPIM) :: NDIMSLP          ! Diminsion of S.L. phys. GFL array (GFLSLP)
41INTEGER(KIND=JPIM) :: NDIM_SPL         ! Dim. of arrays holding GFL fields (S.L.spline int.)
42INTEGER(KIND=JPIM) :: NDIMPT           ! Dimension of phy. tend. GFL array (GFLPT)
43INTEGER(KIND=JPIM) :: NDIMPC           ! Dimension of iterative scheme auxiliary array (GFLPC)
44
45END TYPE TYPE_GFLD
46
47TYPE TYPE_GFL_COMP ! Individual field descriptor
48
49CHARACTER(LEN=16) :: CNAME      ! ARPEGE field name
50INTEGER(KIND=JPIM) :: IGRBCODE           ! GRIB code
51LOGICAL :: LADV                 ! Field advected or not
52INTEGER(KIND=JPIM) :: NREQIN    ! 1 if field requiered in input, 0 if not, -1 if initialised
53                                ! with a reference value REFVALI
54LOGICAL :: LREQOUT              ! T if field requiered in output
55LOGICAL :: LGPINGP              ! GP field input as GP
56LOGICAL :: LGP                  ! Field exists and of grid-point type
57LOGICAL :: LSP                  ! Field exists and of spectral type
58LOGICAL :: LCDERS               ! Derivatives required (spectral only)
59LOGICAL :: LACTIVE              ! Field in use
60LOGICAL :: LTHERMACT            ! Field thermodynamically active
61REAL(KIND=JPRB) :: R
62REAL(KIND=JPRB) :: RCP
63LOGICAL :: LT9                  ! Field in t-dt GFL
64LOGICAL :: LT1                  ! Field in t+dt GFL
65LOGICAL :: LT5                  ! Field in trajectory GFL
66LOGICAL :: LPHY                 ! Field in physics GFL
67LOGICAL :: LPT                  ! Field in PC phy. tend. GFL (GFLPT)
68LOGICAL :: LTRAJIO              ! Field written to and from trajectory structure
69LOGICAL :: LPC                  ! Field in predictor/corrector time stepping (GFLPC)
70REAL(KIND=JPRB) :: REFVALI      ! Reference value for init, used in case NREQIN==-1
71! LAM specific attributes (Arome/Aladin)
72LOGICAL :: LADJUST0             ! True if field is thermodynamically adjusted at t
73                                  ! (immediatly after inverse spectral transforms)
74LOGICAL :: LADJUST1             ! True if field is thermodynamically adjusted at t+dt
75                                  ! (after SL interpolations and NL residuals)
76INTEGER(KIND=JPIM) :: NCOUPLING ! 1 if field is coupled by Davies relaxation, 0 if not,
77                                  ! -1 if coupled with reference value for coupling REFVALC
78REAL(KIND=JPRB) :: REFVALC      ! Reference value for coupling, used in case NCOUPLING==-1
79LOGICAL :: LBIPER               ! True if field must be biperiodised inside the transforms
80! End LAM specific attributes (Arome/Aladin)
81CHARACTER(LEN=12) :: CSLINT     ! S.L interpolaion "type"
82INTEGER(KIND=JPIM) :: MP        ! Basic field "pointer"
83INTEGER(KIND=JPIM) :: MPL       ! zonal derivative "pointer"
84INTEGER(KIND=JPIM) :: MPM       ! Meridional derivative "pointer"
85INTEGER(KIND=JPIM) :: MP9       ! Basic field "pointer" t-dt
86INTEGER(KIND=JPIM) :: MP9_PH    ! Basic field "pointer" for Physics
87INTEGER(KIND=JPIM) :: MP1       ! Basic field "pointer" t+dt
88INTEGER(KIND=JPIM) :: MP5       ! Basic field "pointer" trajectory
89INTEGER(KIND=JPIM) :: MP5L      ! zonal derivative "pointer" trajectory
90INTEGER(KIND=JPIM) :: MP5M      ! Meridional derivative "pointer" trajectory
91INTEGER(KIND=JPIM) :: MPSLP     ! Basic field "pointer" physics
92INTEGER(KIND=JPIM) :: MPSP      ! Basic field "pointer" spectral space
93INTEGER(KIND=JPIM) :: MP_SPL    ! Basic field "pointer" spline interpolation
94INTEGER(KIND=JPIM) :: MP_SL1    ! Basic field "pointer" in SLBUF1
95INTEGER(KIND=JPIM) :: MP_SLX    ! Basic field "pointer" in SLBUF1 for CPG_PT
96INTEGER(KIND=JPIM) :: MPPT      ! Physics tendency "pointer"
97INTEGER(KIND=JPIM) :: MPPC      ! Predictor/corrector auxiliary array "pointer"
98
99TYPE(TYPE_GFL_COMP),POINTER :: PREVIOUS ! Pointer to previously def. field
100
101END TYPE TYPE_GFL_COMP
102
103TYPE TYPE_GFL_NAML ! Individual field descriptor for namelist input
104
105CHARACTER(LEN=16) :: CNAME      ! ARPEGE field name
106INTEGER(KIND=JPIM) :: IGRBCODE  ! GRIB code
107INTEGER(KIND=JPIM) :: NREQIN    ! 1 if field required in input, 0 if not, -1 if initialised
108                                ! with a reference value REFVALI
109REAL(KIND=JPRB) :: REFVALI      ! Reference value for initialisation, used in case NREQIN==-1
110LOGICAL :: LREQOUT              ! T if field requiered in output
111LOGICAL :: LGPINGP              ! GP field input as GP
112LOGICAL :: LGP                  ! Field exists and of grid-point type
113LOGICAL :: LSP                  ! Field exists and of spectral type
114LOGICAL :: LCDERS               ! Derivatives required (spectral only)
115LOGICAL :: LT9                  ! Field in t-dt GFL
116LOGICAL :: LT1                  ! Field in t+dt GFL
117LOGICAL :: LT5                  ! Field in trajectory GFL
118LOGICAL :: LPHY                 ! Field with physics tendencies GFL
119LOGICAL :: LPT                  ! Field in PC physics tendency GFLPT
120LOGICAL :: LTRAJIO              ! Field written to and from trajectory structure
121LOGICAL :: LPC                  ! Field in predictor/corrector time stepping GFLPC
122LOGICAL :: LADV                 ! Field advected or not
123
124LOGICAL :: LQM                  ! quasi-monotonous interpolation for field
125LOGICAL :: LQMH                 ! quasi-monotonous interpolation in horizontal for field
126LOGICAL :: LSLHD                ! Semi-lagrangian horizontal diffusion used for fiels
127LOGICAL :: LRSPLINE             ! 12 points spline interpolation used for field
128LOGICAL :: LHV                  ! Hermite vertical interpolation used for field (only ozone sofar)
129LOGICAL :: LVSPLIP              ! vertical spline interpolation used for field (only ozone sofar)
130INTEGER(KIND=JPIM) :: NCOUPLING ! 1 if field is coupled by Davies relaxation, 0 if not,
131                                ! -1 if coupled with reference value for coupling REFVALC
132REAL(KIND=JPRB) :: REFVALC      ! Reference value for coupling, used in case
133                                  ! NCOUPLING==-1
134END TYPE TYPE_GFL_NAML
135
136!-------------------------------------------------------------------------
137END MODULE TYPE_GFLS
Note: See TracBrowser for help on using the repository browser.