/[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.33 - (show annotations) (download)
Wed Oct 28 03:11:36 1998 UTC (25 years, 6 months ago) by cnh
Branch: MAIN
CVS Tags: checkpoint17, checkpoint16
Changes since 1.32: +18 -6 lines
File MIME type: text/plain
Changes to support
 - g77 compilation under Linux
 - LR(1) form of 64-bit is D or E for constants
 - Modified adjoint of exch with adjoint variables
   acuumulated.

1 C $Header: /u/gcmpack/models/MITgcmUV/model/inc/PARAMS.h,v 1.32 1998/09/09 15:19:07 cnh 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 = 0 )
27 INTEGER precFloat64
28 PARAMETER ( precFloat64 = 1 )
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 buoyancyRelation - Flag used to indicate which relation to use to
59 C get buoyancy.
60 COMMON /PARM_C/ checkPtSuff,
61 & bathyFile, hydrogThetaFile, hydrogSaltFile,
62 & zonalWindFile, meridWindFile, thetaClimFile,
63 & saltClimFile, buoyancyRelation
64 CHARACTER*(5) checkPtSuff(maxNoChkptLev)
65 CHARACTER*(MAX_LEN_FNAM) bathyFile
66 CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile
67 CHARACTER*(MAX_LEN_FNAM) hydrogSaltFile
68 CHARACTER*(MAX_LEN_FNAM) zonalWindFile
69 CHARACTER*(MAX_LEN_FNAM) meridWindFile
70 CHARACTER*(MAX_LEN_FNAM) thetaClimFile
71 CHARACTER*(MAX_LEN_FNAM) saltClimFile
72 CHARACTER*(MAX_LEN_FNAM) buoyancyRelation
73
74 C-- COMMON /PARM_I/ Integer valued parameters used by the model.
75 C cg2dMaxIters - Maximum number of iterations in the
76 C two-dimensional con. grad solver.
77 C cg2dChkResFreq - Frequency with which to check residual
78 C in con. grad solver.
79 C cg3dMaxIters - Maximum number of iterations in the
80 C three-dimensional con. grad solver.
81 C cg3dChkResFreq - Frequency with which to check residual
82 C in con. grad solver.
83 C nIter0 - Start time-step number of for this run
84 C nTimeSteps - Number of timesteps to execute
85 C numStepsPerPickup - For offline setup. Frequency of pickup
86 C of flow fields.
87 C writeStatePrec - Precision used for writing model state.
88 C writeBinaryPrec - Precision used for writing binary files
89 C readBinaryPrec - Precision used for reading binary files
90 C nCheckLev - Holds current checkpoint level
91 COMMON /PARM_I/
92 & cg2dMaxIters,
93 & cg2dChkResFreq,
94 & cg3dMaxIters,
95 & cg3dChkResFreq,
96 & nIter0, nTimeSteps,
97 & numStepsPerPickup,
98 & writeStatePrec, nCheckLev,
99 & writeBinaryPrec, readBinaryPrec
100 INTEGER cg2dMaxIters
101 INTEGER cg2dChkResFreq
102 INTEGER cg3dMaxIters
103 INTEGER cg3dChkResFreq
104 INTEGER nIter0
105 INTEGER nTimeSteps
106 INTEGER numStepsPerPickup
107 INTEGER writeStatePrec
108 INTEGER writeBinaryPrec
109 INTEGER readBinaryPrec
110 INTEGER nCheckLev
111
112 C-- COMMON /PARM_L/ Logical valued parameters used by the model.
113 C usingCartesianGrid - If TRUE grid generation will be in a cartesian
114 C coordinate frame.
115 C usingSphericalPolarGrid - If TRUE grid generation will be in a
116 C spherical polar frame.
117 C momViscosity - Flag which turns momentum friction terms on and off.
118 C momAdvection - Flag which turns advection of momentum on and off.
119 C momForcing - Flag which turns external forcing of momentum on
120 C and off.
121 C momPressureForcing - Flag which turns pressure term in momentum equation
122 C on and off.
123 C metricTerms - Flag which turns metric terms on or off.
124 C usingSphericalPolarMTerms - If TRUE use spherical polar metric terms.
125 C useCoriolis - Flag which turns the coriolis terms on and off.
126 C tempDiffusion - Flag which turns diffusion of temperature on
127 C and off.
128 C tempAdvection - Flag which turns advection of temperature on
129 C and off.
130 C tempForcing - Flag which turns external forcing of temperature on
131 C and off.
132 C saltDiffusion - Flag which turns diffusion of salinit on
133 C and off.
134 C saltAdvection - Flag which turns advection of salinit on
135 C and off.
136 C saltForcing - Flag which turns external forcing of salinit on
137 C and off.
138 C implicitFreeSurface - Set to true to use implcit free surface
139 C rigidLid - Set to true to use rigid lid
140 C momStepping - Turns momentum equation time-stepping off
141 C tempStepping - Turns temperature equation time-stepping off
142 C saltStepping - Turns salinity equation time-stepping off
143 C useConstantF - Coriolis parameter set to f0
144 C useBetaPlaneF - Coriolis parameter set to f0 + beta.y
145 C useSphereF - Coriolis parameter set to 2.omega.sin(phi)
146 C implicitDiffusion - Turns implicit vertical diffusion on
147 C doThetaClimRelax - Set true if relaxation to temperature
148 C climatology is required.
149 C doSaltClimRelax - Set true if relaxation to salinity
150 C climatology is required.
151 C periodicExternalForcing - Set true if forcing is time-dependant
152 C usingPCoords - Set to indicate that we are working in pressure
153 C coords.
154 C usingZCoords - Set to indicate that we are working in height
155 C coords.
156 COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid,
157 & momViscosity, momAdvection, momForcing, useCoriolis,
158 & momPressureForcing,tempDiffusion, tempAdvection, tempForcing,
159 & saltDiffusion, saltAdvection, saltForcing,
160 & implicitFreeSurface, rigidLid,
161 & momStepping, tempStepping, saltStepping,
162 & metricTerms, usingSphericalPolarMTerms,
163 & useConstantF, useBetaPlaneF, useSphereF,
164 & implicitDiffusion, doThetaClimRelax, doSaltClimRelax,
165 & periodicExternalForcing, usingPCoords, usingZCoords
166 LOGICAL usingCartesianGrid
167 LOGICAL usingSphericalPolarGrid
168 LOGICAL usingSphericalPolarMTerms
169 LOGICAL momViscosity
170 LOGICAL momAdvection
171 LOGICAL momForcing
172 LOGICAL momPressureForcing
173 LOGICAL useCoriolis
174 LOGICAL tempDiffusion
175 LOGICAL tempAdvection
176 LOGICAL tempForcing
177 LOGICAL saltDiffusion
178 LOGICAL saltAdvection
179 LOGICAL saltForcing
180 LOGICAL implicitFreeSurface
181 LOGICAL rigidLid
182 LOGICAL momStepping
183 LOGICAL tempStepping
184 LOGICAL saltStepping
185 LOGICAL metricTerms
186 LOGICAL useConstantF
187 LOGICAL useBetaPlaneF
188 LOGICAL useSphereF
189 LOGICAL implicitDiffusion
190 LOGICAL doThetaClimRelax
191 LOGICAL doSaltClimRelax
192 LOGICAL periodicExternalForcing
193 LOGICAL usingPCoords
194 LOGICAL usingZCoords
195
196 C-- COMMON /PARM_R/ "Real" valued parameters used by the model.
197 C cg2dTargetResidual
198 C - Target residual for cg2d solver.
199 C cg3dTargetResidual
200 C - Target residual for cg3d solver.
201 C cg2dpcOffDFac - Averaging weight for preconditioner off-diagonal.
202 C Note. 20th May 1998
203 C I made a weird discovery! In the model paper we argue
204 C for the form of the preconditioner used here ( see
205 C A Finite-volume, Incompressible Navier-Stokes Model
206 C ...., Marshall et. al ). The algebra gives a simple
207 C 0.5 factor for the averaging of ac and aCw to get a
208 C symmettric pre-conditioner. By using a factor of 0.51
209 C i.e. scaling the off-diagonal terms in the
210 C preconditioner down slightly I managed to get the
211 C number of iterations for convergence in a test case to
212 C drop form 192 -> 134! Need to investigate this further!
213 C For now I have introduced a parameter cg2dpcOffDFac which
214 C defaults to 0.51 but can be set at runtime.
215 C delP - Vertical grid spacing ( Pa ).
216 C delZ - Vertical grid spacing ( m ).
217 C delR - Vertical grid spacing ( units of r ).
218 C delX - Separation between cell faces (m) or (deg), depending
219 C delY on input flags.
220 C gravity - Accel. due to gravity ( m/s^2 )
221 C recip_gravity and its inverse
222 C gBaro - Accel. due to gravity used in barotropic equation ( m/s^2 )
223 C ronil - Reference density
224 C rhoConst - Vertically constant reference density
225 C startTime - Start time for model ( s )
226 C phiMin - Latitude of southern most cell face.
227 C thetaMin - Longitude of western most cell face (this
228 C is an "inert" parameter but it is included
229 C to make geographical references simple.)
230 C rSphere - Radius of sphere for a spherical polar grid ( m ).
231 C recip_RSphere - Reciprocal radius of sphere ( m ).
232 C f0 - Reference coriolis parameter ( 1/s )
233 C ( Southern edge f for beta plane )
234 C beta - df/dy ( s^-1.m^-1 )
235 C omega - Angular velocity ( rad/s )
236 C viscAh - Eddy viscosity coeff. for mixing of
237 C momentum laterally ( m^2/s )
238 C viscAz - Eddy viscosity coeff. for mixing of
239 C momentum vertically ( m^2/s )
240 C viscAp - Eddy viscosity coeff. for mixing of
241 C momentum vertically ( Pa^2/s )
242 C viscAr - Eddy viscosity coeff. for mixing of
243 C momentum vertically ( units of r^2/s )
244 C viscA4 - Biharmonic viscosity coeff. for mixing of
245 C momentum laterally ( m^4/s )
246 C diffKhT - Laplacian diffusion coeff. for mixing of
247 C heat laterally ( m^2/s )
248 C diffKzT - Laplacian diffusion coeff. for mixing of
249 C heat vertically ( m^2/s )
250 C diffKpT - Laplacian diffusion coeff. for mixing of
251 C heat vertically ( Pa^2/s )
252 C diffKrT - Laplacian diffusion coeff. for mixing of
253 C heat vertically ( units of r^2/s )
254 C diffK4T - Biharmonic diffusion coeff. for mixing of
255 C heat laterally ( m^4/s )
256 C diffKhS - Laplacian diffusion coeff. for mixing of
257 C salt laterally ( m^2/s )
258 C diffKzS - Laplacian diffusion coeff. for mixing of
259 C salt vertically ( m^2/s )
260 C diffKpS - Laplacian diffusion coeff. for mixing of
261 C salt vertically ( Pa^2/s )
262 C diffKrS - Laplacian diffusion coeff. for mixing of
263 C salt vertically ( units of r^2/s )
264 C diffK4S - Biharmonic diffusion coeff. for mixing of
265 C salt laterally ( m^4/s )
266 C deltaT - Default timestep ( s )
267 C deltaTClock - Timestep used as model "clock". This determines the
268 C IO frequencies and is used in tagging output. It can
269 C be totally different to the dynamical time. Typically
270 C it will be the deep-water timestep for accelerated runs.
271 C Frequency of checkpointing and dumping of the model state
272 C are referenced to this clock. ( s )
273 C deltaTMom - Timestep for momemtum equations ( s )
274 C deltaTtracer - Timestep for tracer equations ( s )
275 C freesurfFac - Parameter to turn implicit free surface term on or off
276 C freesurfac = 1. uses implicit free surface
277 C freesurfac = 0. uses rigid lid
278 C hFacMin - Minimum fraction size of a cell (affects hFacC etc...)
279 C hFacMinDz - Minimum dimesional size of a cell (affects hFacC etc..., m)
280 C hFacMinDp - Minimum dimesional size of a cell (affects hFacC etc..., Pa)
281 C hFacMinDr - Minimum dimesional size of a cell (affects hFacC etc..., units of r)
282 C tauCD - CD scheme coupling timescale ( 1/s )
283 C rCD - CD scheme normalised coupling parameter ( 0-1 )
284 C GMmaxslope - max. slope allowed in GM/Redi tensor
285 C GMlength - Length to use in Visbeck et al. formula for K (m)
286 C GMalpha - alpha to use in Visbeck et al. formula for K
287 C GMdepth - Depth over which to integrate Richardson # (Visbeck et al.)
288 C GMkbackground - background value of GM/Redi diffusion coefficient ( m^2/s )
289 C GMmaxval - max. value of KapGM allowed in GM/Redi scheme ( m^2/s )
290 C startTime - Starting time for this integration ( s ).
291 C endTime - Ending time for this integration ( s ).
292 C chkPtFreq - Frequency of rolling check pointing ( s ).
293 C pChkPtFreq - Frequency of permanent check pointing ( s ).
294 C dumpFreq - Frequency with which model state is written to
295 C post-processing files ( s ).
296 C afFacMom - Advection of momentum term tracer parameter
297 C vfFacMom - Momentum viscosity tracer parameter
298 C pfFacMom - Momentum pressure forcing tracer parameter
299 C cfFacMom - Coriolis term tracer parameter
300 C foFacMom - Momentum forcing tracer parameter
301 C mtFacMom - Metric terms tracer parameter
302 C cAdjFreq - Frequency of convective adjustment
303 C
304 C taveFreq - Frequency with which time-averaged model state is written to
305 C post-processing files ( s ).
306 C tauThetaClimRelax - Relaxation to climatology time scale ( s ).
307 C lambdaThetaClimRelax - Inverse time scale for relaxation ( 1/s ).
308 C tauSaltClimRelax - Relaxation to climatology time scale ( s ).
309 C lambdaSaltClimRelax - Inverse time scale for relaxation ( 1/s ).
310 C externForcingPeriod - Is the period of which forcing varies (eg. 1 month)
311 C externForcingCycle - Is the repeat time of the forcing (eg. 1 year)
312 C (note: externForcingCycle must be an integer
313 C number times externForcingPeriod)
314 C horiVertRatio - Ratio on units in vertical to units in horizontal.
315 C recip_horiVertRatio ( 1 if horiz in m and vertical in m ).
316 C ( g*rho if horiz in m and vertical in Pa ).
317 COMMON /PARM_R/ cg2dTargetResidual, cg2dpcOffDFac,
318 & cg3dTargetResidual,
319 & delP, delZ, delR, delX, delY,
320 & deltaT,deltaTmom, deltaTtracer, deltaTClock,abeps, startTime,
321 & phiMin, thetaMin, rSphere, recip_RSphere, f0, fCori, beta,
322 & viscAh, viscAz, viscA4, viscAr,
323 & diffKhT, diffKzT, diffK4T, diffKrT,
324 & diffKhS, diffKzS, diffK4S, diffKrS,
325 & delT, tauCD, rCD, freeSurfFac, hFacMin, hFacMinDz,
326 & GMmaxslope,GMlength,GMalpha,GMdepth,GMkbackground,GMmaxval,
327 & gravity, recip_Gravity, gBaro, rhonil, recip_rhonil,
328 & recip_rhoConst, rhoConst, tRef, sRef,
329 & endTime, chkPtFreq, pchkPtFreq, dumpFreq, taveFreq,
330 & afFacMom, vfFacMom, pfFacMom, cfFacMom, foFacMom, mtFacMom,
331 & cAdjFreq, omega, tauThetaClimRelax, lambdaThetaClimRelax,
332 & tauSaltClimRelax, lambdaSaltClimRelax,
333 & externForcingCycle, externForcingPeriod,
334 & viscAp, diffKpT, diffKpS, hFacMinDr, hFacMinDp,
335 & theta_S, specVol_S, horiVertRatio, recip_horiVertRatio
336
337 _RL cg2dTargetResidual
338 _RL cg3dTargetResidual
339 _RL cg2dpcOffDFac
340 _RL delZ(Nr)
341 _RL delP(Nr)
342 _RL delR(Nr)
343 _RL delX(Nx)
344 _RL delY(Ny)
345 _RL deltaT
346 _RL deltaTClock
347 _RL deltaTmom
348 _RL deltaTtracer
349 _RL abeps
350 _RL phiMin
351 _RL thetaMin
352 _RL rSphere
353 _RL recip_RSphere
354 _RL f0
355 _RL freeSurfFac
356 _RL hFacMin
357 _RL hFacMinDz
358 _RL hFacMinDp
359 _RL hFacMinDr
360 _RL beta
361 _RL viscAh
362 _RL viscAz
363 _RL viscAp
364 _RL viscAr
365 _RL viscA4
366 _RL diffKhT
367 _RL diffKrT
368 _RL diffKzT
369 _RL diffKpT
370 _RL diffK4T
371 _RL diffKhS
372 _RL diffKrS
373 _RL diffKzS
374 _RL diffKpS
375 _RL diffK4S
376 _RL delt
377 _RL tauCD
378 _RL rCD
379 _RL GMmaxslope
380 _RL GMlength
381 _RL GMalpha
382 _RL GMdepth
383 _RL GMkbackground
384 _RL GMmaxval
385 _RL gravity
386 _RL recip_gravity
387 _RL gBaro
388 _RL rhonil
389 _RL recip_rhonil
390 _RL rhoConst
391 _RL recip_rhoConst
392 _RL specVol_S(Nr)
393 _RL tRef(Nr)
394 _RL theta_S(Nr)
395 _RL sRef(Nr)
396 _RS Fcori(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
397 _RL startTime
398 _RL endTime
399 _RL chkPtFreq
400 _RL pChkPtFreq
401 _RL dumpFreq
402 _RL taveFreq
403 _RL afFacMom
404 _RL vfFacMom
405 _RL pfFacMom
406 _RL cfFacMom
407 _RL foFacMom
408 _RL mTFacMom
409 _RL cAdjFreq
410 _RL omega
411 _RL tauThetaClimRelax
412 _RL lambdaThetaClimRelax
413 _RL tauSaltClimRelax
414 _RL lambdaSaltClimRelax
415 _RL externForcingCycle
416 _RL externForcingPeriod
417 _RL horiVertRatio
418 _RL recip_horiVertRatio
419
420 COMMON /PARM_A/ HeatCapacity_Cp,
421 & Lamba_theta
422 _RL HeatCapacity_Cp
423 _RL Lamba_theta
424
425 C Equation of State (polynomial coeffients)
426 COMMON /PARM_EOS_NL/ eosC,eosSig0,eosRefT,eosRefS
427 _RL eosC(9,Nr+1),eosSig0(Nr+1),eosRefT(Nr+1),eosRefS(Nr+1)
428 C Linear equation of state
429 C tAlpha - Linear EOS thermal expansion coefficient ( 1/degree ).
430 C sBeta - Linear EOS haline contraction coefficient.
431 COMMON /PARM_EOS_LIN/ tAlpha,sBeta,eosType
432 _RL tAlpha
433 _RL sBeta
434 character*(6) eosType
435

  ViewVC Help
Powered by ViewVC 1.1.22