LMDZ
yommddh.F90
Go to the documentation of this file.
1 MODULE yommddh
2 
3 USE parkind1 ,ONLY : jpim ,jprb
4 
5 IMPLICIT NONE
6 
7 SAVE
8 
9 ! ------------------------------------------------------------------
10 ! DIAGNOSTIQUES DOMAINES HORIZONTAUX
11 ! ----------------------------------
12 
13 ! DIMENSIONS DES DIAGNOSTIQUES DDH
14 ! ---------------------------------
15 ! === basic dimensions for reading NAMDDH ===
16 INTEGER(KIND=JPIM), PARAMETER :: jpdhnox=200
17 INTEGER(KIND=JPIM), PARAMETER :: jpdhxpu=5
18 
19 ! JPDHNOX: Maximum number of user area
20 ! JPDHXPU: Maximum number of user or mask memory plans
21 
22 INTEGER(KIND=JPIM) :: ndhkd
23 INTEGER(KIND=JPIM) :: ndhnpu
24 INTEGER(KIND=JPIM) :: ndhbpu(jpdhxpu)
25 INTEGER(KIND=JPIM) :: ndhbpx
26 INTEGER(KIND=JPIM) :: ndhnom
27 INTEGER(KIND=JPIM) :: ndhddx
28 INTEGER(KIND=JPIM) :: ndhidh
29 INTEGER(KIND=JPIM) :: ndhcs
30 INTEGER(KIND=JPIM) :: ndhcv
31 INTEGER(KIND=JPIM) :: ndhcvsu
32 INTEGER(KIND=JPIM) :: ndhcssu
33 INTEGER(KIND=JPIM) :: ndhcvsun
34 INTEGER(KIND=JPIM) :: ndhcvsul
35 ! NDHKD : NOMBRE DE BANDES DE LATITUDES
36 ! NDHNPU : NOMBRE DE MASQUES UTILISES NDHNPU .LE. JPDHXPU
37 ! NDHBPU(JPDHXPU) : NOMBRE DE DOMAINES CONTENU DANS CHAQUE MASQUE
38 ! NDHBPX : NOMBRE DE DOMAINE MAXIMAL PAR MASQUE
39 ! NDHBPX = MAX( NDHBPU )
40 ! NDHNOM : NOMBRE TOTALE DE DOMAINES LIMITES EN NOMENCLATURE
41 ! NDHNOM .LE. JPDHNOX
42 ! NDHDDX : NOMBRE MAXIMAL DE DOMAINES INTERNES POSSIBLES
43 ! NDHIDH : NOMBRE DE DOMAINES INTERNES ( OR DOMAINE 0 EVENTUEL )
44 ! INITIALISE PAR CALCUL DANS SUMDDH
45 ! NDHCS : NOMBRE TOTAL DE CHAMPS AU SOL
46 ! NDHCV : NOMBRE TOTAL DE CHAMPS EN PROFILS VERTICAUX
47 ! NDHCVSU: DIMENSION TABLEAUX LOCAUX DE CHAMPS VERTICAUX
48 ! NDHCVSU EST IMPAIR ET VAUT 1 AU MOINS
49 ! NDHCSSU: DIMENSION TABLEAUX LOCAUX DE CHAMPS AU SOL
50 
51 ! INDICATEURS D ORGANISATION DE LA REPARTITION DES CHAMPS
52 ! ------------------------------------------------------------------
53 INTEGER(KIND=JPIM) :: ndhvv
54 INTEGER(KIND=JPIM) :: ndhfvd
55 INTEGER(KIND=JPIM) :: ndhfvp
56 INTEGER(KIND=JPIM) :: ndhvs
57 INTEGER(KIND=JPIM) :: ndhfsd
58 INTEGER(KIND=JPIM) :: ndhfsp
59 INTEGER(KIND=JPIM) :: ndhffs
60 INTEGER(KIND=JPIM) :: ndhvfs
61 
62 INTEGER(KIND=JPIM) :: ndhvtls
63 INTEGER(KIND=JPIM) :: ndhftls
64 INTEGER(KIND=JPIM) :: ndhvtss
65 INTEGER(KIND=JPIM) :: ndhftss
66 INTEGER(KIND=JPIM) :: ndhvtts
67 INTEGER(KIND=JPIM) :: ndhftts
68 INTEGER(KIND=JPIM) :: ndhvtis
69 INTEGER(KIND=JPIM) :: ndhftis
70 INTEGER(KIND=JPIM) :: ndhvsss
71 INTEGER(KIND=JPIM) :: ndhfsss
72 INTEGER(KIND=JPIM) :: ndhviis
73 INTEGER(KIND=JPIM) :: ndhfiis
74 INTEGER(KIND=JPIM) :: ndhvwls
75 INTEGER(KIND=JPIM) :: ndhfwls
76 
77 INTEGER(KIND=JPIM) :: ndhthk
78 INTEGER(KIND=JPIM) :: ndhvhk
79 INTEGER(KIND=JPIM) :: ndhfhkd
80 INTEGER(KIND=JPIM) :: ndhfhkp
81 INTEGER(KIND=JPIM) :: ndhtmc
82 INTEGER(KIND=JPIM) :: ndhvmc
83 INTEGER(KIND=JPIM) :: ndhfmcd
84 INTEGER(KIND=JPIM) :: ndhfmcp
85 INTEGER(KIND=JPIM) :: ndhten
86 INTEGER(KIND=JPIM) :: ndhven
87 INTEGER(KIND=JPIM) :: ndhfend
88 INTEGER(KIND=JPIM) :: ndhfenp
89 INTEGER(KIND=JPIM) :: ndhavd
90 INTEGER(KIND=JPIM) :: ndhbvd
91 INTEGER(KIND=JPIM) :: ndhavp
92 INTEGER(KIND=JPIM) :: ndhbvp
93 INTEGER(KIND=JPIM) :: ndhahkd
94 INTEGER(KIND=JPIM) :: ndhbhkd
95 INTEGER(KIND=JPIM) :: ndhahkp
96 INTEGER(KIND=JPIM) :: ndhbhkp
97 INTEGER(KIND=JPIM) :: ndhamcd
98 INTEGER(KIND=JPIM) :: ndhbmcd
99 INTEGER(KIND=JPIM) :: ndhamcp
100 INTEGER(KIND=JPIM) :: ndhbmcp
101 INTEGER(KIND=JPIM) :: ndhaend
102 INTEGER(KIND=JPIM) :: ndhbend
103 INTEGER(KIND=JPIM) :: ndhaenp
104 INTEGER(KIND=JPIM) :: ndhbenp
105 
106 ! * LES INDICATEURS PRECEDES DE * SONT DES NOMBRES ATTACHES
107 ! AU CODE FORTRAN DE CALCUL SCIENTIFIQUE, ET NON DES
108 ! PARAMETRES AJUSTABLES AUX CIRCONSTANCES
109 
110 ! NDHVV : NOMBRE DE VARIABLES SUR LA VERTICALE
111 ! NDHFVD : NOMBRE DE FLUX+TENDANCES DYNAMIQUES SUR LA VERTICALE
112 ! DETAIL CI DESSOUS
113 ! NDHFVP : NOMBRE DE FLUX+TENDANCES PHYSIQUES SUR LA VERTICALE
114 ! DETAIL CI DESSOUS
115 
116 ! * NDHVS : NOMBRE DE VARIABLES AU SOL
117 ! * NDHFSD : NOMBRE DE FLUX DYNAMIQUES AU SOL
118 ! * NDHFSP : NOMBRE DE FLUX PHYSIQUES AU SOL
119 ! * NDHFFS : Number of free-style fluxes
120 ! * NDHVFS : Number of free-style variables
121 
122 ! * NDHVTLS: Number of variables for individual tiles
123 ! * NDHFTLS: Number of fluxes for individual tiles
124 ! * NDHVTSS: Number of variables for snow energy budget
125 ! * NDHFTSS: Number of fluxes for snow energy budget
126 ! * NDHVTTS: Number of variables for soil energy budget
127 ! * NDHFTTS: Number of fluxes for soil energy budget
128 ! * NDHVTIS: Number of variables for sea ice energy budget
129 ! * NDHFTIS: Number of fluxes for sea ice energy budget
130 ! * NDHVSSS: Number of variables for snow water budget
131 ! * NDHFSSS: Number of fluxes for snow water budget
132 ! * NDHVIIS: Number of variables for interception layer water budget
133 ! * NDHFIIS: Number of fluxes for interception layer water budget
134 ! * NDHVWLS: Number of variables for soil water budget
135 ! * NDHFWLS: Number of fluxes for soil water budget
136 
137 ! NDHTHK : NOMBRE TOTAL DE CHAMPS VERTICAUX SOUS LHDHKS
138 ! * NDHVHK : NOMBRE DE VARIABLES SOUS LHDHKS
139 ! * NDHFHKD: NOMBRE DE FLUX+TENDANCES DYNAMIQUES SOUS LHDHKS
140 ! * NDHFHKP: NOMBRE DE FLUX+TENDANCES PHYSIQUES SOUS LHDHKS
141 
142 ! NDHTMC : NOMBRE TOTAL DE CHAMPS VERTICAUX SOUS LHDMCI
143 ! * NDHVMC : NOMBRE DE VARIABLES SOUS LHDMCI
144 ! * NDHFMCD: NOMBRE DE FLUX+TENDANCES DYNAMIQUES SOUS LHDMCI
145 ! * NDHFMCP: NOMBRE DE FLUX+TENDANCES PHYSIQUES SOUS LHDMCI
146 
147 ! NDHTEN : NOMBRE TOTAL DE CHAMPS SOUS LHDENT
148 ! * NDHVEN : NOMBRE DE VARIABLES SOUS LHDENT
149 ! * NDHFEND: NOMBRE DE FLUX+TENDANCES DYNAMIQUES SOUS LHDENT
150 ! * NDHFENP: NOMBRE DE FLUX+TENDANCES PHYSIQUES SOUS LHDENT
151 
152 ! NDHAVD : NOMBRE TOTAL DE TENDANCES DYNAMIQUES
153 ! NDHBVD : NOMBRE TOTAL DE FLUX DYNAMIQUES
154 ! NDHAVP : NOMBRE TOTAL DE FLUX PHYSIQUES
155 ! NDHBVP : NOMBRE TOTAL DE TENDANCES PHYSIQUES
156 ! * NDHAHKD : NOMBRE TOTAL DE TENDANCES DYNAMIQUES, OPTION LHDHKS
157 ! * NDHBHKD : NOMBRE TOTAL DE FLUX DYNAMIQUES
158 ! * NDHAHKP : NOMBRE TOTAL DE FLUX PHYSIQUES
159 ! * NDHBHKP : NOMBRE TOTAL DE TENDANCES PHYSIQUES
160 ! * NDHAMCD : NOMBRE TOTAL DE TENDANCES DYNAMIQUES, OPTION LHDMCI
161 ! * NDHBMCD : NOMBRE TOTAL DE FLUX DYNAMIQUES
162 ! * NDHAMCP : NOMBRE TOTAL DE FLUX PHYSIQUES
163 ! * NDHBMCP : NOMBRE TOTAL DE TENDANCES PHYSIQUES
164 ! * NDHAEND : NOMBRE TOTAL DE TENDANCES DYNAMIQUES, OPTION LHDENT
165 ! * NDHBEND : NOMBRE TOTAL DE FLUX DYNAMIQUES
166 ! * NDHAENP : NOMBRE TOTAL DE FLUX PHYSIQUES
167 ! * NDHBENP : NOMBRE TOTAL DE TENDANCES PHYSIQUES
168 
169 ! IDENTIFICATION DES DOMAINES DE L UTILISATEUR
170 ! ------------------------------------------------------------------
171 
172 INTEGER(KIND=JPIM) :: ndhzpr
173 REAL(KIND=JPRB) :: fnoddh(11,jpdhnox)
174 REAL(KIND=JPRB) :: bdeddh(10,jpdhnox)
175 REAL(KIND=JPRB) :: hdsfgl
176 
177 ! FNODDH : DESCRIPTEURS DES DOMAINES LIMITES UTILISATEUR ACCEPTES
178 ! (1,-) : PLAN MEMOIRE (MASQUE)
179 ! (2,-) : NUMERO D ORDRE DANS LE PLAN
180 ! CES DEUX NOMBRES FORMENT LES COORDONNEES INTERNES DU DOMAINE
181 ! (3,-) A (10,-) : COORDONNEES (EN GAL LON, SIN(LAT) EN RD)
182 ! SUIVANT LE TYPE (VOIR DOCUMENTATION)
183 ! (11,-) : TYPE DE DOMAINE
184 
185 ! BDEDDH : DESCRIPTEUR BRUT LU SUR NAMELIST
186 ! (CERTAINS DOMAINES PEUVENT AVOIR ETE REJETES)
187 ! (1,-) : TYPE DE DOMAINE
188 ! (2,-) : PLAN MEMOIRE
189 ! (3,-) A (10,-) : COORDONNEES (EN GAL LON, LAT EN DEG)
190 ! SUIVANT LE TYPE (VOIR DOCUMENTATION)
191 ! HDSFGL : VOIR CI DESSOUS
192 ! NDHZPR : INDICE DE LA BANDE ZONALE EVENTUELLEMENT IMPRIMEE
193 
194 ! MASQUES DES DIAGNOSTIQUES DDH, POIDS POUR LES MOYENNES
195 ! ------------------------------------------------------------------
196 
197 INTEGER(KIND=JPIM),ALLOCATABLE:: nddhla(:)
198 INTEGER(KIND=JPIM),ALLOCATABLE:: nddhpu(:,:)
199 
200 INTEGER(KIND=JPIM),ALLOCATABLE:: nddhi(:)
201 ! -----
202 INTEGER(KIND=JPIM),ALLOCATABLE:: nlrddh(:,:)
203 INTEGER(KIND=JPIM),ALLOCATABLE:: nurddh(:,:,:)
204 ! -----
205 INTEGER(KIND=JPIM),ALLOCATABLE:: nlxddh(:)
206 INTEGER(KIND=JPIM),ALLOCATABLE:: nuxddh(:,:)
207 ! -----
208 REAL(KIND=JPRB),ALLOCATABLE:: hdsfla(:)
209 REAL(KIND=JPRB),ALLOCATABLE:: hdsfdu(:,:)
210 REAL(KIND=JPRB),ALLOCATABLE:: hdsf(:)
211 
212 ! NDDHLA : MASQUE BANDES DE LATITUDES
213 ! NDDHPU : MASQUES POUR LES DOMAINES LIMITES ET LES POINTS
214 
215 ! NDDHI : MASQUE DES DOMAINES INTERNES
216 
217 ! NLRDDH : DISTRIBUTION DE CHAQUE BANDE DE LATITUDE EN DOMAINES INTERNES
218 ! NURDDH : DISTRIBUTION DE CHAQUE DOMAINE DE CHAQUE PLAN EN DOMAINES INTERNE
219 
220 ! NLXDDH : BORNE DE LECTURE DE NLRDDH POUR CHAQUE BANDE
221 ! NUXDDH : BORNE DE LECTURE DE NURDDH POUR CHAQUE DOMAINE DE CHAQUE PLAN
222 
223 ! HDSFLA : POIDS DE CHAQUE BANDE DE LATITUDE
224 ! HDSFDU : POIDS DE CHAQUE DOMAINE UTILISATEUR
225 ! HDSFGL : POIDS POUR LES MOYENNES GLOBALES
226 ! HDSF : POIDS DE CHAQUE POINT DE LA GRILLE PHYSIQUE
227 
228 ! POINTEURS
229 
230 ! ---- DDH
231 ! ------------------------------------------------------------------
232 !$OMP THREADPRIVATE(bdeddh,fnoddh,hdsfgl,ndhaend,ndhaenp,ndhahkd,ndhahkp,ndhamcd)
233 !$OMP THREADPRIVATE(ndhamcp,ndhavd,ndhavp,ndhbend,ndhbenp,ndhbhkd,ndhbhkp,ndhbmcd)
234 !$OMP THREADPRIVATE(ndhbmcp,ndhbpu,ndhbpx,ndhbvd,ndhbvp,ndhcs,ndhcssu,ndhcv,ndhcvsu)
235 !$OMP THREADPRIVATE(ndhcvsul,ndhcvsun,ndhddx,ndhfend,ndhfenp,ndhffs,ndhfhkd,ndhfhkp)
236 !$OMP THREADPRIVATE(ndhfiis,ndhfmcd,ndhfmcp,ndhfsd,ndhfsp,ndhfsss,ndhftis,ndhftls)
237 !$OMP THREADPRIVATE(ndhftss,ndhftts,ndhfvd,ndhfvp,ndhfwls,ndhidh,ndhkd,ndhnom,ndhnpu)
238 !$OMP THREADPRIVATE(ndhten,ndhthk,ndhtmc,ndhven,ndhvfs,ndhvhk,ndhviis,ndhvmc,ndhvs)
239 !$OMP THREADPRIVATE(ndhvsss,ndhvtis,ndhvtls,ndhvtss,ndhvtts,ndhvv,ndhvwls,ndhzpr)
240 !$OMP THREADPRIVATE(hdsf,hdsfdu,hdsfla,nddhi,nddhla,nddhpu,nlrddh,nlxddh,nurddh,nuxddh)
241 END MODULE yommddh
integer(kind=jpim) ndhcvsun
Definition: yommddh.F90:33
integer(kind=jpim) ndhaend
Definition: yommddh.F90:101
integer(kind=jpim) ndhbmcp
Definition: yommddh.F90:100
integer(kind=jpim), dimension(:), allocatable nlxddh
Definition: yommddh.F90:205
integer(kind=jpim) ndhavd
Definition: yommddh.F90:89
integer(kind=jpim) ndhfhkp
Definition: yommddh.F90:80
real(kind=jprb), dimension(:), allocatable hdsfla
Definition: yommddh.F90:208
integer(kind=jpim) ndhvsss
Definition: yommddh.F90:70
integer(kind=jpim) ndhavp
Definition: yommddh.F90:91
integer(kind=jpim) ndhbvd
Definition: yommddh.F90:90
real(kind=jprb), dimension(11, jpdhnox) fnoddh
Definition: yommddh.F90:173
integer(kind=jpim) ndhzpr
Definition: yommddh.F90:172
integer(kind=jpim) ndhfiis
Definition: yommddh.F90:73
integer(kind=jpim) ndhahkp
Definition: yommddh.F90:95
integer(kind=jpim) ndhftls
Definition: yommddh.F90:63
integer(kind=jpim) ndhbenp
Definition: yommddh.F90:104
integer(kind=jpim) ndhcvsul
Definition: yommddh.F90:34
integer(kind=jpim), dimension(:,:), allocatable nlrddh
Definition: yommddh.F90:202
integer(kind=jpim), parameter jpdhnox
Definition: yommddh.F90:16
integer(kind=jpim) ndhcvsu
Definition: yommddh.F90:31
integer(kind=jpim) ndhbmcd
Definition: yommddh.F90:98
integer(kind=jpim) ndhfsss
Definition: yommddh.F90:71
integer(kind=jpim) ndhvwls
Definition: yommddh.F90:74
integer(kind=jpim), dimension(:,:), allocatable nuxddh
Definition: yommddh.F90:206
integer(kind=jpim) ndhvs
Definition: yommddh.F90:56
integer(kind=jpim) ndhcssu
Definition: yommddh.F90:32
integer(kind=jpim), dimension(:,:,:), allocatable nurddh
Definition: yommddh.F90:203
integer(kind=jpim) ndhvhk
Definition: yommddh.F90:78
integer(kind=jpim) ndhven
Definition: yommddh.F90:86
integer(kind=jpim) ndhvfs
Definition: yommddh.F90:60
integer(kind=jpim) ndhtmc
Definition: yommddh.F90:81
integer(kind=jpim) ndhfvd
Definition: yommddh.F90:54
integer(kind=jpim) ndhnpu
Definition: yommddh.F90:23
integer, parameter jprb
Definition: parkind1.F90:31
integer(kind=jpim), parameter jpdhxpu
Definition: yommddh.F90:17
integer(kind=jpim) ndhcs
Definition: yommddh.F90:29
integer(kind=jpim) ndhamcd
Definition: yommddh.F90:97
integer(kind=jpim) ndhvmc
Definition: yommddh.F90:82
integer(kind=jpim) ndhvtts
Definition: yommddh.F90:66
integer(kind=jpim) ndhahkd
Definition: yommddh.F90:93
integer(kind=jpim) ndhkd
Definition: yommddh.F90:22
integer(kind=jpim) ndhffs
Definition: yommddh.F90:59
integer(kind=jpim) ndhthk
Definition: yommddh.F90:77
integer(kind=jpim) ndhten
Definition: yommddh.F90:85
integer(kind=jpim) ndhvtis
Definition: yommddh.F90:68
real(kind=jprb), dimension(10, jpdhnox) bdeddh
Definition: yommddh.F90:174
integer(kind=jpim) ndhfsp
Definition: yommddh.F90:58
integer(kind=jpim) ndhddx
Definition: yommddh.F90:27
integer(kind=jpim) ndhidh
Definition: yommddh.F90:28
real(kind=jprb) hdsfgl
Definition: yommddh.F90:175
integer(kind=jpim) ndhftis
Definition: yommddh.F90:69
integer(kind=jpim), dimension(:), allocatable nddhi
Definition: yommddh.F90:200
integer(kind=jpim) ndhfend
Definition: yommddh.F90:87
integer(kind=jpim) ndhfvp
Definition: yommddh.F90:55
integer(kind=jpim) ndhfmcd
Definition: yommddh.F90:83
integer(kind=jpim) ndhftss
Definition: yommddh.F90:65
integer(kind=jpim) ndhnom
Definition: yommddh.F90:26
integer(kind=jpim) ndhviis
Definition: yommddh.F90:72
integer(kind=jpim) ndhfsd
Definition: yommddh.F90:57
integer(kind=jpim) ndhcv
Definition: yommddh.F90:30
integer(kind=jpim) ndhvv
Definition: yommddh.F90:53
integer(kind=jpim) ndhftts
Definition: yommddh.F90:67
real(kind=jprb), dimension(:), allocatable hdsf
Definition: yommddh.F90:210
integer(kind=jpim) ndhfhkd
Definition: yommddh.F90:79
integer(kind=jpim) ndhvtls
Definition: yommddh.F90:62
integer(kind=jpim) ndhbhkp
Definition: yommddh.F90:96
integer, parameter jpim
Definition: parkind1.F90:13
integer(kind=jpim) ndhbvp
Definition: yommddh.F90:92
integer(kind=jpim) ndhfmcp
Definition: yommddh.F90:84
integer(kind=jpim) ndhaenp
Definition: yommddh.F90:103
integer(kind=jpim), dimension(:,:), allocatable nddhpu
Definition: yommddh.F90:198
real(kind=jprb), dimension(:,:), allocatable hdsfdu
Definition: yommddh.F90:209
integer(kind=jpim) ndhfenp
Definition: yommddh.F90:88
integer(kind=jpim) ndhvtss
Definition: yommddh.F90:64
integer(kind=jpim) ndhbhkd
Definition: yommddh.F90:94
integer(kind=jpim) ndhbend
Definition: yommddh.F90:102
integer(kind=jpim) ndhfwls
Definition: yommddh.F90:75
integer(kind=jpim), dimension(:), allocatable nddhla
Definition: yommddh.F90:197
integer(kind=jpim) ndhamcp
Definition: yommddh.F90:99
integer(kind=jpim) ndhbpx
Definition: yommddh.F90:25
integer(kind=jpim), dimension(jpdhxpu) ndhbpu
Definition: yommddh.F90:24