1 | !> \file 3D-physique-gen_mod.f90 |
---|
2 | !! Module de declaration des variables generales |
---|
3 | !! de la physique du modele. |
---|
4 | !< |
---|
5 | |
---|
6 | !> \namespace module3D_phy |
---|
7 | !! Module de declaration des variables generales |
---|
8 | !! de la physique du modele. |
---|
9 | !! \author CatRitz |
---|
10 | !! \date 30 juin 2007 |
---|
11 | !! @note Used module |
---|
12 | !! @note - use geography |
---|
13 | !! @note - use runparam |
---|
14 | !< |
---|
15 | |
---|
16 | module MODULE3D_phy |
---|
17 | |
---|
18 | ! declaration des variables |
---|
19 | ! implicit none |
---|
20 | use geography ! indirectement donne acces au nx,ny, appropries |
---|
21 | use runparam ! donne acces a runname, dirout, tbegin,tend |
---|
22 | use param_phy_mod |
---|
23 | |
---|
24 | implicit none |
---|
25 | real, parameter :: PI = 3.1415927 |
---|
26 | |
---|
27 | |
---|
28 | ! **** integer declaration ************************************* |
---|
29 | |
---|
30 | integer :: I,J !< I selon x, j selon y, |
---|
31 | integer :: k,l !< k vertical |
---|
32 | integer :: ispinup !< pour les differentes etapes du spinup |
---|
33 | integer :: I1,J1,I_1,J_1,I2,J2 !< |
---|
34 | integer :: NI,NJ,NXX,NYY !< divers entiers de travail en general |
---|
35 | integer :: NZZ !< Total number of vertical grid points |
---|
36 | integer :: err !< pour l'allocation des tableaux |
---|
37 | integer :: igrdline !< si 1 fixe la position en jouant sur la fusion shelf |
---|
38 | integer :: ibmelt_inv !< si 1 inversion du bmelt (avec igrdline=1) |
---|
39 | integer :: i_resolmeca !< defini le type d'association SIA-L1 |
---|
40 | !cdc integer :: iter_beta !< pour la determination du frottement plus utilise |
---|
41 | integer :: inv_beta !< 0 : run std, 1 : inversion du beta |
---|
42 | integer :: ICOUPLE !< |
---|
43 | integer :: IMARGIN !< |
---|
44 | integer :: ICOMPTEUR !< reprise fichier cptr |
---|
45 | integer :: IOUT !< type de fichier de sortie pour reprise |
---|
46 | integer :: iglen !< compteur pour la boucle flowlaw |
---|
47 | integer :: ISYNCHRO !< synchronisation pas de temps dt et dtt |
---|
48 | integer :: LOIGLISS !< permet de choisir la loi de glissement |
---|
49 | integer :: Schoof !< 0 : pas de flux de Schoof , 1 : flux de Schoof a la grounding line |
---|
50 | !integer :: NYEAR !< number of months in 1 year, st. dev. for temp *) |
---|
51 | integer :: NTMAX !< |
---|
52 | ! integer :: NDAY !< |
---|
53 | integer :: NP !< |
---|
54 | real :: NDISP !< sortie courte (temps) |
---|
55 | !integer :: NTRACE !< sortie de traces 1=oui, 0=non |
---|
56 | |
---|
57 | integer :: NICE !< |
---|
58 | integer :: NINSTAB !< |
---|
59 | integer :: NUMFUS !< |
---|
60 | integer :: NUMMARG !< |
---|
61 | integer :: BANDWD !< |
---|
62 | integer :: TIMECG !< |
---|
63 | integer :: IND !< |
---|
64 | integer :: IFT !< |
---|
65 | integer :: ITEMP !< |
---|
66 | integer :: ITBOOST !< |
---|
67 | ! integer :: NBLIG ! ?????????????????????????????? |
---|
68 | integer :: ndebug !< pour faire des sorties de debug a plusieurs pas de temps |
---|
69 | integer :: ndebug_max !< pour faire des sorties de debug a plusieurs pas de temps |
---|
70 | !integer, dimension(NX,NY) :: LIGU !< numero de ligne de U dans remplidom |
---|
71 | !integer, dimension(NX,NY) :: LIGV !< numero de ligne de V dans remplidom |
---|
72 | |
---|
73 | integer :: nombre_profils !< nombre de profils de la calotte |
---|
74 | integer :: itracer ! pour ecrire les recovery avec ou sans les tableaux traceurs |
---|
75 | |
---|
76 | ! ************ common des scalaires ************************* |
---|
77 | real :: alpha_drag !< exposant non linearite, dragging dans la namelist |
---|
78 | real :: exp_alpha !< exposant dans la loi dragging |
---|
79 | |
---|
80 | |
---|
81 | real :: A1 !< |
---|
82 | real :: A2 !< |
---|
83 | real :: ALT !< |
---|
84 | real :: ATEST !< |
---|
85 | real :: ACOUP !< |
---|
86 | real :: BEDCT !< |
---|
87 | |
---|
88 | real :: coefbmshelf !< coef permettant de faire varier la fusion basale : |
---|
89 | !< 3 dimensions pour les 3 bassins oceaniques de Climber??? |
---|
90 | |
---|
91 | real :: cf !< coefficient loi frottement |
---|
92 | ! real :: CSI ! proportion of melted water that can refreeze *) |
---|
93 | ! real :: Cice ! melting factors for ice |
---|
94 | ! real :: Csnow ! melting factors for snow |
---|
95 | |
---|
96 | real :: CL !< specific latent heat of fusion of ice J/Kg |
---|
97 | real :: DT !< pas de temps court |
---|
98 | real :: DTT !< pas de temps long |
---|
99 | real :: DTMIN !< pas de temps mini |
---|
100 | !real :: DTP !< integrating step for positive degree days (degrees) |
---|
101 | !! Ne sert plus a rien avec param_phy_mod real :: DICE !< = RO/ROW |
---|
102 | real :: DA !< |
---|
103 | real :: DX1 !< 1/dx |
---|
104 | real :: DTDX !< dt/dx |
---|
105 | real :: dtdx2 !< dt/dx**2 |
---|
106 | !! Ne sert plus a rien avec param_phy_mod real :: D00 !< = RO**3*G**3 |
---|
107 | real :: DMX1 !< |
---|
108 | real :: DMY1 !< |
---|
109 | real :: DMX2 !< |
---|
110 | real :: DMY2 !< |
---|
111 | real :: DTMAX !< |
---|
112 | real :: EW !< |
---|
113 | real :: FLU !< |
---|
114 | !! Ne sert plus a rien avec param_phy_mod real :: G !< gravite |
---|
115 | real :: GAMMA !< |
---|
116 | real :: GLACLOST !< |
---|
117 | real :: HMAX !< epasisseur de glace max |
---|
118 | real :: HMEAN !< epasisseur de glace moyenne |
---|
119 | real,parameter :: Hmin=1.001 !< Hmin pour etre considere comme point ice |
---|
120 | real :: HWATERMAX !< hauteur d'eau basale maximum dans le sediment |
---|
121 | real :: HWATSTREAM !< seuil min. d'eau basale (hwater) pour ice stream |
---|
122 | real :: HLIM !< |
---|
123 | real :: coefbmax !< fautcteur de normalisation pour l'influence de l'eau |
---|
124 | real :: ff !< coefficient de la loi de frottement solide |
---|
125 | real :: ff_stream !< coefficient de la loi de frottement solide pour les ice-streams |
---|
126 | ! real :: PY ! ct for PDD calculation |
---|
127 | real :: PYY !< |
---|
128 | ! real :: PSOLID !< temp limit between liquid and solid precip |
---|
129 | ! real :: PDDCT ! ct for PDD calculation |
---|
130 | real :: PDSI !< |
---|
131 | real :: PDS !< |
---|
132 | real :: RGAS !< gas constant (J/mol/K) |
---|
133 | !! Ne sert plus a rien avec param_phy_mod real :: ROM !< density of mantle |
---|
134 | !! Ne sert plus a rien avec param_phy_mod real :: ROW !< densities of ocean water |
---|
135 | !! Ne sert plus a rien avec param_phy_mod real :: ROFRESH !< density of fresh water |
---|
136 | !! Ne sert plus a rien avec param_phy_mod real :: ROFRESHG !< = ROFRESH*G |
---|
137 | !! Ne sert plus a rien avec param_phy_mod real :: RO !< densities of ice |
---|
138 | !! Ne sert plus a rien avec param_phy_mod real :: ROG !< = RO*G (glace) |
---|
139 | !! Ne sert plus a rien avec param_phy_mod real :: ROWG !< = ROW*G (ocean) |
---|
140 | !! Ne sert plus a rien avec param_phy_mod real :: ROMG !< = ROM*G (asthenosphere) |
---|
141 | real :: SECYEAR !< for relation an/seconds |
---|
142 | !real :: S22 ! ct for PDD calculation |
---|
143 | real :: sealevel !< niveau des mers |
---|
144 | ! real :: SIGMA ! variabilite Tday |
---|
145 | real :: SURF !< |
---|
146 | real :: STEP !< |
---|
147 | ! real :: SIF !< |
---|
148 | ! real :: SUMM !< |
---|
149 | real :: SIMAX !< |
---|
150 | real :: SPHI !< |
---|
151 | ! real :: TEMPGRAD !< atmospheric temperature gradient (annual) |
---|
152 | ! real :: TEMPGRJUL !< atmospheric temperature gradient (july) |
---|
153 | real (kind=kind(0.d0)) :: TIME !< temps : en double precision |
---|
154 | real :: TAFOR !< temperature forcing : annual |
---|
155 | real :: TJFOR !< temperature forcing : july |
---|
156 | ! real :: TEMP !< |
---|
157 | real :: TESTDIAG !< for time step calculation (icethick) |
---|
158 | real :: V_limit !< vitesse maxi (limitateur de flux pour conserv masse) |
---|
159 | real :: TJF !< |
---|
160 | real :: TSF !< |
---|
161 | real :: TII !< |
---|
162 | real :: TJJ !< |
---|
163 | real :: TEVOL !< |
---|
164 | real :: UZ1 !< |
---|
165 | real :: UZ2 !< |
---|
166 | real :: UZ3 !< |
---|
167 | real :: VOL !< |
---|
168 | real :: VVX !< |
---|
169 | real :: VVY !< |
---|
170 | real :: WDOTMEAN !< |
---|
171 | real :: X1 !< |
---|
172 | real :: XLCENT !< |
---|
173 | real :: XDMIN !< |
---|
174 | real :: XC !< |
---|
175 | real :: YDMIN !< |
---|
176 | real :: YLATREF !< |
---|
177 | real :: YC !< |
---|
178 | real :: ZI !< |
---|
179 | real :: U !< |
---|
180 | real :: TTETA !< |
---|
181 | real :: LAMBDA !< |
---|
182 | real :: G1 !< |
---|
183 | real :: XI !< |
---|
184 | real :: XIS !< |
---|
185 | real :: ERFXI !< |
---|
186 | real :: ERFXIS !< |
---|
187 | real :: INTDAWS !< |
---|
188 | real :: WSP !< |
---|
189 | real :: gradsurf !< |
---|
190 | real :: U1 !< |
---|
191 | real :: U2 !< |
---|
192 | real :: KAP !< |
---|
193 | real :: G1NEW !< |
---|
194 | real :: neffgz !< |
---|
195 | real :: neffratio !<seuil (% de H) sur neffmxy pour passage en stream |
---|
196 | real :: toblim !< |
---|
197 | real :: moteurmax !< |
---|
198 | real :: betamax !< (Pa) frottement maxi sous les streams |
---|
199 | real :: deltaacc !< |
---|
200 | real :: pvimin !< valeur de pvi pour les noeuds fictifs |
---|
201 | real :: test_iter_diag !< test sur les vitesses pour iterations diagnostiques |
---|
202 | real :: water_bilan !< bilan d'eau sur la calotte |
---|
203 | |
---|
204 | ! ************** common des caracteres ************** |
---|
205 | !character(len=8), dimension(NPL) :: VARNAME ! |
---|
206 | character(len=320) :: reprcptr ! nom du fichier de reprise CPTR |
---|
207 | |
---|
208 | ! *************** common des tableaux a 1 dimension ***** |
---|
209 | real,dimension(nz) :: e !< vertical coordinate in ice, scaled to H zeta |
---|
210 | |
---|
211 | |
---|
212 | real,dimension(NZ) :: CDE !< |
---|
213 | real,dimension(NZ) :: W16 !< pour sorties eismint |
---|
214 | real,dimension(NZ) :: W24 !< pour sorties eismint |
---|
215 | real,dimension(NZ) :: UZCOMPLETE !< pour sorties eismint (vitesse vert. non reduite) |
---|
216 | |
---|
217 | ! real,dimension(365) :: TT !< air temperature yearly cycle, for PDD |
---|
218 | |
---|
219 | real,dimension(NX) :: FLUX !< |
---|
220 | real,dimension(8) :: AFLAG !< |
---|
221 | real,dimension(2*nx*ny) :: SAV !< |
---|
222 | |
---|
223 | ! ************* common des tableaux a deux dimensions ****** |
---|
224 | |
---|
225 | integer,dimension(nx,ny) :: FRONT !< point d'un shelf situe sur le front |
---|
226 | integer,dimension(nx,ny) :: FRONTFACEX!< type de front sur les faces x |
---|
227 | integer,dimension(nx,ny) :: FRONTFACEY!< type de front sur les faces y |
---|
228 | integer,dimension(nx,ny) :: gr_line_schoof ! points ou on impose le flux de schoof (pour sorties) |
---|
229 | integer,dimension(nx,ny) :: gr_line !< points grounding line pour les sorties |
---|
230 | integer,dimension(nx,ny) :: ICE !< presence de glace au point considere, |
---|
231 | !< seuil 0 si pose, 1 si flottant |
---|
232 | integer,dimension(nx,ny) :: MASQUE_BMSHELF !< masque pour determiner a quel bassin oceanique |
---|
233 | !< appartiennent les points de la grille |
---|
234 | integer,dimension(nx,ny) :: MK0 !< masks (ice sheet, max, above water, below water, 1) |
---|
235 | integer,dimension(nx,ny) :: Mk_init !< initial mask (with islands, outcrops, ... |
---|
236 | integer,dimension(nx,ny) :: MK !< masks (ice sheet, max, above water, below water, 1) |
---|
237 | integer,dimension(nx,ny) :: M_sealev !< masks for sea level calculation (present ice sheet) |
---|
238 | integer,dimension(nx,ny) :: MNEG !< masks (ice sheet, max, above water, below water, 1) |
---|
239 | integer,dimension(nx,ny) :: IBASE !< type de base (froide, temperee) |
---|
240 | |
---|
241 | real,dimension(nx,ny) :: ACC !< Accumulation 'o' |
---|
242 | real,dimension(nx,ny) :: ABL !< Ablation 'o' negative quand perte |
---|
243 | real,dimension(nx,ny) :: ABLBORD !< Ablation dans les zones non englacees |
---|
244 | real,dimension(nx,ny) :: ablbord_dtt !< Ablation sur le bord de la calotte (flux de glace inférieur à ablation sur le bord) sur dtt |
---|
245 | real,dimension(nx,ny) :: ACQUA !< Surface des surfaces en eau |
---|
246 | real,dimension(nx,ny) :: B !< Altitude de la base de la glace 'o' |
---|
247 | real,dimension(nx,ny) :: B_sealev !< Altitude de la base de la glace pour le |
---|
248 | !< calcul du nivx de la mer (/present) |
---|
249 | real,dimension(nx,ny) :: BDOT !< derivee de B / t |
---|
250 | real,dimension(nx,ny) :: B1 !< |
---|
251 | real,dimension(nx,ny) :: BSOC0 !< ice free bedrock |
---|
252 | real,dimension(nx,ny) :: betamx !< coefficient beta du frottement basal |
---|
253 | ! betamx=cf*neffmx et tobmx=betamx*uxbar |
---|
254 | real,dimension(nx,ny) :: betamy !< coefficient beta du frottement basal |
---|
255 | ! betamy=cf*neffmy et tobmy=betamy*uybar |
---|
256 | !hassine |
---|
257 | real, dimension(nx,ny) :: beta_centre !< beta on major node (average) |
---|
258 | real, dimension(nx,ny) :: coef_drag !< coefficient de la loi de friction non lineaire : depend de la valeur de alpha_drag |
---|
259 | !< si alpha_drag = 1, coef_drag = drag_centre |
---|
260 | real, dimension(nx,ny) :: betamax_2d !< (Pa) frottement maxi sous les streams |
---|
261 | ! |
---|
262 | real,dimension(nx,ny) :: BM !< mass balance 'o' |
---|
263 | real,dimension(nx,ny) :: BMELT !< basal melting 'o' |
---|
264 | real,dimension(nx,ny) :: CORRBMELT !< correction du basal melting 'o' |
---|
265 | real,dimension(nx,ny) :: HWATER !< hauteur d'eau basale dans le sediment |
---|
266 | real,dimension(nx,ny) :: COEFMXBMELT !< |
---|
267 | real,dimension(nx,ny) :: COEFMYBMELT !< |
---|
268 | real,dimension(nx,ny) :: CALV !< calving |
---|
269 | |
---|
270 | !real,dimension(:,:,:),allocatable :: DDX ! pour le calcul de UX |
---|
271 | !real,dimension(:,:,:),allocatable :: DDY ! pour le calcul de UY |
---|
272 | real,dimension(nx,ny) :: DDBX !< UBX/(-SDX) '>' |
---|
273 | real,dimension(nx,ny) :: DDBY !< UBY/(-SDY) '^' |
---|
274 | real,dimension(nx,ny) :: Diffmx !< partie diffusive en x |
---|
275 | real,dimension(nx,ny) :: Diffmy !< partie diffusive en y |
---|
276 | |
---|
277 | !REAL,dimension(nx,ny) :: DPHIX !< ROG*HMX**2 '>' |
---|
278 | !REAL,dimension(nx,ny) :: DPHIY !< ROG*HMY**2 '^' |
---|
279 | real,dimension(nx,ny) :: DHDT !< derive lagrangienne de l'epaisseur 'o' |
---|
280 | real,dimension(nx,ny) :: DIF1 !< UZR(I,J,1)-BM(I,J) |
---|
281 | real,dimension(nx,ny) :: DIF2 !< UZR(I,J,1)-BMELT(I,J) |
---|
282 | real,dimension(nx,ny) :: DIFT !< pour sorties eismint |
---|
283 | real,dimension(nx,ny) :: DIVU !< divergence de UH |
---|
284 | ! real,dimension(nx,ny) :: DISTCENT ! |
---|
285 | real,dimension(nx,ny) :: ELA !< Equilibrium line altitude, for mass balance |
---|
286 | real,dimension(nx,ny) :: epsxx !< vitesse de deformation selon x |
---|
287 | real,dimension(nx,ny) :: epsyy !< vitesse de deformation selon y |
---|
288 | real,dimension(nx,ny) :: epsxy !< vitesse de deformation selon xy |
---|
289 | real,dimension(nx,ny) :: eps !< vitesse de deformation (invariant) |
---|
290 | |
---|
291 | real,dimension(nx,ny) :: FT !< proportion of year with air temp below 2C |
---|
292 | real,dimension(nx,ny) :: FROTMX !< beta coefficient used in the remplimat routine |
---|
293 | real,dimension(nx,ny) :: FROTMY !< |
---|
294 | real,dimension(nx,ny) :: GHF !< geothermal heat flux J/m2/a 'o' |
---|
295 | real,dimension(nx,ny) :: GHF0 !< geothermal heat flux J/m2/a 'o' |
---|
296 | real,dimension(nx,ny) :: H !< ice thickness 'o' |
---|
297 | real,dimension(nx,ny) :: H0 !< initial ice thickness, must be initialized before init_iso |
---|
298 | |
---|
299 | ! dimensionnements qui etaient avant dans H_prescribe |
---|
300 | real,dimension(nx,ny) :: Hp !< H value if prescribed |
---|
301 | real,dimension(nx,ny) :: Hp0 !< H value if prescribed (reference value) |
---|
302 | real,dimension(nx,ny) :: Delta_H !< Delta_H value if prescribed |
---|
303 | integer,dimension(nx,ny) :: i_delta_H !< 1 if Delta_H is prescribed on this node, else 0 |
---|
304 | integer,dimension(nx,ny) :: i_Hp !< 1 if H is prescribed on this node, else 0 |
---|
305 | integer,dimension(nx,ny) :: i_Hp0 !< i_hp mask reference value does not change with time |
---|
306 | integer, dimension(nx,ny) :: imx_diag !< masque pour eq elliptique |
---|
307 | integer, dimension(nx,ny) :: imy_diag !< masque pour eq elliptique |
---|
308 | integer,dimension(nx,ny) :: MK_gl0 !< mask grounding line initial |
---|
309 | integer,dimension(nx,ny) :: MK_flot0 !< mask float initial |
---|
310 | |
---|
311 | |
---|
312 | real,dimension(nx,ny) :: H_sealev !< ice thickness for sea level calculation ! (present ice sheet) |
---|
313 | real,dimension(nx,ny) :: HDOT !< ice thickness derivee / t |
---|
314 | real,dimension(nx,ny) :: HDOTWATER |
---|
315 | real,dimension(nx,ny) :: H1 !< |
---|
316 | real,dimension(nx,ny) :: HMX !< ice thickness moy selon x '>' |
---|
317 | real,dimension(nx,ny) :: HMY !< ice thickness moy selon y '^' |
---|
318 | real,dimension(nx,ny) :: HDOTPREC !< |
---|
319 | real,dimension(nx,ny) :: HDOTRAP !< |
---|
320 | |
---|
321 | real,dimension(nx,ny) :: KOND !< basale hydro. conductivity 'o' |
---|
322 | real,dimension(nx,ny) :: PDD !< Positive degree day |
---|
323 | real,dimension(nx,ny) :: PRECIP !< precipitation |
---|
324 | real,dimension(nx,ny) :: PRECIP0 !< initial precipitation (used in 'heminord') |
---|
325 | real,dimension(nx,ny) :: PHID !< flux de chaleur lie a la deformation et glissement basal |
---|
326 | real,dimension(nx,ny) :: chalgliss_maj !< chaleur de glissement seulement |
---|
327 | real,dimension(nx,ny) :: PWATER !< basal water pressure |
---|
328 | real,dimension(nx,ny) :: pgx,pgy !< hydro. potential gradient / x '>' and / y '^' |
---|
329 | real,dimension(nx,ny) :: phiWx,phiWy !< flux d'eau sous glaciaire / x '>' and / y '^' |
---|
330 | real,dimension(nx,ny) :: NEFFMX !< pression effective '>' |
---|
331 | real,dimension(nx,ny) :: NEFFMY !< pression effective '^' |
---|
332 | real,dimension(nx,ny) :: TOBMX !< cisaillement basal '>' |
---|
333 | real,dimension(nx,ny) :: TOBMY !< cisaillement basal '^' |
---|
334 | real,dimension(nx,ny) :: SW !< for bedrock isostasy |
---|
335 | real,dimension(nx,ny) :: S !< altitude of ice sheet surface |
---|
336 | real,dimension(nx,ny) :: S_sealev !< altitude of ice sheet surface for sea |
---|
337 | !< level calculation (present ice sheet) |
---|
338 | real,dimension(nx,ny) :: SLOPE !< slope 'o' |
---|
339 | real,dimension(nx,ny) :: SDX !< slope derivee / x '>' |
---|
340 | real,dimension(nx,ny) :: SDY !< slope derivee / y '^' |
---|
341 | real,dimension(nx,ny) :: SDXMY !< slope selon x moy selon y '^' remplace SDMX |
---|
342 | real,dimension(nx,ny) :: SDYMX !< slope selon y moy selon x '>' remplace SDMY |
---|
343 | real,dimension(nx,ny) :: SLOPE2mx !< = Sdx**2 + Sdymx**2 '>' |
---|
344 | real,dimension(nx,ny) :: SLOPE2my !< = Sdy**2 + Sdxmy**2 '^' |
---|
345 | real,dimension(nx,ny) :: S0 !< altitude actuelle de la surface |
---|
346 | real,dimension(nx,ny) :: slv !< niveau de flottaison (sealevel et lakes) |
---|
347 | real,dimension(nx,ny) :: TJULY !< Ground air temperature July |
---|
348 | real,dimension(nx,ny) :: TANN !< Ground air temperature annual |
---|
349 | real,dimension(nx,ny,12) :: Tmois !< Ground air temperature monthly |
---|
350 | real,dimension(nx,ny) :: TSHELF !< temperature des shelfs pour viscosite |
---|
351 | real,dimension(nx,ny) :: TJ0 !< initial air temperature at sea level July |
---|
352 | ! real,dimension(nx,ny) :: TA0 !< initial air temperature at sea level annual |
---|
353 | real,dimension(nx,ny) :: TAUB !< basal shear stress (for output) |
---|
354 | real,dimension(nx,ny) :: TAUSHELF !< effective stress in ice shelves (vertical av.) |
---|
355 | real,dimension(nx,ny) :: TS !< surface ice temperature 'o' |
---|
356 | real,dimension(nx,ny) :: TB !< basal ice temperature 'o' |
---|
357 | real,dimension(nx,ny) :: TG !< degrees above melting point at the base |
---|
358 | real,dimension(nx,ny) :: TBDOT !< variation in time of basal temperature |
---|
359 | real,dimension(nx,ny) :: UZK !< vertical velocity at the ice surface (kinematic boundary) |
---|
360 | real,dimension(nx,ny) :: UXBAR !< vertically integrated velocity '>' |
---|
361 | real,dimension(nx,ny) :: UYBAR !< vertically integrated velocity '^' |
---|
362 | real,dimension(nx,ny) :: uxdef !< partie due a la deformation |
---|
363 | real,dimension(nx,ny) :: uydef !< partie due a la deformation |
---|
364 | real,dimension(nx,ny) :: uxflgz !< vitesse stream-shelf |
---|
365 | real,dimension(nx,ny) :: uyflgz !< vitesse stream-shelf |
---|
366 | real,dimension(nx,ny) :: UBX !< basal sliding '>' |
---|
367 | real,dimension(nx,ny) :: UBY !< basal sliding '^' |
---|
368 | real,dimension(nx,ny) :: UZSDOT !< variation in time of surface vertical velocity |
---|
369 | real,dimension(nx,ny) :: UX1 !< |
---|
370 | real,dimension(nx,ny) :: UY1 !< |
---|
371 | real,dimension(nx,ny) :: VBAR !< depth averaged velocity magnitude (for output) |
---|
372 | !!!!!!!real,dimension(nx,ny) :: VSDOT ! variation in time of surface velocity magnitude |
---|
373 | real,dimension(nx,ny) :: W0 !< enfoncement du socle a l'equilibre isostatique |
---|
374 | real,dimension(nx,ny) :: W1 !< enfoncement du socle courant |
---|
375 | real,dimension(nx,ny) :: XX !< work array |
---|
376 | real,dimension(nx,ny) :: XLONG !< longitude |
---|
377 | real,dimension(nx,ny) :: YLAT !< latitude |
---|
378 | real,dimension(nx,ny) :: xcc ! grille Xkm |
---|
379 | real,dimension(nx,ny) :: ycc ! grille Ykm |
---|
380 | ! real,dimension(nx,ny) :: ZS !< surface topography above sea level |
---|
381 | real,dimension(nx,ny) :: ETABAR !< |
---|
382 | real,dimension(nx,ny) :: BSOC !< altitude (ou bathymetrie) du socle 'o' |
---|
383 | real,dimension(nx,ny) :: PVI !< viscosite ice shelf |
---|
384 | real,dimension(nx,ny) :: PVM !< viscosite ice shelf |
---|
385 | real,dimension(nx,ny) :: ramollo !< pour ramollir les ice shelves |
---|
386 | real,dimension(nx,ny) :: Abar !< coefficient de Glen integre |
---|
387 | real,dimension(nx,ny) :: OLDU !< pour cptr et dans diagnoshelf |
---|
388 | real,dimension(nx,ny) :: Uiter_centre !< pour iterations equation diagnostique |
---|
389 | real,dimension(nx,ny) :: tabtest !< tableau de travail |
---|
390 | |
---|
391 | |
---|
392 | ! nouveaux tableaux (aout 2006) pour dragging-sliding |
---|
393 | ! ces tableaux peuvent avoir des roles differents selon les modules de dragging |
---|
394 | ! et de sliding utilises. Ils servent a faire passer des contraintes geographiques entre |
---|
395 | ! le main et les rounines de sliding-dragging. |
---|
396 | |
---|
397 | integer,dimension(nx,ny) :: mstream_mx !< masque stream selon x |
---|
398 | integer,dimension(nx,ny) :: mstream_my !< masque stream selon y |
---|
399 | integer,dimension(nx,ny) :: mstream !< masque stream sur les noeuds majeurs |
---|
400 | real,dimension(nx,ny) :: socle_cry !< courbure du socle, negatif -> vallees |
---|
401 | real,dimension(nx,ny) :: drag_mx !< coefficient pour tenir compte de variations |
---|
402 | real,dimension(nx,ny) :: drag_my !< geographiques eventuelles dans le basal drag |
---|
403 | |
---|
404 | integer,dimension(nx,ny) :: mslid_mx !< masque glissement selon x |
---|
405 | integer,dimension(nx,ny) :: mslid_my !< masque glissement selon y |
---|
406 | real,dimension(nx,ny) :: slid_mx !< coefficient pour tenir compte de variations |
---|
407 | real,dimension(nx,ny) :: slid_my !< geographiques eventuelles dans le glissement |
---|
408 | |
---|
409 | |
---|
410 | |
---|
411 | !REAL,dimension(-NL:NL,-NL:NL) :: WE ! enfoncement du socle autour d'une charge unitaire |
---|
412 | |
---|
413 | |
---|
414 | |
---|
415 | ! ********** common des tableaux a 3 dimensions ***** |
---|
416 | !real,dimension(:,:,:,:),allocatable :: BTT !< deformation parameter for flow law |
---|
417 | |
---|
418 | !real,dimension(:,:,:,:),allocatable :: SA ! effet temperature sur la deformation (loi n=3) |
---|
419 | !real,dimension(:,:,:,:),allocatable :: S2A ! effet integre sur l'epaisseur temperature sur la deformation (loi n=3) |
---|
420 | !real,dimension(:,:,:,:),allocatable :: SA_mx ! effet temperature sur la deformation (loi n=3) |
---|
421 | !real,dimension(:,:,:,:),allocatable :: S2A_mx ! effet integre sur l'epaisseur temperature sur la deformation (loi n=3) |
---|
422 | |
---|
423 | !real,dimension(:,:,:,:),allocatable :: SA_my ! effet temperature sur la deformation (loi n=3) |
---|
424 | !real,dimension(:,:,:,:),allocatable :: S2A_my ! effet integre sur l'epaisseur temperature sur la deformation (loi n=3) |
---|
425 | real,dimension(nx,ny,nz) :: SUX !< |
---|
426 | real,dimension(nx,ny,nz) :: SUY !< |
---|
427 | real,dimension(nx,ny,nz) :: TPMP !< pressure melting point temperature in ice sheet 'o' |
---|
428 | real,dimension(nx,ny,nz) :: UX !< ice velocity '>' |
---|
429 | real,dimension(nx,ny,nz) :: UY !< ice velocity '^' |
---|
430 | real,dimension(nx,ny,nz) :: UZR !< ice velocity and derivatives |
---|
431 | real,dimension(nx,ny,nz) :: ETA !< |
---|
432 | |
---|
433 | |
---|
434 | ! tableaux qui permettent de faire facilement des sorties debug via ncdf |
---|
435 | |
---|
436 | real,dimension(nx,ny) :: debug_2D |
---|
437 | real,dimension(nx,ny,220) :: debug_3D |
---|
438 | |
---|
439 | ! tableaux qui permettent de faire des sorties netcdf avec les variables qui ne sont pas globales |
---|
440 | ! real,dimension(nx,ny,199) :: netcdf_glob ! pas l'air utilise |
---|
441 | |
---|
442 | |
---|
443 | !real,dimension(NX,NY,NPL) :: XXX !< work array, for temperature and output |
---|
444 | |
---|
445 | real,dimension(nx,ny,nz+nzm) :: T !< temperature in ice and mantle 'o' |
---|
446 | |
---|
447 | |
---|
448 | |
---|
449 | |
---|
450 | !======================= common pour l'equilibrage en temperature |
---|
451 | !real,dimension(NX,NY) :: Uxbilan ! vitesse de bilan '>' |
---|
452 | !real,dimension(NX,NY) :: Uybilan ! vitesse de bilan '^' |
---|
453 | |
---|
454 | |
---|
455 | |
---|
456 | ! ===================== Booleens ======================================== |
---|
457 | logical :: SHELFY !< |
---|
458 | logical :: BOOST !< |
---|
459 | logical :: MARINE !< |
---|
460 | logical :: appel_new_flot !< pour appeler la routine new_flot |
---|
461 | |
---|
462 | logical,dimension(nx,ny) :: FLOT !< vrai si flottant (test d'archimede) 'o' |
---|
463 | logical,dimension(nx,ny) :: FLOTMX !< if flotting (one neighboord floats) '>' |
---|
464 | logical,dimension(nx,ny) :: FLOTMY !< if flotting (one neighboord floats) '^' |
---|
465 | logical,dimension(nx,ny) :: FRONT_RESC!< comme front (mais boolean) pour remplimat rescue |
---|
466 | logical,dimension(nx,ny) :: FBM !< |
---|
467 | logical,dimension(nx,ny) :: OKUMAT !< |
---|
468 | logical,dimension(nx,ny) :: OKVMAT !< |
---|
469 | logical,dimension(nx,ny) :: GRZONE !< |
---|
470 | logical,dimension(nx,ny) :: GZMX !< point stream ">" |
---|
471 | logical,dimension(nx,ny) :: GZMY !< point stream "^" |
---|
472 | logical,dimension(nx,ny) :: FLGZMX !< points stream ou shelf ou ile (equ. ellpt) ">" |
---|
473 | logical,dimension(nx,ny) :: FLGZMY !< points stream ou shelf ou ile (equ ellipt) "^" |
---|
474 | logical,dimension(nx,ny) :: ILEMX !< points ile ">" |
---|
475 | logical,dimension(nx,ny) :: ILEMY !< points ile "^" |
---|
476 | logical,dimension(nx,ny) :: cotemx !< points cotiers ">" |
---|
477 | logical,dimension(nx,ny) :: cotemy !< points cotiers "^" |
---|
478 | logical,dimension(nx,ny) :: fleuvemx !< actual grounded stream |
---|
479 | logical,dimension(nx,ny) :: fleuvemy !< actual grounded stream |
---|
480 | logical,dimension(nx,ny) :: isolx !< designe un point sans voisin sur ses faces x |
---|
481 | logical,dimension(nx,ny) :: isoly !< designe un point sans voisin sur ses faces y |
---|
482 | logical,dimension(nx,ny) :: new_flot_point !< pour signaler les points qui se mettent a flotter entre 2 pas de temps dtt |
---|
483 | logical,dimension(nx,ny) :: new_flotmx !< pour signaler les points qui deviennent flottantmx entre 2 dtt |
---|
484 | logical,dimension(nx,ny) :: new_flotmy !< pour signaler les points qui deviennent flottantmy entre 2 dtt |
---|
485 | logical,dimension(nx,ny) :: flot_marais !< afq -- vrai si flottant et coince entre points poses 'o' |
---|
486 | logical,dimension(nx,ny) :: iceberg !< point iceberg |
---|
487 | |
---|
488 | ! ===================== File id ========================================= |
---|
489 | integer :: num_param = 10 !< Id of param_list.dat |
---|
490 | integer :: num_coupe = 11 !< Id of coupe.ijz |
---|
491 | integer :: num_vitbil = 12 !< Id of vitbil |
---|
492 | integer :: num_newton = 15 !< Id of corrextion-newton.res |
---|
493 | integer :: num_file1 = 18 !< Id of |
---|
494 | integer :: num_file2 = 19 !< Id of |
---|
495 | integer :: num_forc = 20 !< Id of forcage |
---|
496 | integer :: num_dat = 21 !< Id of dat |
---|
497 | integer :: num_cptr = 30 !< Id of cptr |
---|
498 | integer :: num_debug = 33 !< Id of ritz debug |
---|
499 | integer :: num_ritz = 35 !< Id of ritz |
---|
500 | integer :: num_templlib = 36 !< Id of ritz templlib |
---|
501 | integer :: num_rep_42 = 42 !< Id of reponse |
---|
502 | integer :: num_trace = 81 !< Id of trace-reboot |
---|
503 | integer :: num_file = 88 !< Id of |
---|
504 | integer :: num_ts_ritz = 89 |
---|
505 | integer :: num_kelvin = 90 !< Id of kelvin.res |
---|
506 | integer :: num_phil = 91 |
---|
507 | integer :: num_templin = 98 !< Id of templin.res |
---|
508 | integer :: num_sealevel = 110 |
---|
509 | integer :: num_mk_vitbil = 122 !< Id of masque_vitbil |
---|
510 | integer :: num_ic_vo = 171 !< vostok |
---|
511 | integer :: num_ic_by = 172 !< byrd |
---|
512 | integer :: num_ic_dm = 173 !< dml |
---|
513 | integer :: num_ic_dc = 174 !< dome C |
---|
514 | integer :: num_ic_df = 175 !< dome Fuji |
---|
515 | integer :: num_file3 = 993 |
---|
516 | integer :: num_file4 = 995 !< Id of |
---|
517 | integer :: num_coor = 2004 !< Id of coord-Ant-40km |
---|
518 | ! integer :: num_tracebug !< numero de l'unite itracebug |
---|
519 | |
---|
520 | ! Variables communes au main et aux subroutines du step |
---|
521 | logical :: base_froide |
---|
522 | logical :: base_temp |
---|
523 | real :: timemax |
---|
524 | |
---|
525 | end module MODULE3D_PHY |
---|