/[MITgcm]/MITgcm/model/inc/PARAMS.h
ViewVC logotype

Contents of /MITgcm/model/inc/PARAMS.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.44 - (show annotations) (download)
Wed Jun 21 19:21:44 2000 UTC (23 years, 10 months ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint29, checkpoint30
Changes since 1.43: +7 -14 lines
File MIME type: text/plain
Moved GM/Redi parameters to private common block.
Added a "package" common block which ultimately should be elsewhere.

1 C $Header: /u/gcmpack/models/MITgcmUV/model/inc/PARAMS.h,v 1.43 2000/04/05 17:52:16 adcroft Exp $
2 C
3 C /==========================================================\
4 C | PARAMS.h |
5 C | o Header file defining model "parameters". |
6 C |==========================================================|
7 C | The values from the model standard input file are |
8 C | stored into the variables held here. Notes describing |
9 C | the parameters can also be found here. |
10 C \==========================================================/
11
12 C Macros for special grid options
13 #include "PARAMS_MACROS.h"
14
15 C-- Contants
16 C Useful physical values
17 Real*8 PI
18 PARAMETER ( PI = 3.14159265358979323844D0 )
19 Real*8 deg2rad
20 PARAMETER ( deg2rad = 2.D0*PI/360.D0 )
21
22 C Symbolic values
23 C precXXXX - Used to indicate what precision to use for
24 C dumping model state.
25 INTEGER precFloat32
26 PARAMETER ( precFloat32 = 32 )
27 INTEGER precFloat64
28 PARAMETER ( precFloat64 = 64 )
29 C UNSET_xxx - Used to indicate variables that have not been given a value
30 Real*8 UNSET_FLOAT8
31 PARAMETER ( UNSET_FLOAT8 = 1.234567D5 )
32 Real*4 UNSET_FLOAT4
33 PARAMETER ( UNSET_FLOAT4 = 1.234567E5 )
34 _RL UNSET_RL
35 PARAMETER ( UNSET_RL = 1.234567D5 )
36 _RS UNSET_RS
37 PARAMETER ( UNSET_RS = 1.234567E5 )
38 INTEGER UNSET_I
39 PARAMETER ( UNSET_I = 123456789 )
40
41 C Checkpoint data
42 INTEGER maxNoChkptLev
43 PARAMETER ( maxNoChkptLev = 2 )
44
45 C-- COMMON /PARM_C/ Character valued parameters used by the model.
46 C checkPtSuff - List of checkpoint file suffices
47 C bathyFile - File containing bathymetry. If not defined bathymetry
48 C is taken from inline function.
49 C hydrogThetaFile - File containing initial hydrographic data for potential
50 C temperature.
51 C hydrogSaltFile - File containing initial hydrographic data for salinity.
52 C zonalWindFile - File containing zonal wind data
53 C meridWindFile - File containing meridional wind data
54 C thetaClimFile - File containing theta climataology used
55 C in relaxation term -lambda(theta-theta*)
56 C saltClimFile - File containing salt climataology used
57 C in relaxation term -lambda(salt-salt*)
58 C surfQfile - File containing surface heat flux
59 C EmPmRfile - File containing surface fresh water flux
60 C buoyancyRelation - Flag used to indicate which relation to use to
61 C get buoyancy.
62 COMMON /PARM_C/ checkPtSuff,
63 & bathyFile, hydrogThetaFile, hydrogSaltFile,
64 & zonalWindFile, meridWindFile, thetaClimFile,
65 & saltClimFile, buoyancyRelation,
66 & EmPmRfile, surfQfile,
67 & uVelInitFile, vVelInitFile, pSurfInitFile
68 CHARACTER*(5) checkPtSuff(maxNoChkptLev)
69 CHARACTER*(MAX_LEN_FNAM) bathyFile
70 CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile
71 CHARACTER*(MAX_LEN_FNAM) hydrogSaltFile
72 CHARACTER*(MAX_LEN_FNAM) zonalWindFile
73 CHARACTER*(MAX_LEN_FNAM) meridWindFile
74 CHARACTER*(MAX_LEN_FNAM) thetaClimFile
75 CHARACTER*(MAX_LEN_FNAM) saltClimFile
76 CHARACTER*(MAX_LEN_FNAM) surfQfile
77 CHARACTER*(MAX_LEN_FNAM) EmPmRfile
78 CHARACTER*(MAX_LEN_FNAM) buoyancyRelation
79 CHARACTER*(MAX_LEN_FNAM) uVelInitFile
80 CHARACTER*(MAX_LEN_FNAM) vVelInitFile
81 CHARACTER*(MAX_LEN_FNAM) pSurfInitFile
82
83 C-- COMMON /PARM_I/ Integer valued parameters used by the model.
84 C cg2dMaxIters - Maximum number of iterations in the
85 C two-dimensional con. grad solver.
86 C cg2dChkResFreq - Frequency with which to check residual
87 C in con. grad solver.
88 C cg3dMaxIters - Maximum number of iterations in the
89 C three-dimensional con. grad solver.
90 C cg3dChkResFreq - Frequency with which to check residual
91 C in con. grad solver.
92 C nIter0 - Start time-step number of for this run
93 C nTimeSteps - Number of timesteps to execute
94 C numStepsPerPickup - For offline setup. Frequency of pickup
95 C of flow fields.
96 C writeStatePrec - Precision used for writing model state.
97 C writeBinaryPrec - Precision used for writing binary files
98 C readBinaryPrec - Precision used for reading binary files
99 C nCheckLev - Holds current checkpoint level
100 C nShap - "Order" of shapiro filter to apply to
101 C model prognositic fields.
102 C nShap == 1 => del2
103 C nShap == 2 => del4
104 C nShap == 3 => del6
105 C etc...
106
107 COMMON /PARM_I/
108 & cg2dMaxIters,
109 & cg2dChkResFreq,
110 & cg3dMaxIters,
111 & cg3dChkResFreq,
112 & nIter0, nTimeSteps, nEndIter,
113 & numStepsPerPickup,
114 & writeStatePrec, nCheckLev,
115 & writeBinaryPrec, readBinaryPrec,
116 & nShap
117 INTEGER cg2dMaxIters
118 INTEGER cg2dChkResFreq
119 INTEGER cg3dMaxIters
120 INTEGER cg3dChkResFreq
121 INTEGER nIter0
122 INTEGER nTimeSteps
123 INTEGER nEndIter
124 INTEGER numStepsPerPickup
125 INTEGER writeStatePrec
126 INTEGER writeBinaryPrec
127 INTEGER readBinaryPrec
128 INTEGER nCheckLev
129 INTEGER nShap
130
131 C-- COMMON /PARM_L/ Logical valued parameters used by the model.
132 C usingCartesianGrid - If TRUE grid generation will be in a cartesian
133 C coordinate frame.
134 C usingSphericalPolarGrid - If TRUE grid generation will be in a
135 C spherical polar frame.
136 C no_slip_sides - Impose "no-slip" at lateral boundaries.
137 C no_slip_bottom- Impose "no-slip" at bottom boundary.
138 C momViscosity - Flag which turns momentum friction terms on and off.
139 C momAdvection - Flag which turns advection of momentum on and off.
140 C momForcing - Flag which turns external forcing of momentum on
141 C and off.
142 C momPressureForcing - Flag which turns pressure term in momentum equation
143 C on and off.
144 C metricTerms - Flag which turns metric terms on or off.
145 C usingSphericalPolarMTerms - If TRUE use spherical polar metric terms.
146 C useCoriolis - Flag which turns the coriolis terms on and off.
147 C tempDiffusion - Flag which turns diffusion of temperature on
148 C and off.
149 C tempAdvection - Flag which turns advection of temperature on
150 C and off.
151 C tempForcing - Flag which turns external forcing of temperature on
152 C and off.
153 C saltDiffusion - Flag which turns diffusion of salinit on
154 C and off.
155 C saltAdvection - Flag which turns advection of salinit on
156 C and off.
157 C saltForcing - Flag which turns external forcing of salinit on
158 C and off.
159 C implicitFreeSurface - Set to true to use implcit free surface
160 C rigidLid - Set to true to use rigid lid
161 C momStepping - Turns momentum equation time-stepping off
162 C tempStepping - Turns temperature equation time-stepping off
163 C saltStepping - Turns salinity equation time-stepping off
164 C useConstantF - Coriolis parameter set to f0
165 C useBetaPlaneF - Coriolis parameter set to f0 + beta.y
166 C useSphereF - Coriolis parameter set to 2.omega.sin(phi)
167 C implicitDiffusion - Turns implicit vertical diffusion on
168 C implicitViscosity - Turns implicit vertical viscosity on
169 C doThetaClimRelax - Set true if relaxation to temperature
170 C climatology is required.
171 C doSaltClimRelax - Set true if relaxation to salinity
172 C climatology is required.
173 C periodicExternalForcing - Set true if forcing is time-dependant
174 C usingPCoords - Set to indicate that we are working in pressure
175 C coords.
176 C usingZCoords - Set to indicate that we are working in height
177 C coords.
178 C openBoundaries - Using open-boundaries
179 C nonHydrostatic - Using non-hydrostatic terms
180 C globalFiles - Selects between "global" and "tiled" files
181 C allowFreezing - Allows water to freeze and form ice
182 COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid,
183 & no_slip_sides,no_slip_bottom,
184 & momViscosity, momAdvection, momForcing, useCoriolis,
185 & momPressureForcing,tempDiffusion, tempAdvection, tempForcing,
186 & saltDiffusion, saltAdvection, saltForcing,
187 & implicitFreeSurface, rigidLid,
188 & momStepping, tempStepping, saltStepping,
189 & metricTerms, usingSphericalPolarMTerms,
190 & useConstantF, useBetaPlaneF, useSphereF,
191 & implicitDiffusion, implicitViscosity,
192 & doThetaClimRelax, doSaltClimRelax,
193 & periodicExternalForcing, usingPCoords, usingZCoords,
194 & openBoundaries, nonHydrostatic, globalFiles,
195 & allowFreezing
196 LOGICAL usingCartesianGrid
197 LOGICAL usingSphericalPolarGrid
198 LOGICAL usingSphericalPolarMTerms
199 LOGICAL no_slip_sides
200 LOGICAL no_slip_bottom
201 LOGICAL momViscosity
202 LOGICAL momAdvection
203 LOGICAL momForcing
204 LOGICAL momPressureForcing
205 LOGICAL useCoriolis
206 LOGICAL tempDiffusion
207 LOGICAL tempAdvection
208 LOGICAL tempForcing
209 LOGICAL saltDiffusion
210 LOGICAL saltAdvection
211 LOGICAL saltForcing
212 LOGICAL implicitFreeSurface
213 LOGICAL rigidLid
214 LOGICAL momStepping
215 LOGICAL tempStepping
216 LOGICAL saltStepping
217 LOGICAL metricTerms
218 LOGICAL useConstantF
219 LOGICAL useBetaPlaneF
220 LOGICAL useSphereF
221 LOGICAL implicitDiffusion
222 LOGICAL implicitViscosity
223 LOGICAL doThetaClimRelax
224 LOGICAL doSaltClimRelax
225 LOGICAL periodicExternalForcing
226 LOGICAL usingPCoords
227 LOGICAL usingZCoords
228 LOGICAL openBoundaries
229 LOGICAL nonHydrostatic
230 LOGICAL globalFiles
231 LOGICAL allowFreezing
232
233 C-- COMMON /PARM_R/ "Real" valued parameters used by the model.
234 C cg2dTargetResidual
235 C - Target residual for cg2d solver.
236 C cg3dTargetResidual
237 C - Target residual for cg3d solver.
238 C cg2dpcOffDFac - Averaging weight for preconditioner off-diagonal.
239 C Note. 20th May 1998
240 C I made a weird discovery! In the model paper we argue
241 C for the form of the preconditioner used here ( see
242 C A Finite-volume, Incompressible Navier-Stokes Model
243 C ...., Marshall et. al ). The algebra gives a simple
244 C 0.5 factor for the averaging of ac and aCw to get a
245 C symmettric pre-conditioner. By using a factor of 0.51
246 C i.e. scaling the off-diagonal terms in the
247 C preconditioner down slightly I managed to get the
248 C number of iterations for convergence in a test case to
249 C drop form 192 -> 134! Need to investigate this further!
250 C For now I have introduced a parameter cg2dpcOffDFac which
251 C defaults to 0.51 but can be set at runtime.
252 C delP - Vertical grid spacing ( Pa ).
253 C delZ - Vertical grid spacing ( m ).
254 C delR - Vertical grid spacing ( units of r ).
255 C delX - Separation between cell faces (m) or (deg), depending
256 C delY on input flags.
257 C gravity - Accel. due to gravity ( m/s^2 )
258 C recip_gravity and its inverse
259 C gBaro - Accel. due to gravity used in barotropic equation ( m/s^2 )
260 C ronil - Reference density
261 C rhoConst - Vertically constant reference density
262 C startTime - Start time for model ( s )
263 C phiMin - Latitude of southern most cell face.
264 C thetaMin - Longitude of western most cell face (this
265 C is an "inert" parameter but it is included
266 C to make geographical references simple.)
267 C rSphere - Radius of sphere for a spherical polar grid ( m ).
268 C recip_RSphere - Reciprocal radius of sphere ( m ).
269 C f0 - Reference coriolis parameter ( 1/s )
270 C ( Southern edge f for beta plane )
271 C beta - df/dy ( s^-1.m^-1 )
272 C omega - Angular velocity ( rad/s )
273 C viscAh - Eddy viscosity coeff. for mixing of
274 C momentum laterally ( m^2/s )
275 C viscAz - Eddy viscosity coeff. for mixing of
276 C momentum vertically ( m^2/s )
277 C viscAp - Eddy viscosity coeff. for mixing of
278 C momentum vertically ( Pa^2/s )
279 C viscAr - Eddy viscosity coeff. for mixing of
280 C momentum vertically ( units of r^2/s )
281 C viscA4 - Biharmonic viscosity coeff. for mixing of
282 C momentum laterally ( m^4/s )
283 C diffKhT - Laplacian diffusion coeff. for mixing of
284 C heat laterally ( m^2/s )
285 C diffKzT - Laplacian diffusion coeff. for mixing of
286 C heat vertically ( m^2/s )
287 C diffKpT - Laplacian diffusion coeff. for mixing of
288 C heat vertically ( Pa^2/s )
289 C diffKrT - Laplacian diffusion coeff. for mixing of
290 C heat vertically ( units of r^2/s )
291 C diffK4T - Biharmonic diffusion coeff. for mixing of
292 C heat laterally ( m^4/s )
293 C diffKhS - Laplacian diffusion coeff. for mixing of
294 C salt laterally ( m^2/s )
295 C diffKzS - Laplacian diffusion coeff. for mixing of
296 C salt vertically ( m^2/s )
297 C diffKpS - Laplacian diffusion coeff. for mixing of
298 C salt vertically ( Pa^2/s )
299 C diffKrS - Laplacian diffusion coeff. for mixing of
300 C salt vertically ( units of r^2/s )
301 C diffK4S - Biharmonic diffusion coeff. for mixing of
302 C salt laterally ( m^4/s )
303 C deltaT - Default timestep ( s )
304 C deltaTClock - Timestep used as model "clock". This determines the
305 C IO frequencies and is used in tagging output. It can
306 C be totally different to the dynamical time. Typically
307 C it will be the deep-water timestep for accelerated runs.
308 C Frequency of checkpointing and dumping of the model state
309 C are referenced to this clock. ( s )
310 C deltaTMom - Timestep for momemtum equations ( s )
311 C deltaTtracer - Timestep for tracer equations ( s )
312 C freesurfFac - Parameter to turn implicit free surface term on or off
313 C freesurfac = 1. uses implicit free surface
314 C freesurfac = 0. uses rigid lid
315 C hFacMin - Minimum fraction size of a cell (affects hFacC etc...)
316 C hFacMinDz - Minimum dimesional size of a cell (affects hFacC etc..., m)
317 C hFacMinDp - Minimum dimesional size of a cell (affects hFacC etc..., Pa)
318 C hFacMinDr - Minimum dimesional size of a cell (affects hFacC etc..., units of r)
319 C tauCD - CD scheme coupling timescale ( 1/s )
320 C rCD - CD scheme normalised coupling parameter ( 0-1 )
321 C startTime - Starting time for this integration ( s ).
322 C endTime - Ending time for this integration ( s ).
323 C chkPtFreq - Frequency of rolling check pointing ( s ).
324 C pChkPtFreq - Frequency of permanent check pointing ( s ).
325 C dumpFreq - Frequency with which model state is written to
326 C post-processing files ( s ).
327 C afFacMom - Advection of momentum term tracer parameter
328 C vfFacMom - Momentum viscosity tracer parameter
329 C pfFacMom - Momentum pressure forcing tracer parameter
330 C cfFacMom - Coriolis term tracer parameter
331 C foFacMom - Momentum forcing tracer parameter
332 C mtFacMom - Metric terms tracer parameter
333 C cosPower - Power of cosine of latitude to multiply viscosity
334 C cAdjFreq - Frequency of convective adjustment
335 C
336 C taveFreq - Frequency with which time-averaged model state is written to
337 C post-processing files ( s ).
338 C tauThetaClimRelax - Relaxation to climatology time scale ( s ).
339 C lambdaThetaClimRelax - Inverse time scale for relaxation ( 1/s ).
340 C tauSaltClimRelax - Relaxation to climatology time scale ( s ).
341 C lambdaSaltClimRelax - Inverse time scale for relaxation ( 1/s ).
342 C externForcingPeriod - Is the period of which forcing varies (eg. 1 month)
343 C externForcingCycle - Is the repeat time of the forcing (eg. 1 year)
344 C (note: externForcingCycle must be an integer
345 C number times externForcingPeriod)
346 C horiVertRatio - Ratio on units in vertical to units in horizontal.
347 C recip_horiVertRatio ( 1 if horiz in m and vertical in m ).
348 C ( g*rho if horiz in m and vertical in Pa ).
349 C latFFTFiltLo - Low latitude for FFT filtering of latitude
350 C circles ( see filter*.F )
351 COMMON /PARM_R/ cg2dTargetResidual, cg2dpcOffDFac,
352 & cg3dTargetResidual,
353 & delP, delZ, delR, delX, delY,
354 & deltaT,deltaTmom, deltaTtracer, deltaTClock,abeps, startTime,
355 & phiMin, thetaMin, rSphere, recip_RSphere, f0, fCori, beta,
356 & viscAh, viscAz, viscA4, viscAr,
357 & diffKhT, diffKzT, diffK4T, diffKrT,
358 & diffKhS, diffKzS, diffK4S, diffKrS,
359 & delT, tauCD, rCD, freeSurfFac, hFacMin, hFacMinDz,
360 & gravity, recip_Gravity, gBaro, rhonil, recip_rhonil,
361 & recip_rhoConst, rhoConst, tRef, sRef,
362 & endTime, chkPtFreq, pchkPtFreq, dumpFreq, taveFreq,
363 & afFacMom, vfFacMom, pfFacMom, cfFacMom, foFacMom, mtFacMom,
364 & cosPower,
365 & cAdjFreq, omega, tauThetaClimRelax, lambdaThetaClimRelax,
366 & tauSaltClimRelax, lambdaSaltClimRelax,
367 & externForcingCycle, externForcingPeriod,
368 & viscAp, diffKpT, diffKpS, hFacMinDr, hFacMinDp,
369 & theta_S, specVol_S, horiVertRatio, recip_horiVertRatio,
370 & latFFTFiltLo, ivdc_kappa
371
372 _RL cg2dTargetResidual
373 _RL cg3dTargetResidual
374 _RL cg2dpcOffDFac
375 _RL delZ(Nr)
376 _RL delP(Nr)
377 _RL delR(Nr)
378 _RL delX(Nx)
379 _RL delY(Ny)
380 _RL deltaT
381 _RL deltaTClock
382 _RL deltaTmom
383 _RL deltaTtracer
384 _RL abeps
385 _RL phiMin
386 _RL thetaMin
387 _RL rSphere
388 _RL recip_RSphere
389 _RL f0
390 _RL freeSurfFac
391 _RL hFacMin
392 _RL hFacMinDz
393 _RL hFacMinDp
394 _RL hFacMinDr
395 _RL beta
396 _RL viscAh
397 _RL viscAz
398 _RL viscAp
399 _RL viscAr
400 _RL viscA4
401 _RL diffKhT
402 _RL diffKrT
403 _RL diffKzT
404 _RL diffKpT
405 _RL diffK4T
406 _RL diffKhS
407 _RL diffKrS
408 _RL diffKzS
409 _RL diffKpS
410 _RL diffK4S
411 _RL delt
412 _RL tauCD
413 _RL rCD
414 _RL gravity
415 _RL recip_gravity
416 _RL gBaro
417 _RL rhonil
418 _RL recip_rhonil
419 _RL rhoConst
420 _RL recip_rhoConst
421 _RL specVol_S(Nr)
422 _RL tRef(Nr)
423 _RL theta_S(Nr)
424 _RL sRef(Nr)
425 _RS Fcori(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
426 _RL startTime
427 _RL endTime
428 _RL chkPtFreq
429 _RL pChkPtFreq
430 _RL dumpFreq
431 _RL taveFreq
432 _RL afFacMom
433 _RL vfFacMom
434 _RL pfFacMom
435 _RL cfFacMom
436 _RL foFacMom
437 _RL mTFacMom
438 _RL cosPower
439 _RL cAdjFreq
440 _RL omega
441 _RL tauThetaClimRelax
442 _RL lambdaThetaClimRelax
443 _RL tauSaltClimRelax
444 _RL lambdaSaltClimRelax
445 _RL externForcingCycle
446 _RL externForcingPeriod
447 _RL horiVertRatio
448 _RL recip_horiVertRatio
449 _RL latFFTFiltLo
450 _RL ivdc_kappa
451
452 COMMON /PARM_A/ HeatCapacity_Cp,recip_Cp,
453 & Lamba_theta
454 _RL HeatCapacity_Cp
455 _RL Lamba_theta
456 _RL recip_Cp
457
458 C Equation of State (polynomial coeffients)
459 COMMON /PARM_EOS_NL/ eosC,eosSig0,eosRefT,eosRefS
460 _RL eosC(9,Nr+1),eosSig0(Nr+1),eosRefT(Nr+1),eosRefS(Nr+1)
461 C Linear equation of state
462 C tAlpha - Linear EOS thermal expansion coefficient ( 1/degree ).
463 C sBeta - Linear EOS haline contraction coefficient.
464 COMMON /PARM_EOS_LIN/ tAlpha,sBeta,eosType
465 _RL tAlpha
466 _RL sBeta
467 character*(6) eosType
468
469 C These are input arrays (of integers) that contain the *absolute*
470 C computational index of an open-boundary (OB) point.
471 C A zero (0) element means there is no corresponding OB in that column/row.
472 C The computational coordinate refers to "tracer" cells.
473 C For a northern/southern OB, the OB V point is to the south/north.
474 C For an eastern/western OB, the OB U point is to the west/east.
475 C eg.
476 C OB_Jnorth(3)=34 means that:
477 C T( 3 ,34) is a an OB point
478 C U(3:4,34) is a an OB point
479 C V( 4 ,34) is a an OB point
480 C while
481 C OB_Jsouth(3)=1 means that:
482 C T( 3 ,1) is a an OB point
483 C U(3:4,1) is a an OB point
484 C V( 4 ,2) is a an OB point
485 C
486 C For convenience, negative values for Jnorth/Ieast refer to
487 C points relative to the Northern/Eastern edges of the model
488 C eg. OB_Jnorth(3)=-1 means that the point (3,Ny-1) is a northern O-B.
489 C
490 COMMON /PARM_OB/
491 & OB_Jnorth,OB_Jsouth,OB_Ieast,OB_Iwest
492 INTEGER OB_Jnorth(Nx)
493 INTEGER OB_Jsouth(Nx)
494 INTEGER OB_Ieast(Ny)
495 INTEGER OB_Iwest(Ny)
496
497 C Logical flags for selecting packages
498 LOGICAL use_KPPmixing
499 LOGICAL use_GMRedi
500 COMMON /PARM_PACKAGES/
501 & use_KPPmixing,use_GMRedi

  ViewVC Help
Powered by ViewVC 1.1.22