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

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

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


Revision 1.123 - (hide annotations) (download)
Tue Sep 7 21:32:09 2004 UTC (19 years, 8 months ago) by edhill
Branch: MAIN
Changes since 1.122: +5 -2 lines
File MIME type: text/plain
 o make the mon_iotype setup in monitor the poster child for MNC/MDSIO
   flag handling

1 edhill 1.123 C $Header: /u/gcmpack/MITgcm/model/inc/PARAMS.h,v 1.122 2004/09/04 18:19:21 edhill Exp $
2 mlosch 1.74 C $Name: $
3 cnh 1.1 C
4 cnh 1.63 CBOP
5     C !ROUTINE: PARAMS.h
6     C !INTERFACE:
7     C include PARAMS.h
8     C !DESCRIPTION: \bv
9     C *==========================================================*
10     C | PARAMS.h
11     C | o Header file defining model "parameters".
12     C *==========================================================*
13     C | The values from the model standard input file are
14     C | stored into the variables held here. Notes describing
15     C | the parameters can also be found here.
16     C *==========================================================*
17     C \ev
18     CEOP
19 cnh 1.13
20     C Macros for special grid options
21     #include "PARAMS_MACROS.h"
22 cnh 1.1
23     C-- Contants
24     C Useful physical values
25     Real*8 PI
26     PARAMETER ( PI = 3.14159265358979323844D0 )
27     Real*8 deg2rad
28     PARAMETER ( deg2rad = 2.D0*PI/360.D0 )
29    
30 cnh 1.7 C Symbolic values
31 cnh 1.63 C precXXXX :: Used to indicate what precision to use for
32 cnh 1.7 C dumping model state.
33     INTEGER precFloat32
34 adcroft 1.36 PARAMETER ( precFloat32 = 32 )
35 cnh 1.7 INTEGER precFloat64
36 adcroft 1.36 PARAMETER ( precFloat64 = 64 )
37 cnh 1.63 C UNSET_xxx :: Used to indicate variables that have not been given a value
38 cnh 1.28 Real*8 UNSET_FLOAT8
39     PARAMETER ( UNSET_FLOAT8 = 1.234567D5 )
40     Real*4 UNSET_FLOAT4
41     PARAMETER ( UNSET_FLOAT4 = 1.234567E5 )
42     _RL UNSET_RL
43     PARAMETER ( UNSET_RL = 1.234567D5 )
44     _RS UNSET_RS
45     PARAMETER ( UNSET_RS = 1.234567E5 )
46     INTEGER UNSET_I
47     PARAMETER ( UNSET_I = 123456789 )
48 cnh 1.7
49     C Checkpoint data
50     INTEGER maxNoChkptLev
51     PARAMETER ( maxNoChkptLev = 2 )
52    
53 cnh 1.1 C-- COMMON /PARM_C/ Character valued parameters used by the model.
54 cnh 1.63 C checkPtSuff :: List of checkpoint file suffices
55     C bathyFile :: File containing bathymetry. If not defined bathymetry
56 cnh 1.16 C is taken from inline function.
57 cnh 1.63 C topoFile :: File containing the topography of the surface (unit=m)
58 jmc 1.55 C (mainly used for the atmosphere = ground height).
59 cnh 1.63 C hydrogThetaFile :: File containing initial hydrographic data for potential
60 cnh 1.16 C temperature.
61 cnh 1.63 C hydrogSaltFile :: File containing initial hydrographic data for salinity.
62     C zonalWindFile :: File containing zonal wind data
63     C meridWindFile :: File containing meridional wind data
64     C thetaClimFile :: File containing theta climataology used
65 cnh 1.18 C in relaxation term -lambda(theta-theta*)
66 cnh 1.63 C saltClimFile :: File containing salt climataology used
67 cnh 1.18 C in relaxation term -lambda(salt-salt*)
68 jmc 1.120 C surfQfile :: File containing surface heat flux, excluding SW
69     C (old version, kept for backward compatibility)
70     C surfQnetFile :: File containing surface net heat flux
71     C surfQswFile :: File containing surface shortwave radiation
72 cnh 1.63 C dQdTfile :: File containing thermal relaxation coefficient
73     C EmPmRfile :: File containing surface fresh water flux
74 mlosch 1.73 C pLoadFile :: File containing pressure loading
75 cnh 1.63 C buoyancyRelation :: Flag used to indicate which relation to use to
76 cnh 1.26 C get buoyancy.
77 mlosch 1.74 C eosType :: choose the equation of state:
78 jmc 1.87 C LINEAR, POLY3, UNESCO, JMD95Z, JMD95P, MDJWF, IDEALGAS
79 cnh 1.16 COMMON /PARM_C/ checkPtSuff,
80 jmc 1.55 & bathyFile, topoFile,
81     & hydrogThetaFile, hydrogSaltFile,
82 cnh 1.18 & zonalWindFile, meridWindFile, thetaClimFile,
83 adcroft 1.37 & saltClimFile, buoyancyRelation,
84 jmc 1.120 & EmPmRfile, surfQfile, surfQnetFile, surfQswFile,
85 heimbach 1.50 & uVelInitFile, vVelInitFile, pSurfInitFile,
86 mlosch 1.74 & dQdTfile, ploadFile,
87 heimbach 1.92 & eosType, pickupSuff,
88 afe 1.116 & mdsioLocalDir
89 cnh 1.7 CHARACTER*(5) checkPtSuff(maxNoChkptLev)
90 jmc 1.55 CHARACTER*(MAX_LEN_FNAM) bathyFile, topoFile
91 cnh 1.16 CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile
92     CHARACTER*(MAX_LEN_FNAM) hydrogSaltFile
93     CHARACTER*(MAX_LEN_FNAM) zonalWindFile
94     CHARACTER*(MAX_LEN_FNAM) meridWindFile
95 cnh 1.18 CHARACTER*(MAX_LEN_FNAM) thetaClimFile
96     CHARACTER*(MAX_LEN_FNAM) saltClimFile
97 adcroft 1.37 CHARACTER*(MAX_LEN_FNAM) surfQfile
98 jmc 1.120 CHARACTER*(MAX_LEN_FNAM) surfQnetFile
99     CHARACTER*(MAX_LEN_FNAM) surfQswFile
100 adcroft 1.37 CHARACTER*(MAX_LEN_FNAM) EmPmRfile
101 cnh 1.26 CHARACTER*(MAX_LEN_FNAM) buoyancyRelation
102 adcroft 1.42 CHARACTER*(MAX_LEN_FNAM) uVelInitFile
103     CHARACTER*(MAX_LEN_FNAM) vVelInitFile
104 adcroft 1.43 CHARACTER*(MAX_LEN_FNAM) pSurfInitFile
105 heimbach 1.50 CHARACTER*(MAX_LEN_FNAM) dQdTfile
106 mlosch 1.73 CHARACTER*(MAX_LEN_FNAM) ploadFile
107 heimbach 1.92 CHARACTER*(MAX_LEN_FNAM) mdsioLocalDir
108 mlosch 1.74 CHARACTER*(6) eosType
109 adcroft 1.90 CHARACTER*(10) pickupSuff
110 cnh 1.7
111 cnh 1.1 C-- COMMON /PARM_I/ Integer valued parameters used by the model.
112 cnh 1.63 C cg2dMaxIters :: Maximum number of iterations in the
113 cnh 1.1 C two-dimensional con. grad solver.
114 cnh 1.63 C cg2dChkResFreq :: Frequency with which to check residual
115 cnh 1.1 C in con. grad solver.
116 jmc 1.119 C cg2dPreCondFreq :: Frequency for updating cg2d preconditioner
117     C (non-linear free-surf.)
118 cnh 1.63 C cg3dMaxIters :: Maximum number of iterations in the
119 cnh 1.33 C three-dimensional con. grad solver.
120 cnh 1.63 C cg3dChkResFreq :: Frequency with which to check residual
121 cnh 1.33 C in con. grad solver.
122 cnh 1.63 C nIter0 :: Start time-step number of for this run
123     C nTimeSteps :: Number of timesteps to execute
124     C numStepsPerPickup :: For offline setup. Frequency of pickup
125 cnh 1.1 C of flow fields.
126 cnh 1.63 C writeStatePrec :: Precision used for writing model state.
127     C writeBinaryPrec :: Precision used for writing binary files
128     C readBinaryPrec :: Precision used for reading binary files
129     C nCheckLev :: Holds current checkpoint level
130     C nonlinFreeSurf :: option related to non-linear free surface
131 jmc 1.55 C =0 Linear free surface ; >0 Non-linear
132 jmc 1.84 C select_rStar :: option related to r* vertical coordinate
133     C =0 (default) use r coord. ; > 0 use r*
134 jmc 1.115 C tempAdvScheme :: Temp. Horiz.Advection scheme selector
135     C tempVertAdvScheme :: Temp. Vert. Advection scheme selector
136     C saltAdvScheme :: Salt. Horiz.advection scheme selector
137     C saltVertAdvScheme :: Salt. Vert. Advection scheme selector
138     C debugLevel :: debug level selector: higher -> more writing
139 edhill 1.123 C mon_iotype :: flag for monitor output (MNC vs. STDOUT)
140 cnh 1.34
141 cnh 1.1 COMMON /PARM_I/
142     & cg2dMaxIters,
143 jmc 1.119 & cg2dChkResFreq, cg2dPreCondFreq,
144 cnh 1.33 & cg3dMaxIters,
145     & cg3dChkResFreq,
146 adcroft 1.41 & nIter0, nTimeSteps, nEndIter,
147 cnh 1.7 & numStepsPerPickup,
148     & writeStatePrec, nCheckLev,
149 cnh 1.34 & writeBinaryPrec, readBinaryPrec,
150 jmc 1.84 & nonlinFreeSurf, select_rStar,
151 jmc 1.115 & tempAdvScheme, tempVertAdvScheme,
152     & saltAdvScheme, saltVertAdvScheme,
153     & tracerAdvScheme,
154 edhill 1.123 & debugLevel,
155     & mon_iotype
156 cnh 1.1 INTEGER cg2dMaxIters
157     INTEGER cg2dChkResFreq
158 jmc 1.119 INTEGER cg2dPreCondFreq
159 cnh 1.33 INTEGER cg3dMaxIters
160     INTEGER cg3dChkResFreq
161 cnh 1.1 INTEGER nIter0
162     INTEGER nTimeSteps
163 adcroft 1.41 INTEGER nEndIter
164 cnh 1.1 INTEGER numStepsPerPickup
165 cnh 1.7 INTEGER writeStatePrec
166     INTEGER writeBinaryPrec
167     INTEGER readBinaryPrec
168     INTEGER nCheckLev
169 jmc 1.55 INTEGER nonlinFreeSurf
170 jmc 1.84 INTEGER select_rStar
171 jmc 1.115 INTEGER tempAdvScheme, tempVertAdvScheme
172     INTEGER saltAdvScheme, saltVertAdvScheme
173 adcroft 1.57 INTEGER tracerAdvScheme
174 heimbach 1.92 INTEGER debugLevel
175 edhill 1.123 INTEGER mon_iotype
176 heimbach 1.92
177     C
178     INTEGER debLevZero
179     PARAMETER(debLevZero=0)
180     INTEGER debLevA
181     PARAMETER(debLevA=1)
182     INTEGER debLevB
183     PARAMETER(debLevB=2)
184 cnh 1.1
185     C-- COMMON /PARM_L/ Logical valued parameters used by the model.
186 cnh 1.63 C usingCartesianGrid :: If TRUE grid generation will be in a cartesian
187 cnh 1.1 C coordinate frame.
188 cnh 1.63 C usingSphericalPolarGrid :: If TRUE grid generation will be in a
189 cnh 1.1 C spherical polar frame.
190 afe 1.114 C usingCylindricalGrid :: If TRUE grid generation will be Cylindrical
191 cnh 1.63 C no_slip_sides :: Impose "no-slip" at lateral boundaries.
192     C no_slip_bottom :: Impose "no-slip" at bottom boundary.
193     C staggerTimeStep :: enable a Stagger time stepping T,S Rho then U,V
194     C momViscosity :: Flag which turns momentum friction terms on and off.
195     C momAdvection :: Flag which turns advection of momentum on and off.
196     C momForcing :: Flag which turns external forcing of momentum on
197 cnh 1.1 C and off.
198 cnh 1.63 C momPressureForcing :: Flag which turns pressure term in momentum equation
199 cnh 1.9 C on and off.
200 cnh 1.63 C metricTerms :: Flag which turns metric terms on or off.
201     C usingSphericalPolarMTerms :: If TRUE use spherical polar metric terms.
202 adcroft 1.77 C useNHMTerms :: If TRUE use non-hydrostatic metric terms.
203 cnh 1.63 C useCoriolis :: Flag which turns the coriolis terms on and off.
204     C tempDiffusion :: Flag which turns diffusion of temperature on
205 cnh 1.1 C and off.
206 cnh 1.63 C tempAdvection :: Flag which turns advection of temperature on
207 cnh 1.1 C and off.
208 cnh 1.63 C tempForcing :: Flag which turns external forcing of temperature on
209 cnh 1.1 C and off.
210 jmc 1.71 C saltDiffusion :: Flag which turns diffusion of salinity on
211 cnh 1.1 C and off.
212 jmc 1.71 C saltAdvection :: Flag which turns advection of salinity on
213 cnh 1.1 C and off.
214 jmc 1.71 C saltForcing :: Flag which turns external forcing of salinity on
215 cnh 1.1 C and off.
216 jmc 1.71 C useRealFreshWaterFlux :: if True (=Natural BCS), treats P+R-E flux
217     C as a real Fresh Water (=> changes the Sea Level)
218     C if F, converts P+R-E to salt flux (no SL effect)
219 cnh 1.63 C rigidLid :: Set to true to use rigid lid
220     C implicitFreeSurface :: Set to true to use implcit free surface
221     C exactConserv :: Set to true to conserve exactly the total Volume
222     C uniformLin_PhiSurf :: Set to true to use a uniform Bo_surf in the
223 jmc 1.55 C linear relation Phi_surf = Bo_surf*eta
224 cnh 1.63 C momStepping :: Turns momentum equation time-stepping off
225     C tempStepping :: Turns temperature equation time-stepping off
226     C saltStepping :: Turns salinity equation time-stepping off
227     C tr1Stepping :: Turns passive tracer 1 time-stepping on/off
228     C useConstantF :: Coriolis parameter set to f0
229     C useBetaPlaneF :: Coriolis parameter set to f0 + beta.y
230     C useSphereF :: Coriolis parameter set to 2.omega.sin(phi)
231 jmc 1.89 C useCDscheme :: use CD-scheme to calculate Coriolis terms.
232 jmc 1.71 C useJamartWetPoints :: Use wet-point method for Coriolis (Jamart and Ozer, 1986)
233 adcroft 1.113 C useJamartMomAdv :: Use wet-point method for V.I. non-linear term
234 adcroft 1.111 C SadournyCoriolis :: use the enstrophy conserving scheme by Sadourny
235     C upwindVorticity :: bias interpolation of vorticity in the Coriolis term
236     C highOrderVorticity :: use 3rd/4th order interp. of vorticity in Coriolis
237     C useAbsVorticity :: work with f+zeta in Coriolis terms
238 cnh 1.63 C implicitDiffusion :: Turns implicit vertical diffusion on
239     C implicitViscosity :: Turns implicit vertical viscosity on
240 jmc 1.100 C tempImplVertAdv :: Turns on implicit vertical advection for Temperature
241     C saltImplVertAdv :: Turns on implicit vertical advection for Salinity
242     C momImplVertAdv :: Turns on implicit vertical advection for Momentum
243 jmc 1.71 C multiDimAdvection :: Flag that enable multi-dimension advection
244 jmc 1.118 C useMultiDimAdvec :: True if multi-dim advection is used at least once
245 jmc 1.71 C forcing_In_AB :: if False, put forcing (Temp,Salt,Tracers) contribution
246     C out off Adams-Bashforth time stepping.
247 cnh 1.63 C doThetaClimRelax :: Set true if relaxation to temperature
248 cnh 1.18 C climatology is required.
249 cnh 1.63 C doSaltClimRelax :: Set true if relaxation to salinity
250 cnh 1.18 C climatology is required.
251 cnh 1.63 C periodicExternalForcing :: Set true if forcing is time-dependant
252     C usingPCoords :: Set to indicate that we are working in pressure
253 jmc 1.87 C coords. (jmc: is it still used ?)
254 cnh 1.63 C usingZCoords :: Set to indicate that we are working in height
255 jmc 1.87 C coords. (jmc: is it still used ?)
256     C useDynP_inEos_Zc :: use the dynamical pressure in EOS (with Z-coord.)
257     C this requires specific code for restart & exchange
258 jmc 1.70 C setCenterDr :: set cell Center depth and put Interface at the middle
259 cnh 1.63 C nonHydrostatic :: Using non-hydrostatic terms
260 adcroft 1.79 C quasiHydrostatic :: Using non-hydrostatic terms in hydrostatic algorithm
261 cnh 1.63 C globalFiles :: Selects between "global" and "tiled" files
262 dimitri 1.85 C useSingleCpuIO :: On SGI platforms, option globalFiles is either
263     C slow (f77) or does not work (f90). When
264     C useSingleCpuIO is set, mdsio_writefield.F
265     C outputs from master mpi process only.
266 jmc 1.97 C allowFreezing :: Allows surface water to freeze and form ice
267     C useOldFreezing :: use the old version (before checkpoint52a_pre, 2003-11-12)
268 cnh 1.63 C groundAtK1 :: put the surface(k=1) at the Lower Boundary (=ground)
269 cnh 1.1 COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid,
270 afe 1.114 & usingCurvilinearGrid, usingCylindricalGrid,
271 adcroft 1.36 & no_slip_sides,no_slip_bottom,
272 adcroft 1.46 & staggerTimeStep,
273 cnh 1.33 & momViscosity, momAdvection, momForcing, useCoriolis,
274 adcroft 1.58 & momPressureForcing, vectorInvariantMomentum,
275     & tempDiffusion, tempAdvection, tempForcing,
276 cnh 1.8 & saltDiffusion, saltAdvection, saltForcing,
277 jmc 1.68 & useRealFreshWaterFlux,
278 jmc 1.55 & rigidLid, implicitFreeSurface, exactConserv, uniformLin_PhiSurf,
279 heimbach 1.56 & momStepping, tempStepping, saltStepping, tr1Stepping,
280 adcroft 1.77 & metricTerms, usingSphericalPolarMTerms, useNHMTerms,
281 cnh 1.15 & useConstantF, useBetaPlaneF, useSphereF,
282 jmc 1.89 & useCDscheme,
283 adcroft 1.113 & useEnergyConservingCoriolis, useJamartWetPoints, useJamartMomAdv,
284 adcroft 1.111 & SadournyCoriolis, upwindVorticity, highOrderVorticity,
285     & useAbsVorticity,
286 adcroft 1.40 & implicitDiffusion, implicitViscosity,
287 jmc 1.100 & tempImplVertAdv, saltImplVertAdv, momImplVertAdv,
288 jmc 1.118 & multiDimAdvection, useMultiDimAdvec, forcing_In_AB,
289 heimbach 1.56 & doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax,
290 jmc 1.70 & periodicExternalForcing,
291 jmc 1.87 & usingPCoords, usingZCoords, useDynP_inEos_Zc, setCenterDr,
292 dimitri 1.85 & nonHydrostatic, quasiHydrostatic, globalFiles, useSingleCpuIO,
293 jmc 1.97 & allowFreezing, useOldFreezing, groundAtK1,
294 jmc 1.117 & usePickupBeforeC35, usePickupBeforeC54, debugMode,
295 jmc 1.71 & readPickupWithTracer, writePickupWithTracer
296 cnh 1.1 LOGICAL usingCartesianGrid
297     LOGICAL usingSphericalPolarGrid
298 afe 1.114 LOGICAL usingCylindricalGrid
299 adcroft 1.52 LOGICAL usingCurvilinearGrid
300 cnh 1.15 LOGICAL usingSphericalPolarMTerms
301 adcroft 1.77 LOGICAL useNHMTerms
302 adcroft 1.36 LOGICAL no_slip_sides
303     LOGICAL no_slip_bottom
304 adcroft 1.46 LOGICAL staggerTimeStep
305 cnh 1.1 LOGICAL momViscosity
306     LOGICAL momAdvection
307     LOGICAL momForcing
308 cnh 1.9 LOGICAL momPressureForcing
309 cnh 1.1 LOGICAL useCoriolis
310 adcroft 1.58 LOGICAL vectorInvariantMomentum
311 cnh 1.1 LOGICAL tempDiffusion
312     LOGICAL tempAdvection
313     LOGICAL tempForcing
314     LOGICAL saltDiffusion
315     LOGICAL saltAdvection
316     LOGICAL saltForcing
317 jmc 1.68 LOGICAL useRealFreshWaterFlux
318 adcroft 1.52 LOGICAL rigidLid
319 cnh 1.8 LOGICAL implicitFreeSurface
320 adcroft 1.52 LOGICAL exactConserv
321 jmc 1.55 LOGICAL uniformLin_PhiSurf
322 cnh 1.10 LOGICAL momStepping
323     LOGICAL tempStepping
324 adcroft 1.17 LOGICAL saltStepping
325 heimbach 1.56 LOGICAL tr1Stepping
326 cnh 1.15 LOGICAL metricTerms
327     LOGICAL useConstantF
328     LOGICAL useBetaPlaneF
329     LOGICAL useSphereF
330 jmc 1.89 LOGICAL useCDscheme
331 jmc 1.71 LOGICAL useEnergyConservingCoriolis
332     LOGICAL useJamartWetPoints
333 adcroft 1.113 LOGICAL useJamartMomAdv
334 adcroft 1.111 LOGICAL SadournyCoriolis
335     LOGICAL upwindVorticity
336     LOGICAL highOrderVorticity
337     LOGICAL useAbsVorticity
338 adcroft 1.14 LOGICAL implicitDiffusion
339 adcroft 1.40 LOGICAL implicitViscosity
340 jmc 1.100 LOGICAL tempImplVertAdv
341     LOGICAL saltImplVertAdv
342     LOGICAL momImplVertAdv
343 jmc 1.71 LOGICAL multiDimAdvection
344 jmc 1.118 LOGICAL useMultiDimAdvec
345 jmc 1.71 LOGICAL forcing_In_AB
346 cnh 1.18 LOGICAL doThetaClimRelax
347     LOGICAL doSaltClimRelax
348 heimbach 1.56 LOGICAL doTr1ClimRelax
349 adcroft 1.19 LOGICAL periodicExternalForcing
350 cnh 1.29 LOGICAL usingPCoords
351     LOGICAL usingZCoords
352 jmc 1.87 LOGICAL useDynP_inEos_Zc
353 jmc 1.70 LOGICAL setCenterDr
354 adcroft 1.37 LOGICAL nonHydrostatic
355 adcroft 1.79 LOGICAL quasiHydrostatic
356 adcroft 1.38 LOGICAL globalFiles
357 dimitri 1.85 LOGICAL useSingleCpuIO
358 adcroft 1.38 LOGICAL allowFreezing
359 jmc 1.97 LOGICAL useOldFreezing
360 adcroft 1.46 LOGICAL groundAtK1
361 heimbach 1.51 LOGICAL usePickupBeforeC35
362 jmc 1.117 LOGICAL usePickupBeforeC54
363 adcroft 1.54 LOGICAL debugMode
364 heimbach 1.56 LOGICAL readPickupWithTracer
365     LOGICAL writePickupWithTracer
366 cnh 1.1
367     C-- COMMON /PARM_R/ "Real" valued parameters used by the model.
368 jmc 1.119 C cg2dTargetResidual
369 cnh 1.63 C :: Target residual for cg2d solver; no unit (RHS normalisation)
370 adcroft 1.52 C cg2dTargetResWunit
371 cnh 1.63 C :: Target residual for cg2d solver; W unit (No RHS normalisation)
372 cnh 1.33 C cg3dTargetResidual
373 cnh 1.63 C :: Target residual for cg3d solver.
374     C cg2dpcOffDFac :: Averaging weight for preconditioner off-diagonal.
375 cnh 1.7 C Note. 20th May 1998
376     C I made a weird discovery! In the model paper we argue
377     C for the form of the preconditioner used here ( see
378     C A Finite-volume, Incompressible Navier-Stokes Model
379     C ...., Marshall et. al ). The algebra gives a simple
380     C 0.5 factor for the averaging of ac and aCw to get a
381     C symmettric pre-conditioner. By using a factor of 0.51
382     C i.e. scaling the off-diagonal terms in the
383     C preconditioner down slightly I managed to get the
384     C number of iterations for convergence in a test case to
385     C drop form 192 -> 134! Need to investigate this further!
386     C For now I have introduced a parameter cg2dpcOffDFac which
387     C defaults to 0.51 but can be set at runtime.
388 cnh 1.63 C delR :: Vertical grid spacing ( units of r ).
389 jmc 1.70 C delRc :: Vertical grid spacing between cell centers (r unit).
390 cnh 1.63 C delX :: Separation between cell faces (m) or (deg), depending
391 cnh 1.1 C delY on input flags.
392 cnh 1.63 C gravity :: Accel. due to gravity ( m/s^2 )
393 cnh 1.32 C recip_gravity and its inverse
394 cnh 1.63 C gBaro :: Accel. due to gravity used in barotropic equation ( m/s^2 )
395 mlosch 1.75 C rhoNil :: Reference density for the linear equation of state
396 cnh 1.63 C rhoConst :: Vertically constant reference density
397 mlosch 1.75 C rhoConstFresh :: Constant reference density for fresh water (rain)
398 cnh 1.63 C startTime :: Start time for model ( s )
399     C phiMin :: Latitude of southern most cell face.
400     C thetaMin :: Longitude of western most cell face (this
401 cnh 1.1 C is an "inert" parameter but it is included
402     C to make geographical references simple.)
403 cnh 1.63 C rSphere :: Radius of sphere for a spherical polar grid ( m ).
404     C recip_RSphere :: Reciprocal radius of sphere ( m ).
405     C f0 :: Reference coriolis parameter ( 1/s )
406 cnh 1.1 C ( Southern edge f for beta plane )
407 cnh 1.63 C beta :: df/dy ( s^-1.m^-1 )
408     C omega :: Angular velocity ( rad/s )
409 jmc 1.88 C rotationPeriod :: Rotation period (s) (= 2.pi/omega)
410 cnh 1.63 C viscAh :: Eddy viscosity coeff. for mixing of
411 cnh 1.1 C momentum laterally ( m^2/s )
412 cnh 1.63 C viscAr :: Eddy viscosity coeff. for mixing of
413 cnh 1.24 C momentum vertically ( units of r^2/s )
414 cnh 1.63 C viscA4 :: Biharmonic viscosity coeff. for mixing of
415 cnh 1.1 C momentum laterally ( m^4/s )
416 adcroft 1.110 C viscC2leith :: Leith non-dimensional viscosity factor
417 adcroft 1.102 C viscAhMax :: Maximum eddy viscosity coeff. for mixing of
418     C momentum laterally ( m^2/s )
419     C viscA4Max :: Maximum biharmonic viscosity coeff. for mixing of
420     C momentum laterally ( m^4/s )
421     C viscAhGrid:: non-dimensional grid-size dependent viscosity
422     C viscA4Grid:: non-dimensional grid-size dependent bi-harmonic viscosity
423 adcroft 1.110 C viscC4leith :: Leith non-dimensional viscosity factor
424 cnh 1.63 C diffKhT :: Laplacian diffusion coeff. for mixing of
425 cnh 1.1 C heat laterally ( m^2/s )
426 cnh 1.63 C diffKrT :: Laplacian diffusion coeff. for mixing of
427 cnh 1.24 C heat vertically ( units of r^2/s )
428 cnh 1.63 C diffK4T :: Biharmonic diffusion coeff. for mixing of
429 cnh 1.1 C heat laterally ( m^4/s )
430 cnh 1.63 C diffKhS :: Laplacian diffusion coeff. for mixing of
431 cnh 1.1 C salt laterally ( m^2/s )
432 cnh 1.63 C diffKrS :: Laplacian diffusion coeff. for mixing of
433 cnh 1.24 C salt vertically ( units of r^2/s )
434 cnh 1.63 C diffK4S :: Biharmonic diffusion coeff. for mixing of
435 cnh 1.1 C salt laterally ( m^4/s )
436 adcroft 1.112 C diffKrBL79surf :: T/S surface diffusivity (m^2/s) Bryan and Lewis, 1979
437     C diffKrBL79deep :: T/S deep diffusivity (m^2/s) Bryan and Lewis, 1979
438     C diffKrBL79scl :: depth scale for arctan fn (m) Bryan and Lewis, 1979
439     C diffKrBL79Ho :: depth offset for arctan fn (m) Bryan and Lewis, 1979
440 cnh 1.63 C deltaT :: Default timestep ( s )
441     C deltaTClock :: Timestep used as model "clock". This determines the
442 cnh 1.7 C IO frequencies and is used in tagging output. It can
443     C be totally different to the dynamical time. Typically
444     C it will be the deep-water timestep for accelerated runs.
445     C Frequency of checkpointing and dumping of the model state
446     C are referenced to this clock. ( s )
447 cnh 1.63 C deltaTMom :: Timestep for momemtum equations ( s )
448     C deltaTtracer :: Timestep for tracer equations ( s )
449 adcroft 1.72 C deltaTfreesurf :: Timestep for free-surface equation ( s )
450 cnh 1.63 C freesurfFac :: Parameter to turn implicit free surface term on or off
451 cnh 1.8 C freesurfac = 1. uses implicit free surface
452     C freesurfac = 0. uses rigid lid
453 cnh 1.63 C implicSurfPress :: parameter of the Crank-Nickelson time stepping :
454 jmc 1.48 C Implicit part of Surface Pressure Gradient ( 0-1 )
455 cnh 1.63 C implicDiv2Dflow :: parameter of the Crank-Nickelson time stepping :
456 jmc 1.48 C Implicit part of barotropic flow Divergence ( 0-1 )
457 cnh 1.63 C hFacMin :: Minimum fraction size of a cell (affects hFacC etc...)
458     C hFacMinDz :: Minimum dimesional size of a cell (affects hFacC etc..., m)
459     C hFacMinDp :: Minimum dimesional size of a cell (affects hFacC etc..., Pa)
460     C hFacMinDr :: Minimum dimesional size of a cell (affects hFacC etc..., units of r)
461     C hFacInf :: Threshold (inf and sup) for fraction size of surface cell
462 adcroft 1.52 C hFacSup that control vanishing and creating levels
463 cnh 1.63 C tauCD :: CD scheme coupling timescale ( 1/s )
464     C rCD :: CD scheme normalised coupling parameter ( 0-1 )
465     C startTime :: Starting time for this integration ( s ).
466     C endTime :: Ending time for this integration ( s ).
467     C chkPtFreq :: Frequency of rolling check pointing ( s ).
468     C pChkPtFreq :: Frequency of permanent check pointing ( s ).
469     C dumpFreq :: Frequency with which model state is written to
470 cnh 1.24 C post-processing files ( s ).
471 cnh 1.63 C diagFreq :: Frequency with which model writes diagnostic output
472 adcroft 1.59 C of intermediate quantities.
473 cnh 1.63 C afFacMom :: Advection of momentum term tracer parameter
474     C vfFacMom :: Momentum viscosity tracer parameter
475     C pfFacMom :: Momentum pressure forcing tracer parameter
476     C cfFacMom :: Coriolis term tracer parameter
477     C foFacMom :: Momentum forcing tracer parameter
478     C mtFacMom :: Metric terms tracer parameter
479     C cosPower :: Power of cosine of latitude to multiply viscosity
480     C cAdjFreq :: Frequency of convective adjustment
481 cnh 1.24 C
482 jmc 1.76 C taveFreq :: Frequency with which time-averaged model state
483     C is written to post-processing files ( s ).
484     C tave_lastIter :: (for state variable only) fraction of the last time
485     C step (of each taveFreq period) put in the time average.
486     C (fraction for 1rst iter = 1 - tave_lastIter)
487 cnh 1.63 C tauThetaClimRelax :: Relaxation to climatology time scale ( s ).
488     C lambdaThetaClimRelax :: Inverse time scale for relaxation ( 1/s ).
489     C tauSaltClimRelax :: Relaxation to climatology time scale ( s ).
490     C lambdaSaltClimRelax :: Inverse time scale for relaxation ( 1/s ).
491 jmc 1.95 C latBandClimRelax :: latitude band where Relaxation to Clim. is applied,
492     C i.e. where |yC| <= latBandClimRelax
493 cnh 1.63 C externForcingPeriod :: Is the period of which forcing varies (eg. 1 month)
494     C externForcingCycle :: Is the repeat time of the forcing (eg. 1 year)
495 adcroft 1.19 C (note: externForcingCycle must be an integer
496     C number times externForcingPeriod)
497 jmc 1.68 C convertFW2Salt :: salinity, used to convert Fresh-Water Flux to Salt Flux
498     C (use model surface (local) value if set to -1)
499     C temp_EvPrRn :: temperature of Rain & Evap.
500     C salt_EvPrRn :: salinity of Rain & Evap.
501     C trac_EvPrRn :: tracer concentration in Rain & Evap.
502     C (notes: a) tracer content of Rain/Evap only used if both
503     C NonLin_FrSurf & useRealFreshWater are set.
504     C b) use model surface (local) value if set to UNSET_RL)
505 cnh 1.63 C horiVertRatio :: Ratio on units in vertical to units in horizontal.
506 cnh 1.31 C recip_horiVertRatio ( 1 if horiz in m and vertical in m ).
507 cnh 1.30 C ( g*rho if horiz in m and vertical in Pa ).
508 cnh 1.63 C Ro_SeaLevel :: standard position of Sea-Level in "R" coordinate, used as
509 adcroft 1.46 C starting value (k=1) for vertical coordinate (rf(1)=Ro_SeaLevel)
510 cnh 1.63 C bottomDragLinear :: Drag coefficient built in to core dynamics
511 adcroft 1.64 C --"-"-- Quadratic ( linear: 1/s, quadratic: 1/m )
512 adcroft 1.52 COMMON /PARM_R/ cg2dTargetResidual, cg2dTargetResWunit,
513     & cg2dpcOffDFac, cg3dTargetResidual,
514 jmc 1.96 & delR, delRc, delX, delY,
515 adcroft 1.72 & deltaT, deltaTmom, deltaTtracer, deltaTfreesurf, deltaTClock,
516     & abeps, startTime,
517 adcroft 1.52 & phiMin, thetaMin, rSphere, recip_RSphere, f0, beta,
518 adcroft 1.78 & fCori, fCoriG, fCoriCos,
519 adcroft 1.110 & viscAh, viscAhMax, viscAhGrid, viscC2leith,
520     & viscA4, viscA4Max, viscA4Grid, viscC4leith,
521 adcroft 1.102 & viscAr, viscAstrain, viscAtension,
522 jmc 1.96 & diffKhT, diffK4T, diffKrT,
523     & diffKhS, diffK4S, diffKrS,
524 adcroft 1.112 & diffKrBL79surf, diffKrBL79deep, diffKrBL79scl, diffKrBL79Ho,
525 jmc 1.48 & delT, tauCD, rCD, freeSurfFac, implicSurfPress, implicDiv2Dflow,
526 adcroft 1.52 & hFacMin, hFacMinDz, hFacInf, hFacSup,
527 cnh 1.32 & gravity, recip_Gravity, gBaro, rhonil, recip_rhonil,
528 mlosch 1.75 & recip_rhoConst, rhoConst,
529 jmc 1.76 & rhoConstFresh, convertEmP2rUnit, tRef, sRef,
530 heimbach 1.103 & endTime, chkPtFreq, pchkPtFreq, dumpFreq, adjDumpFreq,
531 jmc 1.76 & diagFreq, taveFreq, tave_lastIter, monitorFreq,
532 cnh 1.15 & afFacMom, vfFacMom, pfFacMom, cfFacMom, foFacMom, mtFacMom,
533 jmc 1.88 & cosPower, cAdjFreq, omega, rotationPeriod,
534 heimbach 1.56 & tauThetaClimRelax, lambdaThetaClimRelax,
535 adcroft 1.19 & tauSaltClimRelax, lambdaSaltClimRelax,
536 jmc 1.95 & tauTr1ClimRelax, lambdaTr1ClimRelax, latBandClimRelax,
537 cnh 1.27 & externForcingCycle, externForcingPeriod,
538 jmc 1.68 & convertFW2Salt, temp_EvPrRn, salt_EvPrRn, trac_EvPrRn,
539 jmc 1.96 & hFacMinDr, hFacMinDp,
540 jmc 1.68 & horiVertRatio, recip_horiVertRatio,
541 jmc 1.67 & ivdc_kappa, Ro_SeaLevel,
542 afe 1.116 & bottomDragLinear,bottomDragQuadratic,
543     & tCyl
544 cnh 1.27
545 adcroft 1.6 _RL cg2dTargetResidual
546 adcroft 1.52 _RL cg2dTargetResWunit
547 cnh 1.33 _RL cg3dTargetResidual
548 cnh 1.7 _RL cg2dpcOffDFac
549 cnh 1.25 _RL delR(Nr)
550 jmc 1.70 _RL delRc(Nr+1)
551 adcroft 1.6 _RL delX(Nx)
552     _RL delY(Ny)
553     _RL deltaT
554 cnh 1.7 _RL deltaTClock
555 adcroft 1.6 _RL deltaTmom
556     _RL deltaTtracer
557 adcroft 1.72 _RL deltaTfreesurf
558 adcroft 1.6 _RL abeps
559     _RL phiMin
560     _RL thetaMin
561     _RL rSphere
562 cnh 1.25 _RL recip_RSphere
563 adcroft 1.6 _RL f0
564 cnh 1.8 _RL freeSurfFac
565 jmc 1.48 _RL implicSurfPress
566     _RL implicDiv2Dflow
567 adcroft 1.22 _RL hFacMin
568     _RL hFacMinDz
569 cnh 1.28 _RL hFacMinDp
570 cnh 1.27 _RL hFacMinDr
571 adcroft 1.52 _RL hFacInf
572     _RL hFacSup
573 adcroft 1.6 _RL beta
574     _RL viscAh
575 adcroft 1.102 _RL viscAhMax
576     _RL viscAhGrid
577 adcroft 1.110 _RL viscC2leith
578 adcroft 1.60 _RL viscAstrain
579     _RL viscAtension
580 cnh 1.25 _RL viscAr
581 adcroft 1.6 _RL viscA4
582 adcroft 1.102 _RL viscA4Max
583     _RL viscA4Grid
584 adcroft 1.110 _RL viscC4leith
585 adcroft 1.6 _RL diffKhT
586 cnh 1.25 _RL diffKrT
587 adcroft 1.6 _RL diffK4T
588     _RL diffKhS
589 cnh 1.25 _RL diffKrS
590 adcroft 1.6 _RL diffK4S
591 adcroft 1.112 _RL diffKrBL79surf
592     _RL diffKrBL79deep
593     _RL diffKrBL79scl
594     _RL diffKrBL79Ho
595 adcroft 1.6 _RL delt
596     _RL tauCD
597     _RL rCD
598     _RL gravity
599 cnh 1.32 _RL recip_gravity
600 cnh 1.8 _RL gBaro
601 adcroft 1.6 _RL rhonil
602 cnh 1.25 _RL recip_rhonil
603     _RL rhoConst
604 cnh 1.26 _RL recip_rhoConst
605 mlosch 1.75 _RL rhoConstFresh
606 jmc 1.76 _RL convertEmP2rUnit
607 cnh 1.25 _RL tRef(Nr)
608     _RL sRef(Nr)
609 adcroft 1.52 _RS fCori(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
610     _RS fCoriG(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
611 adcroft 1.78 _RS fCoriCos(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
612 adcroft 1.6 _RL startTime
613     _RL endTime
614     _RL chkPtFreq
615 cnh 1.7 _RL pChkPtFreq
616 adcroft 1.6 _RL dumpFreq
617 heimbach 1.103 _RL adjDumpFreq
618 adcroft 1.59 _RL diagFreq
619 adcroft 1.20 _RL taveFreq
620 jmc 1.76 _RL tave_lastIter
621 adcroft 1.53 _RL monitorFreq
622 cnh 1.9 _RL afFacMom
623     _RL vfFacMom
624     _RL pfFacMom
625     _RL cfFacMom
626     _RL foFacMom
627 cnh 1.15 _RL mTFacMom
628 adcroft 1.39 _RL cosPower
629 cnh 1.9 _RL cAdjFreq
630 cnh 1.15 _RL omega
631 jmc 1.88 _RL rotationPeriod
632 cnh 1.18 _RL tauThetaClimRelax
633     _RL lambdaThetaClimRelax
634     _RL tauSaltClimRelax
635     _RL lambdaSaltClimRelax
636 heimbach 1.56 _RL tauTr1ClimRelax
637     _RL lambdaTr1ClimRelax
638 jmc 1.95 _RL latBandClimRelax
639 adcroft 1.19 _RL externForcingCycle
640     _RL externForcingPeriod
641 jmc 1.68 _RL convertFW2Salt
642     _RL temp_EvPrRn
643     _RL salt_EvPrRn
644     _RL trac_EvPrRn
645 cnh 1.30 _RL horiVertRatio
646 cnh 1.31 _RL recip_horiVertRatio
647 adcroft 1.41 _RL ivdc_kappa
648 adcroft 1.46 _RL Ro_SeaLevel
649     _RL bottomDragLinear
650     _RL bottomDragQuadratic
651 afe 1.116 _RL tCyl
652 adcroft 1.6
653 jmc 1.91 C-- COMMON /PARM_A/ Thermodynamics constants ?
654     COMMON /PARM_A/ HeatCapacity_Cp,recip_Cp
655 adcroft 1.6 _RL HeatCapacity_Cp
656 adcroft 1.36 _RL recip_Cp
657 jmc 1.55
658 jmc 1.91 C-- COMMON /PARM_ATM/ Atmospheric physical parameters (Ideal Gas EOS, ...)
659     C celsius2K :: convert centigrade (Celsius) degree to Kelvin
660 jmc 1.83 C atm_Po :: standard reference pressure
661     C atm_Cp :: specific heat (Cp) of the (dry) air at constant pressure
662     C atm_Rd :: gas constant for dry air
663 cnh 1.63 C atm_kappa :: kappa = R/Cp (R: constant of Ideal Gas EOS)
664 jmc 1.94 C atm_Rq :: water vapour specific volume anomaly relative to dry air
665     C (e.g. typical value = (29/18 -1) 10^-3 with q [g/kg])
666 jmc 1.83 C integr_GeoPot :: option to select the way we integrate the geopotential
667 jmc 1.55 C (still a subject of discussions ...)
668 jmc 1.83 C selectFindRoSurf :: select the way surf. ref. pressure (=Ro_surf) is
669     C derived from the orography. Implemented: 0,1 (see INI_P_GROUND)
670 jmc 1.91 COMMON /PARM_ATM/
671     & celsius2K,
672 jmc 1.94 & atm_Cp, atm_Rd, atm_kappa, atm_Rq, atm_Po,
673 jmc 1.91 & integr_GeoPot, selectFindRoSurf
674     _RL celsius2K
675 jmc 1.94 _RL atm_Po, atm_Cp, atm_Rd, atm_kappa, atm_Rq
676 jmc 1.83 INTEGER integr_GeoPot, selectFindRoSurf
677 cnh 1.7
678 adcroft 1.44 C Logical flags for selecting packages
679 mlosch 1.121 LOGICAL usePP81
680     LOGICAL useMY82
681 heimbach 1.45 LOGICAL useKPP
682     LOGICAL useGMRedi
683 adcroft 1.46 LOGICAL useOBCS
684 jmc 1.49 LOGICAL useAIM
685 jmc 1.91 LOGICAL useLand
686 heimbach 1.56 LOGICAL useGrdchk
687 heimbach 1.45 LOGICAL useECCO
688 adcroft 1.52 LOGICAL useSHAP_FILT
689 jmc 1.67 LOGICAL useZONAL_FILT
690 adcroft 1.62 LOGICAL useFLT
691 adcroft 1.69 LOGICAL usePTRACERS
692 dimitri 1.86 LOGICAL useSBO
693 heimbach 1.80 LOGICAL useSEAICE
694 jmc 1.98 LOGICAL useBulkForce
695     LOGICAL useThSIce
696 molod 1.99 LOGICAL usefizhi
697     LOGICAL usegridalt
698 molod 1.101 LOGICAL usediagnostics
699 heimbach 1.109 LOGICAL useEBM
700 adcroft 1.44 COMMON /PARM_PACKAGES/
701 jmc 1.91 & useKPP, useGMRedi, useOBCS, useAIM, useLand, useECCO,
702 adcroft 1.69 & useSHAP_FILT, useZONAL_FILT, useGrdchk, useFLT,
703 molod 1.101 & usePTRACERS, useSBO, useSEAICE, useThSIce, useBulkForce,
704 mlosch 1.121 & usefizhi, usegridalt, usediagnostics, useEBM,
705     & usePP81, useMY82
706 edhill 1.105
707     C Run-time flags for early-initialization of MNC
708     LOGICAL
709     & useMNC,
710 edhill 1.106 & mnc_use_indir, mnc_use_outdir, mnc_outdir_date,
711 edhill 1.108 & mnc_echo_gvtypes, mnc_pickup_write, mnc_pickup_read,
712 edhill 1.107 & mnc_use_for_mon
713 edhill 1.106 CHARACTER*(MAX_LEN_FNAM) mnc_outdir_str
714     CHARACTER*(MAX_LEN_FNAM) mnc_indir_str
715 edhill 1.122 CHARACTER*(MAX_LEN_FNAM) the_run_name
716 edhill 1.105 COMMON /PARM_MNC/
717     & useMNC,
718 edhill 1.106 & mnc_use_indir, mnc_use_outdir, mnc_outdir_date,
719 edhill 1.108 & mnc_echo_gvtypes, mnc_pickup_write, mnc_pickup_read,
720 edhill 1.122 & mnc_use_for_mon,
721 edhill 1.107 & mnc_outdir_str, mnc_indir_str,
722 edhill 1.122 & the_run_name
723 edhill 1.105
724    
725     CEH3 ;;; Local Variables: ***
726     CEH3 ;;; mode:fortran ***
727     CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22