/[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.201 - (show annotations) (download)
Sat Apr 14 18:32:32 2007 UTC (17 years ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint59, checkpoint58y_post, checkpoint59a, checkpoint59b
Changes since 1.200: +9 -10 lines
File MIME type: text/plain
latitudinal dependence of Bryan and Lewis, 1979
fixed and reworked as per JM suggestions

1 C $Header: /u/gcmpack/MITgcm/model/inc/PARAMS.h,v 1.200 2007/04/11 00:00:47 dimitri Exp $
2 C $Name: $
3 C
4
5 CBOP
6 C !ROUTINE: PARAMS.h
7 C !INTERFACE:
8 C #include PARAMS.h
9
10 C !DESCRIPTION:
11 C Header file defining model "parameters". The values from the
12 C model standard input file are stored into the variables held
13 C here. Notes describing the parameters can also be found here.
14
15 CEOP
16
17 C Macros for special grid options
18 #include "PARAMS_MACROS.h"
19
20 C-- Contants
21 C Useful physical values
22 Real*8 PI
23 PARAMETER ( PI = 3.14159265358979323844D0 )
24 Real*8 deg2rad
25 PARAMETER ( deg2rad = 2.D0*PI/360.D0 )
26
27 C Symbolic values
28 C precXXXX :: Used to indicate what precision to use for
29 C dumping model state.
30 INTEGER precFloat32
31 PARAMETER ( precFloat32 = 32 )
32 INTEGER precFloat64
33 PARAMETER ( precFloat64 = 64 )
34 C UNSET_xxx :: Used to indicate variables that have not been given a value
35 Real*8 UNSET_FLOAT8
36 PARAMETER ( UNSET_FLOAT8 = 1.234567D5 )
37 Real*4 UNSET_FLOAT4
38 PARAMETER ( UNSET_FLOAT4 = 1.234567E5 )
39 _RL UNSET_RL
40 PARAMETER ( UNSET_RL = 1.234567D5 )
41 _RS UNSET_RS
42 PARAMETER ( UNSET_RS = 1.234567E5 )
43 INTEGER UNSET_I
44 PARAMETER ( UNSET_I = 123456789 )
45
46 C Checkpoint data
47 INTEGER maxNoChkptLev
48 PARAMETER ( maxNoChkptLev = 2 )
49
50 C-- COMMON /PARM_C/ Character valued parameters used by the model.
51 C checkPtSuff :: List of checkpoint file suffices
52 C tRefFile :: File containing reference Potential Temperat. tRef (1.D)
53 C sRefFile :: File containing reference salinity/spec.humid. sRef (1.D)
54 C rhoRefFile :: File containing reference density profile rhoRef (1.D)
55 C delRFile :: File containing vertical grid spacing delR (1.D array)
56 C delRcFile :: File containing vertical grid spacing delRc (1.D array)
57 C delXFile :: File containing X-spacing grid definition (1.D array)
58 C delYFile :: File containing Y-spacing grid definition (1.D array)
59 C horizGridFile :: File containing horizontal-grid definition
60 C (only when using curvilinear_grid)
61 C bathyFile :: File containing bathymetry. If not defined bathymetry
62 C is taken from inline function.
63 C topoFile :: File containing the topography of the surface (unit=m)
64 C (mainly used for the atmosphere = ground height).
65 C shelfIceFile:: File containing the topography of the shelfice draught
66 C (unit=m)
67 C hydrogThetaFile :: File containing initial hydrographic data for potential
68 C temperature.
69 C hydrogSaltFile :: File containing initial hydrographic data for salinity.
70 C diffKrFile :: File containing 3D specification of vertical diffusivity
71 C zonalWindFile :: File containing zonal wind data
72 C meridWindFile :: File containing meridional wind data
73 C thetaClimFile :: File containing theta climataology used
74 C in relaxation term -lambda(theta-theta*)
75 C saltClimFile :: File containing salt climataology used
76 C in relaxation term -lambda(salt-salt*)
77 C surfQfile :: File containing surface heat flux, excluding SW
78 C (old version, kept for backward compatibility)
79 C surfQnetFile :: File containing surface net heat flux
80 C surfQswFile :: File containing surface shortwave radiation
81 C dQdTfile :: File containing thermal relaxation coefficient
82 C EmPmRfile :: File containing surface fresh water flux
83 C saltFluxFile :: File containing surface salt flux
84 C pLoadFile :: File containing pressure loading
85 C eddyTauxFile :: File containing zonal Eddy stress data
86 C eddyTauyFile :: File containing meridional Eddy stress data
87 C buoyancyRelation :: Flag used to indicate which relation to use to
88 C get buoyancy.
89 C eosType :: choose the equation of state:
90 C LINEAR, POLY3, UNESCO, JMD95Z, JMD95P, MDJWF, IDEALGAS
91 C the_run_name :: string identifying the name of the model "run"
92 COMMON /PARM_C/ checkPtSuff,
93 & tRefFile, sRefFile, rhoRefFile,
94 & delRFile, delRcFile,
95 & delXFile, delYFile, horizGridFile,
96 & bathyFile, topoFile, shelfIceFile,
97 & hydrogThetaFile, hydrogSaltFile, diffKrFile,
98 & zonalWindFile, meridWindFile, thetaClimFile,
99 & saltClimFile, buoyancyRelation,
100 & EmPmRfile, saltFluxFile,
101 & surfQfile, surfQnetFile, surfQswFile,
102 & lambdaThetaFile, lambdaSaltFile,
103 & uVelInitFile, vVelInitFile, pSurfInitFile,
104 & dQdTfile, ploadFile,
105 & eddyTauxFile, eddyTauyFile,
106 & eosType, pickupSuff,
107 & mdsioLocalDir,
108 & the_run_name
109 CHARACTER*(5) checkPtSuff(maxNoChkptLev)
110 CHARACTER*(MAX_LEN_FNAM) tRefFile
111 CHARACTER*(MAX_LEN_FNAM) sRefFile
112 CHARACTER*(MAX_LEN_FNAM) rhoRefFile
113 CHARACTER*(MAX_LEN_FNAM) delRFile
114 CHARACTER*(MAX_LEN_FNAM) delRcFile
115 CHARACTER*(MAX_LEN_FNAM) delXFile
116 CHARACTER*(MAX_LEN_FNAM) delYFile
117 CHARACTER*(MAX_LEN_FNAM) horizGridFile
118 CHARACTER*(MAX_LEN_FNAM) bathyFile, topoFile, shelfIceFile
119 CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile, hydrogSaltFile
120 CHARACTER*(MAX_LEN_FNAM) diffKrFile
121 CHARACTER*(MAX_LEN_FNAM) zonalWindFile
122 CHARACTER*(MAX_LEN_FNAM) meridWindFile
123 CHARACTER*(MAX_LEN_FNAM) thetaClimFile
124 CHARACTER*(MAX_LEN_FNAM) saltClimFile
125 CHARACTER*(MAX_LEN_FNAM) surfQfile
126 CHARACTER*(MAX_LEN_FNAM) surfQnetFile
127 CHARACTER*(MAX_LEN_FNAM) surfQswFile
128 CHARACTER*(MAX_LEN_FNAM) EmPmRfile
129 CHARACTER*(MAX_LEN_FNAM) saltFluxFile
130 CHARACTER*(MAX_LEN_FNAM) buoyancyRelation
131 CHARACTER*(MAX_LEN_FNAM) uVelInitFile
132 CHARACTER*(MAX_LEN_FNAM) vVelInitFile
133 CHARACTER*(MAX_LEN_FNAM) pSurfInitFile
134 CHARACTER*(MAX_LEN_FNAM) dQdTfile
135 CHARACTER*(MAX_LEN_FNAM) ploadFile
136 CHARACTER*(MAX_LEN_FNAM) eddyTauxFile
137 CHARACTER*(MAX_LEN_FNAM) eddyTauyFile
138 CHARACTER*(MAX_LEN_FNAM) lambdaThetaFile
139 CHARACTER*(MAX_LEN_FNAM) lambdaSaltFile
140 CHARACTER*(MAX_LEN_FNAM) mdsioLocalDir
141 CHARACTER*(MAX_LEN_PREC/2) the_run_name
142 CHARACTER*(6) eosType
143 CHARACTER*(10) pickupSuff
144
145 C-- COMMON /PARM_I/ Integer valued parameters used by the model.
146 C cg2dMaxIters :: Maximum number of iterations in the
147 C two-dimensional con. grad solver.
148 C cg2dChkResFreq :: Frequency with which to check residual
149 C in con. grad solver.
150 C cg2dPreCondFreq :: Frequency for updating cg2d preconditioner
151 C (non-linear free-surf.)
152 C cg3dMaxIters :: Maximum number of iterations in the
153 C three-dimensional con. grad solver.
154 C cg3dChkResFreq :: Frequency with which to check residual
155 C in con. grad solver.
156 C nIter0 :: Start time-step number of for this run
157 C nTimeSteps :: Number of timesteps to execute
158 C numStepsPerPickup :: For offline setup. Frequency of pickup
159 C of flow fields.
160 C writeStatePrec :: Precision used for writing model state.
161 C writeBinaryPrec :: Precision used for writing binary files
162 C readBinaryPrec :: Precision used for reading binary files
163 C nCheckLev :: Holds current checkpoint level
164 C nonlinFreeSurf :: option related to non-linear free surface
165 C =0 Linear free surface ; >0 Non-linear
166 C select_rStar :: option related to r* vertical coordinate
167 C =0 (default) use r coord. ; > 0 use r*
168 C momForcingOutAB :: =1: take momentum forcing contribution
169 C out of (=0: in) Adams-Bashforth time stepping.
170 C tracForcingOutAB :: =1: take tracer (Temp,Salt,pTracers) forcing contribution
171 C out of (=0: in) Adams-Bashforth time stepping.
172 C tempAdvScheme :: Temp. Horiz.Advection scheme selector
173 C tempVertAdvScheme :: Temp. Vert. Advection scheme selector
174 C saltAdvScheme :: Salt. Horiz.advection scheme selector
175 C saltVertAdvScheme :: Salt. Vert. Advection scheme selector
176 C selectKEscheme :: Kinetic Energy scheme selector (Vector Inv.)
177 C debugLevel :: debug level selector: higher -> more writing
178
179 COMMON /PARM_I/
180 & cg2dMaxIters,
181 & cg2dChkResFreq, cg2dPreCondFreq,
182 & cg3dMaxIters,
183 & cg3dChkResFreq,
184 & nIter0, nTimeSteps, nEndIter,
185 & numStepsPerPickup,
186 & writeStatePrec, nCheckLev,
187 & writeBinaryPrec, readBinaryPrec,
188 & nonlinFreeSurf, select_rStar,
189 & momForcingOutAB, tracForcingOutAB,
190 & tempAdvScheme, tempVertAdvScheme,
191 & saltAdvScheme, saltVertAdvScheme,
192 & selectKEscheme,
193 & debugLevel
194 INTEGER cg2dMaxIters
195 INTEGER cg2dChkResFreq
196 INTEGER cg2dPreCondFreq
197 INTEGER cg3dMaxIters
198 INTEGER cg3dChkResFreq
199 INTEGER nIter0
200 INTEGER nTimeSteps
201 INTEGER nEndIter
202 INTEGER numStepsPerPickup
203 INTEGER writeStatePrec
204 INTEGER writeBinaryPrec
205 INTEGER readBinaryPrec
206 INTEGER nCheckLev
207 INTEGER nonlinFreeSurf
208 INTEGER select_rStar
209 INTEGER momForcingOutAB, tracForcingOutAB
210 INTEGER tempAdvScheme, tempVertAdvScheme
211 INTEGER saltAdvScheme, saltVertAdvScheme
212 INTEGER selectKEscheme
213 INTEGER debugLevel
214
215 C
216 INTEGER debLevZero
217 PARAMETER(debLevZero=0)
218 INTEGER debLevA
219 PARAMETER(debLevA=1)
220 INTEGER debLevB
221 PARAMETER(debLevB=2)
222
223 C-- COMMON /PARM_L/ Logical valued parameters used by the model.
224 C usingCartesianGrid :: If TRUE grid generation will be in a cartesian
225 C coordinate frame.
226 C usingSphericalPolarGrid :: If TRUE grid generation will be in a
227 C spherical polar frame.
228 C usingCylindricalGrid :: If TRUE grid generation will be Cylindrical
229 C usingCurvilinearGrid :: If TRUE, use a curvilinear grid (to be provided)
230 C deepAtmosphere :: deep model (drop the shallow-atmosphere approximation)
231 C no_slip_sides :: Impose "no-slip" at lateral boundaries.
232 C no_slip_bottom :: Impose "no-slip" at bottom boundary.
233 C momViscosity :: Flag which turns momentum friction terms on and off.
234 C momAdvection :: Flag which turns advection of momentum on and off.
235 C momForcing :: Flag which turns external forcing of momentum on
236 C and off.
237 C momPressureForcing :: Flag which turns pressure term in momentum equation
238 C on and off.
239 C metricTerms :: Flag which turns metric terms on or off.
240 C useNHMTerms :: If TRUE use non-hydrostatic metric terms.
241 C useCoriolis :: Flag which turns the coriolis terms on and off.
242 C tempAdvection :: Flag which turns advection of temperature on
243 C and off.
244 C tempForcing :: Flag which turns external forcing of temperature on
245 C and off.
246 C saltAdvection :: Flag which turns advection of salinity on
247 C and off.
248 C saltForcing :: Flag which turns external forcing of salinity on
249 C and off.
250 C useRealFreshWaterFlux :: if True (=Natural BCS), treats P+R-E flux
251 C as a real Fresh Water (=> changes the Sea Level)
252 C if F, converts P+R-E to salt flux (no SL effect)
253 C useFullLeith :: Set to true to use full Leith viscosity(may be unstable
254 C on irregular grids)
255 C useAreaViscLength :: Set to true to use old scaling for viscous
256 C lengths, e.g., L2=Raz. May be preferable for cube sphere.
257 C useStrainTensionVisc:: Set to true to use Strain-Tension viscous terms
258 C rigidLid :: Set to true to use rigid lid
259 C implicitFreeSurface :: Set to true to use implicit free surface
260 C exactConserv :: Set to true to conserve exactly the total Volume
261 C linFSConserveTr :: Set to true to correct source/sink of tracer
262 C at the surface due to Linear Free Surface
263 C uniformLin_PhiSurf :: Set to true to use a uniform Bo_surf in the
264 C linear relation Phi_surf = Bo_surf*eta
265 C use3Dsolver :: set to true to use 3-D pressure solver
266 C implicitIntGravWave :: treat Internal Gravity Wave implicitly
267 C staggerTimeStep :: enable a Stagger time stepping T,S Rho then U,V
268 C momStepping :: Turns momentum equation time-stepping off
269 C tempStepping :: Turns temperature equation time-stepping off
270 C saltStepping :: Turns salinity equation time-stepping off
271 C useConstantF :: Coriolis parameter set to f0
272 C useBetaPlaneF :: Coriolis parameter set to f0 + beta.y
273 C useSphereF :: Coriolis parameter set to 2.omega.sin(phi)
274 C use3dCoriolis :: Turns the 3-D coriolis terms (in Omega.cos Phi) on - off
275 C useCDscheme :: use CD-scheme to calculate Coriolis terms.
276 C useJamartWetPoints :: Use wet-point method for Coriolis (Jamart and Ozer, 1986)
277 C useJamartMomAdv :: Use wet-point method for V.I. non-linear term
278 C SadournyCoriolis :: use the enstrophy conserving scheme by Sadourny
279 C upwindVorticity :: bias interpolation of vorticity in the Coriolis term
280 C highOrderVorticity :: use 3rd/4th order interp. of vorticity (V.I., advection)
281 C upwindShear :: use 1rst order upwind interp. (V.I., vertical advection)
282 C useAbsVorticity :: work with f+zeta in Coriolis terms
283 C implicitDiffusion :: Turns implicit vertical diffusion on
284 C implicitViscosity :: Turns implicit vertical viscosity on
285 C tempImplVertAdv :: Turns on implicit vertical advection for Temperature
286 C saltImplVertAdv :: Turns on implicit vertical advection for Salinity
287 C momImplVertAdv :: Turns on implicit vertical advection for Momentum
288 C multiDimAdvection :: Flag that enable multi-dimension advection
289 C useMultiDimAdvec :: True if multi-dim advection is used at least once
290 C momDissip_In_AB :: if False, put Dissipation tendency contribution
291 C out off Adams-Bashforth time stepping.
292 C doAB_onGtGs :: if the Adams-Bashforth time stepping is used, always
293 C apply AB on tracer tendencies (rather than on Tracer)
294 C startFromPickupAB2 :: with AB-3 code, start from an AB-2 pickup
295 C usePickupBeforeC54 :: start from old-pickup files, generated with code from
296 C before checkpoint-54a, Jul 06, 2004.
297 C doThetaClimRelax :: Set true if relaxation to temperature
298 C climatology is required.
299 C doSaltClimRelax :: Set true if relaxation to salinity
300 C climatology is required.
301 C periodicExternalForcing :: Set true if forcing is time-dependant
302 C usingPCoords :: Set to indicate that we are working in a pressure
303 C type coordinate (p or p*).
304 C usingZCoords :: Set to indicate that we are working in a height
305 C type coordinate (z or z*)
306 C fluidIsAir :: Set to indicate that the fluid major constituent
307 C is air
308 C fluidIsWater :: Set to indicate that the fluid major constituent
309 C is water
310 C useDynP_inEos_Zc :: use the dynamical pressure in EOS (with Z-coord.)
311 C this requires specific code for restart & exchange
312 C setInterFDr :: set Interface depth (put cell-Center at the middle)
313 C setCenterDr :: set cell-Center depth (put Interface at the middle)
314 C nonHydrostatic :: Using non-hydrostatic terms
315 C quasiHydrostatic :: Using non-hydrostatic terms in hydrostatic algorithm
316 C globalFiles :: Selects between "global" and "tiled" files
317 C useSingleCpuIO :: On SGI platforms, option globalFiles is either
318 C slow (f77) or does not work (f90). When
319 C useSingleCpuIO is set, mdsio_writefield.F
320 C outputs from master mpi process only.
321 C allowFreezing :: Allows surface water to freeze and form ice
322 C useOldFreezing :: use the old version (before checkpoint52a_pre, 2003-11-12)
323 C pickup_write_mdsio :: use mdsio to write pickups
324 C pickup_read_mdsio :: use mdsio to read pickups
325 C pickup_write_immed :: echo the pickup immediately (for conversion)
326 C timeave_mdsio :: use mdsio for timeave output
327 C snapshot_mdsio :: use mdsio for "snapshot" (dumpfreq/diagfreq) output
328 C monitor_stdio :: use stdio for monitor output
329 C dumpInitAndLast :: dumps model state to files at Initial (nIter0)
330 C & Last iteration, in addition multiple of dumpFreq iter.
331 C balanceEmPmR :: substract global mean of EmPmR at every time step
332 C balanceQnet :: substract global mean of Qnet at every time step
333 C balancePrintMean:: print substracted global means to STDOUT
334
335 COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid,
336 & usingCurvilinearGrid, usingCylindricalGrid,
337 & deepAtmosphere, setInterFDr, setCenterDr,
338 & no_slip_sides,no_slip_bottom,
339 & momViscosity, momAdvection, momForcing, useCoriolis,
340 & momPressureForcing, vectorInvariantMomentum,
341 & tempAdvection, tempForcing,
342 & saltAdvection, saltForcing,
343 & useRealFreshWaterFlux,
344 & useFullLeith, useStrainTensionVisc,
345 & useAreaViscLength,
346 & rigidLid, implicitFreeSurface, exactConserv, linFSConserveTr,
347 & uniformLin_PhiSurf,
348 & use3Dsolver, implicitIntGravWave, staggerTimeStep,
349 & momStepping, tempStepping, saltStepping,
350 & metricTerms, useNHMTerms,
351 & useConstantF, useBetaPlaneF, useSphereF, use3dCoriolis,
352 & useCDscheme,
353 & useEnergyConservingCoriolis, useJamartWetPoints, useJamartMomAdv,
354 & SadournyCoriolis, upwindVorticity, highOrderVorticity,
355 & useAbsVorticity, upwindShear,
356 & implicitDiffusion, implicitViscosity,
357 & tempImplVertAdv, saltImplVertAdv, momImplVertAdv,
358 & multiDimAdvection, useMultiDimAdvec,
359 & momDissip_In_AB, doAB_onGtGs,
360 & doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax,
361 & periodicExternalForcing,
362 & fluidIsAir, fluidIsWater,
363 & usingPCoords, usingZCoords, useDynP_inEos_Zc,
364 & nonHydrostatic, quasiHydrostatic, globalFiles, useSingleCpuIO,
365 & allowFreezing, useOldFreezing,
366 & usePickupBeforeC54, startFromPickupAB2,
367 & pickup_read_mdsio, pickup_write_mdsio, pickup_write_immed,
368 & timeave_mdsio, snapshot_mdsio, monitor_stdio,
369 & outputTypesInclusive, dumpInitAndLast, debugMode,
370 & inAdMode, inAdTrue, inAdFalse, inAdExact,
371 & balanceEmPmR, balanceQnet, balancePrintMean
372
373 LOGICAL usingCartesianGrid
374 LOGICAL usingSphericalPolarGrid
375 LOGICAL usingCylindricalGrid
376 LOGICAL usingCurvilinearGrid
377 LOGICAL deepAtmosphere
378 LOGICAL setInterFDr
379 LOGICAL setCenterDr
380 LOGICAL useNHMTerms
381 LOGICAL no_slip_sides
382 LOGICAL no_slip_bottom
383 LOGICAL momViscosity
384 LOGICAL momAdvection
385 LOGICAL momForcing
386 LOGICAL momPressureForcing
387 LOGICAL useCoriolis
388 LOGICAL vectorInvariantMomentum
389 LOGICAL tempAdvection
390 LOGICAL tempForcing
391 LOGICAL saltAdvection
392 LOGICAL saltForcing
393 LOGICAL useRealFreshWaterFlux
394 LOGICAL useFullLeith
395 LOGICAL useStrainTensionVisc
396 LOGICAL useAreaViscLength
397 LOGICAL rigidLid
398 LOGICAL implicitFreeSurface
399 LOGICAL exactConserv
400 LOGICAL linFSConserveTr
401 LOGICAL uniformLin_PhiSurf
402 LOGICAL use3Dsolver
403 LOGICAL implicitIntGravWave
404 LOGICAL staggerTimeStep
405 LOGICAL momStepping
406 LOGICAL tempStepping
407 LOGICAL saltStepping
408 LOGICAL metricTerms
409 LOGICAL useConstantF
410 LOGICAL useBetaPlaneF
411 LOGICAL useSphereF
412 LOGICAL use3dCoriolis
413 LOGICAL useCDscheme
414 LOGICAL useEnergyConservingCoriolis
415 LOGICAL useJamartWetPoints
416 LOGICAL useJamartMomAdv
417 LOGICAL SadournyCoriolis
418 LOGICAL upwindVorticity
419 LOGICAL highOrderVorticity
420 LOGICAL useAbsVorticity
421 LOGICAL upwindShear
422 LOGICAL implicitDiffusion
423 LOGICAL implicitViscosity
424 LOGICAL tempImplVertAdv
425 LOGICAL saltImplVertAdv
426 LOGICAL momImplVertAdv
427 LOGICAL multiDimAdvection
428 LOGICAL useMultiDimAdvec
429 LOGICAL momDissip_In_AB
430 LOGICAL doAB_onGtGs
431 LOGICAL doThetaClimRelax
432 LOGICAL doSaltClimRelax
433 LOGICAL doTr1ClimRelax
434 LOGICAL periodicExternalForcing
435 LOGICAL fluidIsAir
436 LOGICAL fluidIsWater
437 LOGICAL usingPCoords
438 LOGICAL usingZCoords
439 LOGICAL useDynP_inEos_Zc
440 LOGICAL nonHydrostatic
441 LOGICAL quasiHydrostatic
442 LOGICAL globalFiles
443 LOGICAL useSingleCpuIO
444 LOGICAL allowFreezing
445 LOGICAL useOldFreezing
446 LOGICAL usePickupBeforeC54
447 LOGICAL startFromPickupAB2
448 LOGICAL dumpInitAndLast
449 LOGICAL debugMode
450 LOGICAL pickup_read_mdsio, pickup_write_mdsio
451 LOGICAL pickup_write_immed
452 LOGICAL timeave_mdsio, snapshot_mdsio, monitor_stdio
453 LOGICAL outputTypesInclusive
454 LOGICAL inAdMode, inAdTrue, inAdFalse, inAdExact
455
456 LOGICAL balanceEmPmR
457 LOGICAL balanceQnet
458 LOGICAL balancePrintMean
459
460 C-- COMMON /PARM_R/ "Real" valued parameters used by the model.
461 C cg2dTargetResidual
462 C :: Target residual for cg2d solver; no unit (RHS normalisation)
463 C cg2dTargetResWunit
464 C :: Target residual for cg2d solver; W unit (No RHS normalisation)
465 C cg3dTargetResidual
466 C :: Target residual for cg3d solver.
467 C cg2dpcOffDFac :: Averaging weight for preconditioner off-diagonal.
468 C Note. 20th May 1998
469 C I made a weird discovery! In the model paper we argue
470 C for the form of the preconditioner used here ( see
471 C A Finite-volume, Incompressible Navier-Stokes Model
472 C ...., Marshall et. al ). The algebra gives a simple
473 C 0.5 factor for the averaging of ac and aCw to get a
474 C symmettric pre-conditioner. By using a factor of 0.51
475 C i.e. scaling the off-diagonal terms in the
476 C preconditioner down slightly I managed to get the
477 C number of iterations for convergence in a test case to
478 C drop form 192 -> 134! Need to investigate this further!
479 C For now I have introduced a parameter cg2dpcOffDFac which
480 C defaults to 0.51 but can be set at runtime.
481 C delR :: Vertical grid spacing ( units of r ).
482 C delRc :: Vertical grid spacing between cell centers (r unit).
483 C delX :: Separation between cell faces (m) or (deg), depending
484 C delY on input flags.
485 C gravity :: Accel. due to gravity ( m/s^2 )
486 C recip_gravity and its inverse
487 C gBaro :: Accel. due to gravity used in barotropic equation ( m/s^2 )
488 C rhoNil :: Reference density for the linear equation of state
489 C rhoConst :: Vertically constant reference density
490 C rhoFacC :: normalized (by rhoConst) reference density at cell-Center
491 C rhoFacF :: normalized (by rhoConst) reference density at cell-interFace
492 C rhoConstFresh :: Constant reference density for fresh water (rain)
493 C tRef :: reference vertical profile for potential temperature
494 C sRef :: reference vertical profile for salinity/specific humidity
495 C phiRef :: reference potential (pressure/rho, geopotential) profile
496 C dBdrRef :: vertical gradient of reference boyancy [(m/s/r)^2)]:
497 C :: z-coord: = N^2_ref = Brunt-Vaissala frequency [s^-2]
498 C :: p-coord: = -(d.alpha/dp)_ref [(m^2.s/kg)^2]
499 C rVel2wUnit :: units conversion factor (Non-Hydrostatic code),
500 C :: from r-coordinate vertical velocity to vertical velocity [m/s].
501 C :: z-coord: = 1 ; p-coord: wSpeed [m/s] = rVel [Pa/s] * rVel2wUnit
502 C wUnit2rVel :: units conversion factor (Non-Hydrostatic code),
503 C :: from vertical velocity [m/s] to r-coordinate vertical velocity.
504 C :: z-coord: = 1 ; p-coord: rVel [Pa/s] = wSpeed [m/s] * wUnit2rVel
505 C phiMin :: Latitude of southern most cell face.
506 C thetaMin :: Longitude of western most cell face (this
507 C is an "inert" parameter but it is included
508 C to make geographical references simple.)
509 C rSphere :: Radius of sphere for a spherical polar grid ( m ).
510 C recip_rSphere :: Reciprocal radius of sphere ( m ).
511 C f0 :: Reference coriolis parameter ( 1/s )
512 C ( Southern edge f for beta plane )
513 C beta :: df/dy ( s^-1.m^-1 )
514 C omega :: Angular velocity ( rad/s )
515 C rotationPeriod :: Rotation period (s) (= 2.pi/omega)
516 C viscAh :: Eddy viscosity coeff. for mixing of
517 C momentum laterally ( m^2/s )
518 C viscAhW :: Eddy viscosity coeff. for mixing of vertical
519 C momentum laterally, no effect for hydrostatic
520 C model, defaults to viscAh if unset ( m^2/s )
521 C Not used if variable horiz. viscosity is used.
522 C viscAr :: Eddy viscosity coeff. for mixing of
523 C momentum vertically ( units of r^2/s )
524 C viscA4 :: Biharmonic viscosity coeff. for mixing of
525 C momentum laterally ( m^4/s )
526 C viscA4W :: Biharmonic viscosity coeff. for mixing of vertical
527 C momentum laterally, no effect for hydrostatic
528 C model, defaults to viscA4 if unset ( m^2/s )
529 C Not used if variable horiz. viscosity is used.
530 C viscAhD :: Eddy viscosity coeff. for mixing of momentum laterally
531 C (act on Divergence part) ( m^2/s )
532 C viscAhZ :: Eddy viscosity coeff. for mixing of momentum laterally
533 C (act on Vorticity part) ( m^2/s )
534 C viscA4D :: Biharmonic viscosity coeff. for mixing of momentum laterally
535 C (act on Divergence part) ( m^4/s )
536 C viscA4Z :: Biharmonic viscosity coeff. for mixing of momentum laterally
537 C (act on Vorticity part) ( m^4/s )
538 C viscC2leith :: Leith non-dimensional viscosity factor (grad(vort))
539 C viscC2leithD :: Modified Leith non-dimensional visc. factor (grad(div))
540 C viscC2smag :: Smagorinsky non-dimensional viscosity factor (harmonic)
541 C viscC4smag :: Smagorinsky non-dimensional viscosity factor (biharmonic)
542 C viscAhMax :: Maximum eddy viscosity coeff. for mixing of
543 C momentum laterally ( m^2/s )
544 C viscAhReMax :: Maximum gridscale Reynolds number for eddy viscosity
545 C coeff. for mixing of momentum laterally (non-dim)
546 C viscAhGridMax:: maximum and minimum harmonic viscosity coefficients ...
547 C viscAhGridMin:: in terms of non-dimensional grid-size dependent visc.
548 C viscA4Max :: Maximum biharmonic viscosity coeff. for mixing of
549 C momentum laterally ( m^4/s )
550 C viscA4ReMax :: Maximum Gridscale Reynolds number for
551 C biharmonic viscosity coeff. momentum laterally (non-dim)
552 C viscAhGrid:: non-dimensional grid-size dependent viscosity
553 C viscA4Grid:: non-dimensional grid-size dependent bi-harmonic viscosity
554 C viscA4GridMax:: maximum and minimum biharmonic viscosity coefficients ...
555 C viscA4GridMin:: in terms of non-dimensional grid-size dependent viscosity
556 C viscC4leith :: Leith non-dimensional viscosity factor (grad(vort))
557 C viscC4leithD :: Modified Leith non-dimensional viscosity factor (grad(div))
558 C diffKhT :: Laplacian diffusion coeff. for mixing of
559 C heat laterally ( m^2/s )
560 C diffKrNrT :: vertical profile of Laplacian diffusion coeff.
561 C for mixing of heat vertically ( units of r^2/s )
562 C diffK4T :: Biharmonic diffusion coeff. for mixing of
563 C heat laterally ( m^4/s )
564 C diffKhS :: Laplacian diffusion coeff. for mixing of
565 C salt laterally ( m^2/s )
566 C diffKrNrS :: vertical profile of Laplacian diffusion coeff.
567 C for mixing of salt vertically ( units of r^2/s ),
568 C diffK4S :: Biharmonic diffusion coeff. for mixing of
569 C salt laterally ( m^4/s )
570 C diffKrBL79surf :: T/S surface diffusivity (m^2/s) Bryan and Lewis, 1979
571 C diffKrBL79deep :: T/S deep diffusivity (m^2/s) Bryan and Lewis, 1979
572 C diffKrBL79scl :: depth scale for arctan fn (m) Bryan and Lewis, 1979
573 C diffKrBL79Ho :: depth offset for arctan fn (m) Bryan and Lewis, 1979
574 C BL79LatVary :: polarwise of this latitude diffKrBL79 is applied with
575 C gradual transition to diffKrBLEQ towards Equator
576 C diffKrBLEQsurf :: same as diffKrBL79surf but at Equator
577 C diffKrBLEQdeep :: same as diffKrBL79deep but at Equator
578 C diffKrBLEQscl :: same as diffKrBL79scl but at Equator
579 C diffKrBLEQHo :: same as diffKrBL79Ho but at Equator
580 C deltaT :: Default timestep ( s )
581 C deltaTClock :: Timestep used as model "clock". This determines the
582 C IO frequencies and is used in tagging output. It can
583 C be totally different to the dynamical time. Typically
584 C it will be the deep-water timestep for accelerated runs.
585 C Frequency of checkpointing and dumping of the model state
586 C are referenced to this clock. ( s )
587 C deltaTMom :: Timestep for momemtum equations ( s )
588 C dTtracerLev :: Timestep for tracer equations ( s ), function of level k
589 C deltaTfreesurf :: Timestep for free-surface equation ( s )
590 C freesurfFac :: Parameter to turn implicit free surface term on or off
591 C freesurfac = 1. uses implicit free surface
592 C freesurfac = 0. uses rigid lid
593 C abEps :: Adams-Bashforth-2 stabilizing weight
594 C alph_AB :: Adams-Bashforth-3 primary factor
595 C beta_AB :: Adams-Bashforth-3 secondary factor
596 C implicSurfPress :: parameter of the Crank-Nickelson time stepping :
597 C Implicit part of Surface Pressure Gradient ( 0-1 )
598 C implicDiv2Dflow :: parameter of the Crank-Nickelson time stepping :
599 C Implicit part of barotropic flow Divergence ( 0-1 )
600 C hFacMin :: Minimum fraction size of a cell (affects hFacC etc...)
601 C hFacMinDz :: Minimum dimesional size of a cell (affects hFacC etc..., m)
602 C hFacMinDp :: Minimum dimesional size of a cell (affects hFacC etc..., Pa)
603 C hFacMinDr :: Minimum dimesional size of a cell (affects hFacC etc..., units of r)
604 C hFacInf :: Threshold (inf and sup) for fraction size of surface cell
605 C hFacSup that control vanishing and creating levels
606 C tauCD :: CD scheme coupling timescale ( 1/s )
607 C rCD :: CD scheme normalised coupling parameter ( 0-1 )
608 C baseTime :: model base time (time origin) = time @ iteration zero
609 C startTime :: Starting time for this integration ( s ).
610 C endTime :: Ending time for this integration ( s ).
611 C chkPtFreq :: Frequency of rolling check pointing ( s ).
612 C pChkPtFreq :: Frequency of permanent check pointing ( s ).
613 C dumpFreq :: Frequency with which model state is written to
614 C post-processing files ( s ).
615 C diagFreq :: Frequency with which model writes diagnostic output
616 C of intermediate quantities.
617 C afFacMom :: Advection of momentum term tracer parameter
618 C vfFacMom :: Momentum viscosity tracer parameter
619 C pfFacMom :: Momentum pressure forcing tracer parameter
620 C cfFacMom :: Coriolis term tracer parameter
621 C foFacMom :: Momentum forcing tracer parameter
622 C mtFacMom :: Metric terms tracer parameter
623 C cosPower :: Power of cosine of latitude to multiply viscosity
624 C cAdjFreq :: Frequency of convective adjustment
625 C
626 C taveFreq :: Frequency with which time-averaged model state
627 C is written to post-processing files ( s ).
628 C tave_lastIter :: (for state variable only) fraction of the last time
629 C step (of each taveFreq period) put in the time average.
630 C (fraction for 1rst iter = 1 - tave_lastIter)
631 C tauThetaClimRelax :: Relaxation to climatology time scale ( s ).
632 C tauSaltClimRelax :: Relaxation to climatology time scale ( s ).
633 C latBandClimRelax :: latitude band where Relaxation to Clim. is applied,
634 C i.e. where |yC| <= latBandClimRelax
635 C externForcingPeriod :: Is the period of which forcing varies (eg. 1 month)
636 C externForcingCycle :: Is the repeat time of the forcing (eg. 1 year)
637 C (note: externForcingCycle must be an integer
638 C number times externForcingPeriod)
639 C convertFW2Salt :: salinity, used to convert Fresh-Water Flux to Salt Flux
640 C (use model surface (local) value if set to -1)
641 C temp_EvPrRn :: temperature of Rain & Evap.
642 C salt_EvPrRn :: salinity of Rain & Evap.
643 C (notes: a) tracer content of Rain/Evap only used if both
644 C NonLin_FrSurf & useRealFreshWater are set.
645 C b) use model surface (local) value if set to UNSET_RL)
646 C horiVertRatio :: Ratio on units in vertical to units in horizontal.
647 C recip_horiVertRatio ( 1 if horiz in m and vertical in m ).
648 C ( g*rho if horiz in m and vertical in Pa ).
649 C Ro_SeaLevel :: standard position of Sea-Level in "R" coordinate, used as
650 C starting value (k=1) for vertical coordinate (rf(1)=Ro_SeaLevel)
651 C sideDragFactor :: side-drag scaling factor (used only if no_slip_sides)
652 C (default=2: full drag ; =1: gives half-slip BC)
653 C bottomDragLinear :: Linear bottom-drag coefficient (units of [r]/s)
654 C bottomDragQuadratic :: Quadratic bottom-drag coefficient (units of [r]/m)
655 C (if using zcoordinate, units becomes linear: m/s, quadratic: [-])
656 C smoothAbsFuncRange :: 1/2 of interval around zero, for which FORTRAN ABS
657 C is to be replace by a smoother function
658 C (affects myabs, mymin, mymax)
659 C nh_Am2 :: scales the non-hydrostatic terms and changes internal scales
660 C (i.e. allows convection at different Rayleigh numbers)
661 COMMON /PARM_R/ cg2dTargetResidual, cg2dTargetResWunit,
662 & cg2dpcOffDFac, cg3dTargetResidual,
663 & delR, delRc, delX, delY,
664 & deltaT, deltaTmom, dTtracerLev, deltaTfreesurf, deltaTClock,
665 & abEps, alph_AB, beta_AB,
666 & phiMin, thetaMin, rSphere, recip_RSphere, f0, beta,
667 & viscAh, viscAhW, viscAhMax,
668 & viscAhGrid, viscAhGridMax, viscAhGridMin,
669 & viscC2leith, viscC2leithD,
670 & viscC2smag, viscC4smag,
671 & viscAhD, viscAhZ, viscA4D, viscA4Z,
672 & viscA4, viscA4W,
673 & viscA4Max, viscA4Grid, viscA4GridMax, viscA4GridMin,
674 & viscAhRemax, viscA4Remax,
675 & viscC4leith, viscC4leithD, viscAr,
676 & diffKhT, diffK4T, diffKrNrT,
677 & diffKhS, diffK4S, diffKrNrS,
678 & diffKrBL79surf, diffKrBL79deep, diffKrBL79scl, diffKrBL79Ho,
679 & BL79LatVary,
680 & diffKrBLEQsurf, diffKrBLEQdeep, diffKrBLEQscl, diffKrBLEQHo,
681 & delT, tauCD, rCD, freeSurfFac, implicSurfPress, implicDiv2Dflow,
682 & hFacMin, hFacMinDz, hFacInf, hFacSup,
683 & gravity, recip_Gravity, gBaro,
684 & rhonil, recip_rhonil, rhoConst, recip_rhoConst,
685 & rhoFacC, recip_rhoFacC, rhoFacF, recip_rhoFacF,
686 & rhoConstFresh, convertEmP2rUnit, tRef, sRef, phiRef, dBdrRef,
687 & rVel2wUnit, wUnit2rVel,
688 & baseTime, startTime, endTime,
689 & chkPtFreq, pChkPtFreq, dumpFreq, adjDumpFreq,
690 & diagFreq, taveFreq, tave_lastIter, monitorFreq, adjMonitorFreq,
691 & afFacMom, vfFacMom, pfFacMom, cfFacMom, foFacMom, mtFacMom,
692 & cosPower, cAdjFreq, omega, rotationPeriod,
693 & tauThetaClimRelax, tauSaltClimRelax,
694 & tauTr1ClimRelax, lambdaTr1ClimRelax, latBandClimRelax,
695 & externForcingCycle, externForcingPeriod,
696 & convertFW2Salt, temp_EvPrRn, salt_EvPrRn,
697 & hFacMinDr, hFacMinDp,
698 & horiVertRatio, recip_horiVertRatio,
699 & ivdc_kappa, Ro_SeaLevel,
700 & sideDragFactor, bottomDragLinear, bottomDragQuadratic, nh_Am2,
701 & smoothAbsFuncRange,
702 & tCylIn, tCylOut
703
704 _RL cg2dTargetResidual
705 _RL cg2dTargetResWunit
706 _RL cg3dTargetResidual
707 _RL cg2dpcOffDFac
708 _RL delR(Nr)
709 _RL delRc(Nr+1)
710 _RL delX(Nx)
711 _RL delY(Ny)
712 _RL deltaT
713 _RL deltaTClock
714 _RL deltaTmom
715 _RL dTtracerLev(Nr)
716 _RL deltaTfreesurf
717 _RL abEps, alph_AB, beta_AB
718 _RL phiMin
719 _RL thetaMin
720 _RL rSphere
721 _RL recip_rSphere
722 _RL f0
723 _RL freeSurfFac
724 _RL implicSurfPress
725 _RL implicDiv2Dflow
726 _RL hFacMin
727 _RL hFacMinDz
728 _RL hFacMinDp
729 _RL hFacMinDr
730 _RL hFacInf
731 _RL hFacSup
732 _RL beta
733 _RL viscAh
734 _RL viscAhW
735 _RL viscAhD
736 _RL viscAhZ
737 _RL viscAhMax
738 _RL viscAhReMax
739 _RL viscAhGrid
740 _RL viscAhGridMax
741 _RL viscAhGridMin
742 _RL viscC2leith
743 _RL viscC2leithD
744 _RL viscC2smag
745 _RL viscC4smag
746 _RL viscAr
747 _RL viscA4
748 _RL viscA4W
749 _RL viscA4D
750 _RL viscA4Z
751 _RL viscA4Max
752 _RL viscA4ReMax
753 _RL viscA4Grid, viscA4GridMax, viscA4GridMin
754 _RL viscC4leith
755 _RL viscC4leithD
756 _RL diffKhT
757 _RL diffKrNrT(Nr)
758 _RL diffK4T
759 _RL diffKhS
760 _RL diffKrNrS(Nr)
761 _RL diffK4S
762 _RL diffKrBL79surf
763 _RL diffKrBL79deep
764 _RL diffKrBL79scl
765 _RL diffKrBL79Ho
766 _RL BL79LatVary
767 _RL diffKrBLEQsurf
768 _RL diffKrBLEQdeep
769 _RL diffKrBLEQscl
770 _RL diffKrBLEQHo
771 _RL delt
772 _RL tauCD
773 _RL rCD
774 _RL gravity
775 _RL recip_gravity
776 _RL gBaro
777 _RL rhonil, recip_rhonil
778 _RL rhoConst, recip_rhoConst
779 _RL rhoFacC(Nr), recip_rhoFacC(Nr)
780 _RL rhoFacF(Nr+1), recip_rhoFacF(Nr+1)
781 _RL rhoConstFresh
782 _RL convertEmP2rUnit
783 _RL tRef(Nr)
784 _RL sRef(Nr)
785 _RL phiRef(2*Nr+1)
786 _RL dBdrRef(Nr)
787 _RL rVel2wUnit(Nr+1), wUnit2rVel(Nr+1)
788 _RL baseTime
789 _RL startTime
790 _RL endTime
791 _RL chkPtFreq
792 _RL pChkPtFreq
793 _RL dumpFreq
794 _RL adjDumpFreq
795 _RL diagFreq
796 _RL taveFreq
797 _RL tave_lastIter
798 _RL monitorFreq
799 _RL adjMonitorFreq
800 _RL afFacMom
801 _RL vfFacMom
802 _RL pfFacMom
803 _RL cfFacMom
804 _RL foFacMom
805 _RL mtFacMom
806 _RL cosPower
807 _RL cAdjFreq
808 _RL omega
809 _RL rotationPeriod
810 _RL tauThetaClimRelax
811 _RL tauSaltClimRelax
812 _RL tauTr1ClimRelax
813 _RL lambdaTr1ClimRelax
814 _RL latBandClimRelax
815 _RL externForcingCycle
816 _RL externForcingPeriod
817 _RL convertFW2Salt
818 _RL temp_EvPrRn
819 _RL salt_EvPrRn
820 _RL horiVertRatio
821 _RL recip_horiVertRatio
822 _RL ivdc_kappa
823 _RL Ro_SeaLevel
824 _RL sideDragFactor
825 _RL bottomDragLinear
826 _RL bottomDragQuadratic
827 _RL smoothAbsFuncRange
828 _RL nh_Am2
829 _RL tCylIn
830 _RL tCylOut
831
832 C-- COMMON /PARM_A/ Thermodynamics constants ?
833 COMMON /PARM_A/ HeatCapacity_Cp,recip_Cp
834 _RL HeatCapacity_Cp
835 _RL recip_Cp
836
837 C-- COMMON /PARM_ATM/ Atmospheric physical parameters (Ideal Gas EOS, ...)
838 C celsius2K :: convert centigrade (Celsius) degree to Kelvin
839 C atm_Po :: standard reference pressure
840 C atm_Cp :: specific heat (Cp) of the (dry) air at constant pressure
841 C atm_Rd :: gas constant for dry air
842 C atm_kappa :: kappa = R/Cp (R: constant of Ideal Gas EOS)
843 C atm_Rq :: water vapour specific volume anomaly relative to dry air
844 C (e.g. typical value = (29/18 -1) 10^-3 with q [g/kg])
845 C integr_GeoPot :: option to select the way we integrate the geopotential
846 C (still a subject of discussions ...)
847 C selectFindRoSurf :: select the way surf. ref. pressure (=Ro_surf) is
848 C derived from the orography. Implemented: 0,1 (see INI_P_GROUND)
849 COMMON /PARM_ATM/
850 & celsius2K,
851 & atm_Cp, atm_Rd, atm_kappa, atm_Rq, atm_Po,
852 & integr_GeoPot, selectFindRoSurf
853 _RL celsius2K
854 _RL atm_Po, atm_Cp, atm_Rd, atm_kappa, atm_Rq
855 INTEGER integr_GeoPot, selectFindRoSurf
856
857 C Logical flags for selecting packages
858 LOGICAL useOPPS
859 LOGICAL usePP81
860 LOGICAL useMY82
861 LOGICAL useGGL90
862 LOGICAL useKPP
863 LOGICAL useGAD
864 LOGICAL useGMRedi
865 LOGICAL useOBCS
866 LOGICAL useAIM
867 LOGICAL useLand
868 LOGICAL useCAL
869 LOGICAL useEXF
870 LOGICAL useEBM
871 LOGICAL useGrdchk
872 LOGICAL useECCO
873 LOGICAL useSHAP_FILT
874 LOGICAL useZONAL_FILT
875 LOGICAL useFLT
876 LOGICAL usePTRACERS
877 LOGICAL useGCHEM
878 LOGICAL useRBCS
879 LOGICAL useOffLine
880 LOGICAL useMATRIX
881 LOGICAL useSBO
882 LOGICAL useSEAICE
883 LOGICAL useShelfIce
884 LOGICAL useThSIce
885 LOGICAL useATM2d
886 LOGICAL useBulkForce
887 LOGICAL usefizhi
888 LOGICAL usegridalt
889 LOGICAL useDiagnostics
890 LOGICAL useMNC
891 LOGICAL useREGRID
892 LOGICAL useRunClock
893 LOGICAL useEMBED_FILES
894 LOGICAL useMYPACKAGE
895 COMMON /PARM_PACKAGES/
896 & useOPPS, usePP81, useMY82, useGGL90, useKPP,
897 & useGAD, useGMRedi, useOBCS, useAIM, useLand,
898 & useCAL, useEXF, useEBM, useGrdchk, useECCO,
899 & useSHAP_FILT, useZONAL_FILT, useFLT,
900 & usePTRACERS, useGCHEM, useRBCS, useOffLine, useMATRIX,
901 & useSBO, useSEAICE, useShelfIce,
902 & useThSIce, useATM2D, useBulkForce,
903 & usefizhi, usegridalt, useDiagnostics, useMNC, useREGRID,
904 & useRunClock, useEMBED_FILES, useMYPACKAGE
905
906 CEH3 ;;; Local Variables: ***
907 CEH3 ;;; mode:fortran ***
908 CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22