/[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.47 - (show annotations) (download)
Sun Feb 4 14:38:45 2001 UTC (23 years, 3 months ago) by cnh
Branch: MAIN
CVS Tags: checkpoint35
Changes since 1.46: +2 -1 lines
File MIME type: text/plain
Made sure each .F and .h file had
the CVS keywords Header and Name at its start.
Most had header but very few currently have Name, so
lots of changes!

1 C $Header: /u/gcmpack/models/MITgcmUV/model/inc/PARAMS.h,v 1.46 2001/02/02 21:04:47 adcroft 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 hFacMin - Minimum fraction size of a cell (affects hFacC etc...)
324 C hFacMinDz - Minimum dimesional size of a cell (affects hFacC etc..., m)
325 C hFacMinDp - Minimum dimesional size of a cell (affects hFacC etc..., Pa)
326 C hFacMinDr - Minimum dimesional size of a cell (affects hFacC etc..., units of r)
327 C tauCD - CD scheme coupling timescale ( 1/s )
328 C rCD - CD scheme normalised coupling parameter ( 0-1 )
329 C startTime - Starting time for this integration ( s ).
330 C endTime - Ending time for this integration ( s ).
331 C chkPtFreq - Frequency of rolling check pointing ( s ).
332 C pChkPtFreq - Frequency of permanent check pointing ( s ).
333 C dumpFreq - Frequency with which model state is written to
334 C post-processing files ( s ).
335 C afFacMom - Advection of momentum term tracer parameter
336 C vfFacMom - Momentum viscosity tracer parameter
337 C pfFacMom - Momentum pressure forcing tracer parameter
338 C cfFacMom - Coriolis term tracer parameter
339 C foFacMom - Momentum forcing tracer parameter
340 C mtFacMom - Metric terms tracer parameter
341 C cosPower - Power of cosine of latitude to multiply viscosity
342 C cAdjFreq - Frequency of convective adjustment
343 C
344 C taveFreq - Frequency with which time-averaged model state is written to
345 C post-processing files ( s ).
346 C tauThetaClimRelax - Relaxation to climatology time scale ( s ).
347 C lambdaThetaClimRelax - Inverse time scale for relaxation ( 1/s ).
348 C tauSaltClimRelax - Relaxation to climatology time scale ( s ).
349 C lambdaSaltClimRelax - Inverse time scale for relaxation ( 1/s ).
350 C externForcingPeriod - Is the period of which forcing varies (eg. 1 month)
351 C externForcingCycle - Is the repeat time of the forcing (eg. 1 year)
352 C (note: externForcingCycle must be an integer
353 C number times externForcingPeriod)
354 C horiVertRatio - Ratio on units in vertical to units in horizontal.
355 C recip_horiVertRatio ( 1 if horiz in m and vertical in m ).
356 C ( g*rho if horiz in m and vertical in Pa ).
357 C latFFTFiltLo - Low latitude for FFT filtering of latitude
358 C circles ( see filter*.F )
359 C Ro_SeaLevel - standard position of Sea-Level in "R" coordinate, used as
360 C starting value (k=1) for vertical coordinate (rf(1)=Ro_SeaLevel)
361 C bottomDragLinear - Drag coefficient built in to core dynamics
362 C " Quadratic ( linear: 1/s, quadratic: 1/m )
363 COMMON /PARM_R/ cg2dTargetResidual, cg2dpcOffDFac,
364 & cg3dTargetResidual,
365 & delP, delZ, delR, delX, delY,
366 & deltaT,deltaTmom, deltaTtracer, deltaTClock,abeps, startTime,
367 & phiMin, thetaMin, rSphere, recip_RSphere, f0, fCori, beta,
368 & viscAh, viscAz, viscA4, viscAr,
369 & diffKhT, diffKzT, diffK4T, diffKrT,
370 & diffKhS, diffKzS, diffK4S, diffKrS,
371 & delT, tauCD, rCD, freeSurfFac, hFacMin, hFacMinDz,
372 & gravity, recip_Gravity, gBaro, rhonil, recip_rhonil,
373 & recip_rhoConst, rhoConst, tRef, sRef,
374 & endTime, chkPtFreq, pchkPtFreq, dumpFreq, taveFreq,
375 & afFacMom, vfFacMom, pfFacMom, cfFacMom, foFacMom, mtFacMom,
376 & cosPower,
377 & cAdjFreq, omega, tauThetaClimRelax, lambdaThetaClimRelax,
378 & tauSaltClimRelax, lambdaSaltClimRelax,
379 & externForcingCycle, externForcingPeriod,
380 & viscAp, diffKpT, diffKpS, hFacMinDr, hFacMinDp,
381 & theta_S, specVol_S, horiVertRatio, recip_horiVertRatio,
382 & latFFTFiltLo, ivdc_kappa, Ro_SeaLevel, zonal_filt_lat,
383 & bottomDragLinear,bottomDragQuadratic
384
385 _RL cg2dTargetResidual
386 _RL cg3dTargetResidual
387 _RL cg2dpcOffDFac
388 _RL delZ(Nr)
389 _RL delP(Nr)
390 _RL delR(Nr)
391 _RL delX(Nx)
392 _RL delY(Ny)
393 _RL deltaT
394 _RL deltaTClock
395 _RL deltaTmom
396 _RL deltaTtracer
397 _RL abeps
398 _RL phiMin
399 _RL thetaMin
400 _RL rSphere
401 _RL recip_RSphere
402 _RL f0
403 _RL freeSurfFac
404 _RL hFacMin
405 _RL hFacMinDz
406 _RL hFacMinDp
407 _RL hFacMinDr
408 _RL beta
409 _RL viscAh
410 _RL viscAz
411 _RL viscAp
412 _RL viscAr
413 _RL viscA4
414 _RL diffKhT
415 _RL diffKrT
416 _RL diffKzT
417 _RL diffKpT
418 _RL diffK4T
419 _RL diffKhS
420 _RL diffKrS
421 _RL diffKzS
422 _RL diffKpS
423 _RL diffK4S
424 _RL delt
425 _RL tauCD
426 _RL rCD
427 _RL gravity
428 _RL recip_gravity
429 _RL gBaro
430 _RL rhonil
431 _RL recip_rhonil
432 _RL rhoConst
433 _RL recip_rhoConst
434 _RL specVol_S(Nr)
435 _RL tRef(Nr)
436 _RL theta_S(Nr)
437 _RL sRef(Nr)
438 _RS Fcori(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
439 _RL startTime
440 _RL endTime
441 _RL chkPtFreq
442 _RL pChkPtFreq
443 _RL dumpFreq
444 _RL taveFreq
445 _RL afFacMom
446 _RL vfFacMom
447 _RL pfFacMom
448 _RL cfFacMom
449 _RL foFacMom
450 _RL mTFacMom
451 _RL cosPower
452 _RL cAdjFreq
453 _RL omega
454 _RL tauThetaClimRelax
455 _RL lambdaThetaClimRelax
456 _RL tauSaltClimRelax
457 _RL lambdaSaltClimRelax
458 _RL externForcingCycle
459 _RL externForcingPeriod
460 _RL horiVertRatio
461 _RL recip_horiVertRatio
462 _RL latFFTFiltLo
463 _RL ivdc_kappa
464 _RL Ro_SeaLevel
465 _RL zonal_filt_lat
466 _RL bottomDragLinear
467 _RL bottomDragQuadratic
468
469 COMMON /PARM_A/ HeatCapacity_Cp,recip_Cp,
470 & Lamba_theta
471 _RL HeatCapacity_Cp
472 _RL Lamba_theta
473 _RL recip_Cp
474
475 C Equation of State (polynomial coeffients)
476 COMMON /PARM_EOS_NL/ eosC,eosSig0,eosRefT,eosRefS
477 _RL eosC(9,Nr+1),eosSig0(Nr+1),eosRefT(Nr+1),eosRefS(Nr+1)
478 C Linear equation of state
479 C tAlpha - Linear EOS thermal expansion coefficient ( 1/degree ).
480 C sBeta - Linear EOS haline contraction coefficient.
481 COMMON /PARM_EOS_LIN/ tAlpha,sBeta,eosType
482 _RL tAlpha
483 _RL sBeta
484 character*(6) eosType
485
486 C Logical flags for selecting packages
487 LOGICAL useKPP
488 LOGICAL useGMRedi
489 LOGICAL useOBCS
490 LOGICAL useECCO
491 COMMON /PARM_PACKAGES/
492 & useKPP, useGMRedi, useOBCS, useECCO

  ViewVC Help
Powered by ViewVC 1.1.22