source: LMDZ6/branches/IPSLCM6.0.13/libf/phylmd/rrtm/yommddh.F90 @ 4249

Last change on this file since 4249 was 2010, checked in by Laurent Fairhead, 11 years ago

Modifications pour OpenMP


OpenMP modifications

  • 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: 9.4 KB
Line 
1MODULE YOMMDDH
2
3USE PARKIND1  ,ONLY : JPIM     ,JPRB
4
5IMPLICIT NONE
6
7SAVE
8
9!     ------------------------------------------------------------------
10!     DIAGNOSTIQUES DOMAINES HORIZONTAUX
11!     ----------------------------------
12
13!     DIMENSIONS DES DIAGNOSTIQUES DDH
14!     ---------------------------------
15! === basic dimensions for reading NAMDDH ===
16INTEGER(KIND=JPIM), PARAMETER :: JPDHNOX=200
17INTEGER(KIND=JPIM), PARAMETER :: JPDHXPU=5
18
19!     JPDHNOX: Maximum number of user area
20!     JPDHXPU: Maximum number of user or mask memory plans
21
22INTEGER(KIND=JPIM) :: NDHKD
23INTEGER(KIND=JPIM) :: NDHNPU
24INTEGER(KIND=JPIM) :: NDHBPU(JPDHXPU)
25INTEGER(KIND=JPIM) :: NDHBPX
26INTEGER(KIND=JPIM) :: NDHNOM
27INTEGER(KIND=JPIM) :: NDHDDX
28INTEGER(KIND=JPIM) :: NDHIDH
29INTEGER(KIND=JPIM) :: NDHCS
30INTEGER(KIND=JPIM) :: NDHCV
31INTEGER(KIND=JPIM) :: NDHCVSU
32INTEGER(KIND=JPIM) :: NDHCSSU
33INTEGER(KIND=JPIM) :: NDHCVSUN
34INTEGER(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!     ------------------------------------------------------------------
53INTEGER(KIND=JPIM) :: NDHVV
54INTEGER(KIND=JPIM) :: NDHFVD
55INTEGER(KIND=JPIM) :: NDHFVP
56INTEGER(KIND=JPIM) :: NDHVS
57INTEGER(KIND=JPIM) :: NDHFSD
58INTEGER(KIND=JPIM) :: NDHFSP
59INTEGER(KIND=JPIM) :: NDHFFS
60INTEGER(KIND=JPIM) :: NDHVFS
61
62INTEGER(KIND=JPIM) :: NDHVTLS
63INTEGER(KIND=JPIM) :: NDHFTLS
64INTEGER(KIND=JPIM) :: NDHVTSS
65INTEGER(KIND=JPIM) :: NDHFTSS
66INTEGER(KIND=JPIM) :: NDHVTTS
67INTEGER(KIND=JPIM) :: NDHFTTS
68INTEGER(KIND=JPIM) :: NDHVTIS
69INTEGER(KIND=JPIM) :: NDHFTIS
70INTEGER(KIND=JPIM) :: NDHVSSS
71INTEGER(KIND=JPIM) :: NDHFSSS
72INTEGER(KIND=JPIM) :: NDHVIIS
73INTEGER(KIND=JPIM) :: NDHFIIS
74INTEGER(KIND=JPIM) :: NDHVWLS
75INTEGER(KIND=JPIM) :: NDHFWLS
76
77INTEGER(KIND=JPIM) :: NDHTHK
78INTEGER(KIND=JPIM) :: NDHVHK
79INTEGER(KIND=JPIM) :: NDHFHKD
80INTEGER(KIND=JPIM) :: NDHFHKP
81INTEGER(KIND=JPIM) :: NDHTMC
82INTEGER(KIND=JPIM) :: NDHVMC
83INTEGER(KIND=JPIM) :: NDHFMCD
84INTEGER(KIND=JPIM) :: NDHFMCP
85INTEGER(KIND=JPIM) :: NDHTEN
86INTEGER(KIND=JPIM) :: NDHVEN
87INTEGER(KIND=JPIM) :: NDHFEND
88INTEGER(KIND=JPIM) :: NDHFENP
89INTEGER(KIND=JPIM) :: NDHAVD
90INTEGER(KIND=JPIM) :: NDHBVD
91INTEGER(KIND=JPIM) :: NDHAVP
92INTEGER(KIND=JPIM) :: NDHBVP
93INTEGER(KIND=JPIM) :: NDHAHKD
94INTEGER(KIND=JPIM) :: NDHBHKD
95INTEGER(KIND=JPIM) :: NDHAHKP
96INTEGER(KIND=JPIM) :: NDHBHKP
97INTEGER(KIND=JPIM) :: NDHAMCD
98INTEGER(KIND=JPIM) :: NDHBMCD
99INTEGER(KIND=JPIM) :: NDHAMCP
100INTEGER(KIND=JPIM) :: NDHBMCP
101INTEGER(KIND=JPIM) :: NDHAEND
102INTEGER(KIND=JPIM) :: NDHBEND
103INTEGER(KIND=JPIM) :: NDHAENP
104INTEGER(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
172INTEGER(KIND=JPIM) :: NDHZPR
173REAL(KIND=JPRB) :: FNODDH(11,JPDHNOX)
174REAL(KIND=JPRB) :: BDEDDH(10,JPDHNOX)
175REAL(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
197INTEGER(KIND=JPIM),ALLOCATABLE:: NDDHLA(:)
198INTEGER(KIND=JPIM),ALLOCATABLE:: NDDHPU(:,:)
199
200INTEGER(KIND=JPIM),ALLOCATABLE:: NDDHI(:)
201!     -----
202INTEGER(KIND=JPIM),ALLOCATABLE:: NLRDDH(:,:)
203INTEGER(KIND=JPIM),ALLOCATABLE:: NURDDH(:,:,:)
204!     -----
205INTEGER(KIND=JPIM),ALLOCATABLE:: NLXDDH(:)
206INTEGER(KIND=JPIM),ALLOCATABLE:: NUXDDH(:,:)
207!     -----
208REAL(KIND=JPRB),ALLOCATABLE:: HDSFLA(:)
209REAL(KIND=JPRB),ALLOCATABLE:: HDSFDU(:,:)
210REAL(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)
241END MODULE YOMMDDH
Note: See TracBrowser for help on using the repository browser.