/[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.48 - (show annotations) (download)
Tue Feb 20 15:00:54 2001 UTC (23 years, 2 months ago) by jmc
Branch: MAIN
Changes since 1.47: +10 -3 lines
File MIME type: text/plain
add 2 parameters to define a Crank-Nickelson barotropic time-stepping

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

  ViewVC Help
Powered by ViewVC 1.1.22