Back to home page




File indexing completed on 2024-05-25 05:10:14 UTC

view on githubraw file Latest commit 00f81e67 on 2024-05-24 21:00:12 UTC
ac0f2a1690 Chri*0001 CBOP
a30418b6b9 Ed H*0002 C     !ROUTINE: PARAMS.h
                0003 C     !INTERFACE:
                0004 C     #include PARAMS.h
                0006 C     !DESCRIPTION:
                0007 C     Header file defining model "parameters".  The values from the
                0008 C     model standard input file are stored into the variables held
                0009 C     here. Notes describing the parameters can also be found here.
ac0f2a1690 Chri*0011 CEOP
924557e60a Chri*0012 
                0013 C--   Contants
                0014 C     Useful physical values
                0015       Real*8 PI
                0016       PARAMETER ( PI    = 3.14159265358979323844D0   )
                0017       Real*8 deg2rad
                0018       PARAMETER ( deg2rad = 2.D0*PI/360.D0           )
                0020 C--   COMMON /PARM_C/ Character valued parameters used by the model.
9fafc42509 Jean*0021 C     buoyancyRelation :: Flag used to indicate which relation to use to
                0022 C                         get buoyancy.
                0023 C     eosType         :: choose the equation of state:
                0024 C                        LINEAR, POLY3, UNESCO, JMD95Z, JMD95P, MDJWF, IDEALGAS
                0025 C     pickupSuff      :: force to start from pickup files (even if nIter0=0)
                0026 C                        and read pickup files with this suffix (max 10 Char.)
                0027 C     mdsioLocalDir   :: read-write tiled file from/to this directory name
                0028 C                        (+ 4 digits Processor-Rank) instead of current dir.
76099ab0aa Jean*0029 C     adTapeDir       :: read-write checkpointing tape files from/to this
83d329dbf1 Mart*0030 C                        directory name instead of current dir. Conflicts
                0031 C                        mdsioLocalDir, so only one of the two can be set.
afed22d369 Jean*0032 C     tRefFile      :: File containing reference Potential Temperat.  tRef (1.D)
                0033 C     sRefFile      :: File containing reference salinity/spec.humid. sRef (1.D)
                0034 C     rhoRefFile    :: File containing reference density profile rhoRef (1.D)
6ef71429db Jean*0035 C     gravityFile   :: File containing gravity vertical profile (1.D)
afed22d369 Jean*0036 C     delRFile      :: File containing vertical grid spacing delR  (1.D array)
                0037 C     delRcFile     :: File containing vertical grid spacing delRc (1.D array)
f15994caab Jean*0038 C     hybSigmFile   :: File containing hybrid-sigma vertical coord. coeff. (2x 1.D)
7feb50e40b Jean*0039 C     delXFile      :: File containing X-spacing grid definition (1.D array)
                0040 C     delYFile      :: File containing Y-spacing grid definition (1.D array)
afed22d369 Jean*0041 C     horizGridFile :: File containing horizontal-grid definition
7feb50e40b Jean*0042 C                        (only when using curvilinear_grid)
9fafc42509 Jean*0043 C     bathyFile       :: File containing bathymetry. If not defined bathymetry
                0044 C                        is taken from inline function.
                0045 C     topoFile        :: File containing the topography of the surface (unit=m)
                0046 C                        (mainly used for the atmosphere = ground height).
26565fca80 Jean*0047 C     addWwallFile    :: File containing 2-D additional Western  cell-edge wall
                0048 C     addSwallFile    :: File containing 2-D additional Southern cell-edge wall
                0049 C                        (e.g., to add "thin-wall" where it is =1)
9fafc42509 Jean*0050 C     hydrogThetaFile :: File containing initial hydrographic data (3-D)
                0051 C                        for potential temperature.
                0052 C     hydrogSaltFile  :: File containing initial hydrographic data (3-D)
                0053 C                        for salinity.
a7c5f770ff Dimi*0054 C     diffKrFile      :: File containing 3D specification of vertical diffusivity
d062b1342f Gael*0055 C     viscAhDfile     :: File containing 3D specification of horizontal viscosity
                0056 C     viscAhZfile     :: File containing 3D specification of horizontal viscosity
                0057 C     viscA4Dfile     :: File containing 3D specification of horizontal viscosity
                0058 C     viscA4Zfile     :: File containing 3D specification of horizontal viscosity
ac0f2a1690 Chri*0059 C     zonalWindFile   :: File containing zonal wind data
                0060 C     meridWindFile   :: File containing meridional wind data
9fafc42509 Jean*0061 C     thetaClimFile   :: File containing surface theta climataology used
0097b465dd Jean*0062 C                        in relaxation term -lambda(theta-theta*)
9fafc42509 Jean*0063 C     saltClimFile    :: File containing surface salt climataology used
0097b465dd Jean*0064 C                        in relaxation term -lambda(salt-salt*)
2d2cc93d4f Jean*0065 C     surfQfile       :: File containing surface heat flux, excluding SW
                0066 C                        (old version, kept for backward compatibility)
                0067 C     surfQnetFile    :: File containing surface net heat flux
                0068 C     surfQswFile     :: File containing surface shortwave radiation
ac0f2a1690 Chri*0069 C     EmPmRfile       :: File containing surface fresh water flux
8f02cfbf56 Dimi*0070 C           NOTE: for backward compatibility EmPmRfile is specified in
                0071 C                 m/s when using external_fields_load.F.  It is converted
                0072 C                 to kg/m2/s by multiplying by rhoConstFresh.
1e273d1bf5 Jean*0073 C     saltFluxFile    :: File containing surface salt flux
395b093796 Mart*0074 C     pLoadFile       :: File containing pressure loading
0320e25227 Mart*0075 C     geoPotAnomFile  :: File containing constant geopotential anomaly due to
                0076 C                        density structure
22dbc402ed Jean*0077 C     addMassFile     :: File containing source/sink of fluid in the interior
43af9695da Gael*0078 C     eddyPsiXFile    :: File containing zonal Eddy streamfunction data
                0079 C     eddyPsiYFile    :: File containing meridional Eddy streamfunction data
7e00d7e8f9 Jean*0080 C     geothermalFile  :: File containing geothermal heat flux
                0081 C     lambdaThetaFile :: File containing SST relaxation coefficient
                0082 C     lambdaSaltFile  :: File containing SSS relaxation coefficient
                0083 C     wghtBalanceFile :: File containing weight used in balancing net EmPmR
a30418b6b9 Ed H*0084 C     the_run_name    :: string identifying the name of the model "run"
9fafc42509 Jean*0085       COMMON /PARM_C/
                0086      &                buoyancyRelation, eosType,
83d329dbf1 Mart*0087      &                pickupSuff, mdsioLocalDir, adTapeDir,
6ef71429db Jean*0088      &                tRefFile, sRefFile, rhoRefFile, gravityFile,
f15994caab Jean*0089      &                delRFile, delRcFile, hybSigmFile,
7feb50e40b Jean*0090      &                delXFile, delYFile, horizGridFile,
26565fca80 Jean*0091      &                bathyFile, topoFile, addWwallFile, addSwallFile,
59cf2de9a0 Jean*0092      &                viscAhDfile, viscAhZfile,
                0093      &                viscA4Dfile, viscA4Zfile,
a7c5f770ff Dimi*0094      &                hydrogThetaFile, hydrogSaltFile, diffKrFile,
42bd47f06f Chri*0095      &                zonalWindFile, meridWindFile, thetaClimFile,
9fafc42509 Jean*0096      &                saltClimFile,
1e273d1bf5 Jean*0097      &                EmPmRfile, saltFluxFile,
                0098      &                surfQfile, surfQnetFile, surfQswFile,
2dcaa8b9a5 Patr*0099      &                uVelInitFile, vVelInitFile, pSurfInitFile,
0320e25227 Mart*0100      &                pLoadFile, geoPotAnomFile, addMassFile,
90929f8806 Patr*0101      &                eddyPsiXFile, eddyPsiYFile, geothermalFile,
7e00d7e8f9 Jean*0102      &                lambdaThetaFile, lambdaSaltFile, wghtBalanceFile,
a30418b6b9 Ed H*0103      &                the_run_name
9fafc42509 Jean*0104       CHARACTER*(MAX_LEN_FNAM) buoyancyRelation
                0105       CHARACTER*(6)  eosType
                0106       CHARACTER*(10) pickupSuff
                0107       CHARACTER*(MAX_LEN_FNAM) mdsioLocalDir
83d329dbf1 Mart*0108       CHARACTER*(MAX_LEN_FNAM) adTapeDir
afed22d369 Jean*0109       CHARACTER*(MAX_LEN_FNAM) tRefFile
                0110       CHARACTER*(MAX_LEN_FNAM) sRefFile
                0111       CHARACTER*(MAX_LEN_FNAM) rhoRefFile
6ef71429db Jean*0112       CHARACTER*(MAX_LEN_FNAM) gravityFile
afed22d369 Jean*0113       CHARACTER*(MAX_LEN_FNAM) delRFile
                0114       CHARACTER*(MAX_LEN_FNAM) delRcFile
f15994caab Jean*0115       CHARACTER*(MAX_LEN_FNAM) hybSigmFile
7feb50e40b Jean*0116       CHARACTER*(MAX_LEN_FNAM) delXFile
                0117       CHARACTER*(MAX_LEN_FNAM) delYFile
50b73ab0f2 Jean*0118       CHARACTER*(MAX_LEN_FNAM) horizGridFile
8194bc4a99 Mart*0119       CHARACTER*(MAX_LEN_FNAM) bathyFile, topoFile
26565fca80 Jean*0120       CHARACTER*(MAX_LEN_FNAM) addWwallFile, addSwallFile
da261b7741 Dimi*0121       CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile, hydrogSaltFile
a7c5f770ff Dimi*0122       CHARACTER*(MAX_LEN_FNAM) diffKrFile
d062b1342f Gael*0123       CHARACTER*(MAX_LEN_FNAM) viscAhDfile
                0124       CHARACTER*(MAX_LEN_FNAM) viscAhZfile
                0125       CHARACTER*(MAX_LEN_FNAM) viscA4Dfile
                0126       CHARACTER*(MAX_LEN_FNAM) viscA4Zfile
81bc00c2f0 Chri*0127       CHARACTER*(MAX_LEN_FNAM) zonalWindFile
                0128       CHARACTER*(MAX_LEN_FNAM) meridWindFile
42bd47f06f Chri*0129       CHARACTER*(MAX_LEN_FNAM) thetaClimFile
                0130       CHARACTER*(MAX_LEN_FNAM) saltClimFile
88830be691 Alis*0131       CHARACTER*(MAX_LEN_FNAM) surfQfile
2d2cc93d4f Jean*0132       CHARACTER*(MAX_LEN_FNAM) surfQnetFile
                0133       CHARACTER*(MAX_LEN_FNAM) surfQswFile
88830be691 Alis*0134       CHARACTER*(MAX_LEN_FNAM) EmPmRfile
1e273d1bf5 Jean*0135       CHARACTER*(MAX_LEN_FNAM) saltFluxFile
e5c33d9529 Alis*0136       CHARACTER*(MAX_LEN_FNAM) uVelInitFile
                0137       CHARACTER*(MAX_LEN_FNAM) vVelInitFile
c53bb77cb3 Alis*0138       CHARACTER*(MAX_LEN_FNAM) pSurfInitFile
22dbc402ed Jean*0139       CHARACTER*(MAX_LEN_FNAM) pLoadFile
0320e25227 Mart*0140       CHARACTER*(MAX_LEN_FNAM) geoPotAnomFile
22dbc402ed Jean*0141       CHARACTER*(MAX_LEN_FNAM) addMassFile
43af9695da Gael*0142       CHARACTER*(MAX_LEN_FNAM) eddyPsiXFile
                0143       CHARACTER*(MAX_LEN_FNAM) eddyPsiYFile
90929f8806 Patr*0144       CHARACTER*(MAX_LEN_FNAM) geothermalFile
28659cf1dc Patr*0145       CHARACTER*(MAX_LEN_FNAM) lambdaThetaFile
                0146       CHARACTER*(MAX_LEN_FNAM) lambdaSaltFile
7e00d7e8f9 Jean*0147       CHARACTER*(MAX_LEN_FNAM) wghtBalanceFile
653d657315 Jean*0148       CHARACTER*(MAX_LEN_PREC/2) the_run_name
66dc79a095 Chri*0149 
924557e60a Chri*0150 C--   COMMON /PARM_I/ Integer valued parameters used by the model.
ac0f2a1690 Chri*0151 C     cg2dMaxIters        :: Maximum number of iterations in the
0097b465dd Jean*0152 C                            two-dimensional con. grad solver.
aecc8b0f47 Mart*0153 C     cg2dMinItersNSA     :: Minimum number of iterations in the
                0154 C                            not-self-adjoint version (cg2d_nsa.F) of the
                0155 C                            two-dimensional con. grad solver (default = 0).
fe587f155a Jean*0156 C     cg2dPreCondFreq     :: Frequency for updating cg2d preconditioner
                0157 C                            (non-linear free-surf.)
84d75049c8 Jean*0158 C     cg2dUseMinResSol    :: =0 : use last-iteration/converged solution
                0159 C                            =1 : use solver minimum-residual solution
ac0f2a1690 Chri*0160 C     cg3dMaxIters        :: Maximum number of iterations in the
0097b465dd Jean*0161 C                            three-dimensional con. grad solver.
38867baced Jean*0162 C     printResidualFreq   :: Frequency for printing residual in CG iterations
ac0f2a1690 Chri*0163 C     nIter0              :: Start time-step number of for this run
                0164 C     nTimeSteps          :: Number of timesteps to execute
6e6f314aa7 Patr*0165 C     nTimeSteps_l2       :: Number of inner timesteps to execute per timestep
c07cd3bfa8 Jean*0166 C     selectCoriMap       :: select setting of Coriolis parameter map:
                0167 C                           =0 f-Plane (Constant Coriolis, = f0)
                0168 C                           =1 Beta-Plane Coriolis (= f0 + beta.y)
                0169 C                           =2 Spherical Coriolis (=
                0170 C                           =3 Read Coriolis 2-d fields from files.
                0171 C     selectSigmaCoord    :: option related to sigma vertical coordinate
ac0f2a1690 Chri*0172 C     nonlinFreeSurf      :: option related to non-linear free surface
b69c172d01 Jean*0173 C                           =0 Linear free surface ; >0 Non-linear
8cd260dad9 Jean*0174 C     select_rStar        :: option related to r* vertical coordinate
                0175 C                           =0 (default) use r coord. ; > 0 use r*
3fcd8a21e5 Jean*0176 C     selectNHfreeSurf    :: option for Non-Hydrostatic (free-)Surface formulation:
                0177 C                           =0 (default) hydrostatic surf. ; > 0 add NH effects.
6ef71429db Jean*0178 C     selectP_inEOS_Zc    :: select which pressure to use in EOS (for z-coords)
                0179 C                           =0: simply: -g*rhoConst*z
                0180 C                           =1: use pRef = integral{-g*rho(Tref,Sref,pRef)*dz}
                0181 C                           =2: use hydrostatic dynamical pressure
                0182 C                           =3: use full (Hyd+NH) dynamical pressure
f42dd9d11c Jean*0183 C     selectAddFluid      :: option to add mass source/sink of fluid in the interior
                0184 C                            (3-D generalisation of oceanic real-fresh water flux)
                0185 C                           =0 off ; =1 add fluid ; =-1 virtual flux (no mass added)
7e00d7e8f9 Jean*0186 C     selectBalanceEmPmR  :: option to balance net surface fresh-water flux:
                0187 C                           =0 off ; =1 uniform correction ; = 2 weighted correction
05dafbe7c6 Jean*0188 C     selectImplicitDrag  :: select Implicit treatment of bottom/top drag
                0189 C                           = 0: fully explicit
                0190 C                           = 1: implicit on provisional velocity
                0191 C                                (i.e., before grad.Eta increment)
                0192 C                           = 2: fully implicit (combined with Impl Surf.Press)
c2b6ed6bfd Jean*0193 C     momForcingOutAB     :: =1: take momentum forcing contribution
0097b465dd Jean*0194 C                            out of (=0: in) Adams-Bashforth time stepping.
c2b6ed6bfd Jean*0195 C     tracForcingOutAB    :: =1: take tracer (Temp,Salt,pTracers) forcing contribution
0097b465dd Jean*0196 C                            out of (=0: in) Adams-Bashforth time stepping.
49efc6c1e0 Jean*0197 C     tempAdvScheme       :: Temp. Horiz.Advection scheme selector
de2fbf2366 Jean*0198 C     tempVertAdvScheme   :: Temp. Vert. Advection scheme selector
49efc6c1e0 Jean*0199 C     saltAdvScheme       :: Salt. Horiz.advection scheme selector
                0200 C     saltVertAdvScheme   :: Salt. Vert. Advection scheme selector
de2fbf2366 Jean*0201 C     selectKEscheme      :: Kinetic Energy scheme selector (Vector Inv.)
e35a804907 Jean*0202 C     selectVortScheme    :: Scheme selector for Vorticity term (Vector Inv.)
427e24e121 Jean*0203 C     selectMetricTerms   :: Scheme selector for Metric terms (Flux-Form)
7843dde2de jm-c 0204 C     selectCoriScheme    :: Scheme selector for Coriolis term
427e24e121 Jean*0205 C     select3dCoriScheme  :: Scheme selector for 3-D Coriolis (in Omega.cos Phi)
f9ef55fa0c Jean*0206 C     selectBotDragQuadr  :: quadratic bottom drag discretisation option:
                0207 C                           =0: average KE from grid center to U & V location
                0208 C                           =1: use local velocity norm @ U & V location
                0209 C                           =2: same with wet-point averaging of other component
d4bae8cf47 Jean*0210 C     pCellMix_select     :: select option to enhance mixing near surface & bottom
                0211 C                            unit digit: near bottom ; tens digit: near surface
                0212 C                            with digit =0 : disable ;
                0213 C                           = 1 : increases mixing linearly with recip_hFac
                0214 C                           = 2,3,4 : increases mixing by recip_hFac^(2,3,4)
a993440a55 Jean*0215 C     readBinaryPrec      :: Precision used for reading binary files
                0216 C     writeBinaryPrec     :: Precision used for writing binary files
                0217 C     rwSuffixType        :: controls the format of the mds file suffix.
                0218 C                          =0 (default): use iteration number (myIter, I10.10);
                0219 C                          =1: 100*myTime (100th sec); =2: myTime (seconds);
                0220 C                          =3: myTime/360 (10th of hr); =4: myTime/3600 (hours).
9f127ffcb6 Jean*0221 C     monitorSelect       :: select group of variables to monitor
                0222 C                            =1 : dynvars ; =2 : + vort ; =3 : + surface
edffd006b2 Jean*0223 C-    debugLevel          :: controls printing of algorithm intermediate results
                0224 C                            and statistics ; higher -> more writing
337b46d524 Jean*0225 C-    plotLevel           :: controls printing of field maps ; higher -> more flds
1dbaea09ee Chri*0226 
924557e60a Chri*0227       COMMON /PARM_I/
aecc8b0f47 Mart*0228      &        cg2dMaxIters, cg2dMinItersNSA,
84d75049c8 Jean*0229      &        cg2dPreCondFreq, cg2dUseMinResSol,
aecc8b0f47 Mart*0230      &        cg3dMaxIters, printResidualFreq,
6e6f314aa7 Patr*0231      &        nIter0, nTimeSteps, nTimeSteps_l2, nEndIter,
c07cd3bfa8 Jean*0232      &        selectCoriMap,
                0233      &        selectSigmaCoord,
8cd260dad9 Jean*0234      &        nonlinFreeSurf, select_rStar,
6ef71429db Jean*0235      &        selectNHfreeSurf, selectP_inEOS_Zc,
7e00d7e8f9 Jean*0236      &        selectAddFluid, selectBalanceEmPmR, selectImplicitDrag,
c2b6ed6bfd Jean*0237      &        momForcingOutAB, tracForcingOutAB,
49efc6c1e0 Jean*0238      &        tempAdvScheme, tempVertAdvScheme,
                0239      &        saltAdvScheme, saltVertAdvScheme,
427e24e121 Jean*0240      &        selectKEscheme, selectVortScheme, selectMetricTerms,
                0241      &        selectCoriScheme, select3dCoriScheme,
d4bae8cf47 Jean*0242      &        selectBotDragQuadr, pCellMix_select,
427e24e121 Jean*0243      &        readBinaryPrec, writeBinaryPrec,
337b46d524 Jean*0244      &        rwSuffixType, monitorSelect, debugLevel, plotLevel
924557e60a Chri*0245       INTEGER cg2dMaxIters
aecc8b0f47 Mart*0246       INTEGER cg2dMinItersNSA
fe587f155a Jean*0247       INTEGER cg2dPreCondFreq
84d75049c8 Jean*0248       INTEGER cg2dUseMinResSol
46dc4f419b Chri*0249       INTEGER cg3dMaxIters
38867baced Jean*0250       INTEGER printResidualFreq
924557e60a Chri*0251       INTEGER nIter0
                0252       INTEGER nTimeSteps
6e6f314aa7 Patr*0253       INTEGER nTimeSteps_l2
d4701cb6da Alis*0254       INTEGER nEndIter
c07cd3bfa8 Jean*0255       INTEGER selectCoriMap
                0256       INTEGER selectSigmaCoord
b69c172d01 Jean*0257       INTEGER nonlinFreeSurf
8cd260dad9 Jean*0258       INTEGER select_rStar
3fcd8a21e5 Jean*0259       INTEGER selectNHfreeSurf
6ef71429db Jean*0260       INTEGER selectP_inEOS_Zc
f42dd9d11c Jean*0261       INTEGER selectAddFluid
7e00d7e8f9 Jean*0262       INTEGER selectBalanceEmPmR
05dafbe7c6 Jean*0263       INTEGER selectImplicitDrag
c2b6ed6bfd Jean*0264       INTEGER momForcingOutAB, tracForcingOutAB
49efc6c1e0 Jean*0265       INTEGER tempAdvScheme, tempVertAdvScheme
                0266       INTEGER saltAdvScheme, saltVertAdvScheme
7548b53ced Jean*0267       INTEGER selectKEscheme
e35a804907 Jean*0268       INTEGER selectVortScheme
427e24e121 Jean*0269       INTEGER selectMetricTerms
7843dde2de jm-c 0270       INTEGER selectCoriScheme
427e24e121 Jean*0271       INTEGER select3dCoriScheme
f9ef55fa0c Jean*0272       INTEGER selectBotDragQuadr
d4bae8cf47 Jean*0273       INTEGER pCellMix_select
a993440a55 Jean*0274       INTEGER readBinaryPrec
                0275       INTEGER writeBinaryPrec
                0276       INTEGER rwSuffixType
9f127ffcb6 Jean*0277       INTEGER monitorSelect
494ad43bae Patr*0278       INTEGER debugLevel
337b46d524 Jean*0279       INTEGER plotLevel
494ad43bae Patr*0280 
924557e60a Chri*0281 C--   COMMON /PARM_L/ Logical valued parameters used by the model.
e13269dd4b Jean*0282 C- Coordinate + Grid params:
                0283 C     fluidIsAir       :: Set to indicate that the fluid major constituent
0097b465dd Jean*0284 C                         is air
e13269dd4b Jean*0285 C     fluidIsWater     :: Set to indicate that the fluid major constituent
0097b465dd Jean*0286 C                         is water
e13269dd4b Jean*0287 C     usingPCoords     :: Set to indicate that we are working in a pressure
0097b465dd Jean*0288 C                         type coordinate (p or p*).
e13269dd4b Jean*0289 C     usingZCoords     :: Set to indicate that we are working in a height
0097b465dd Jean*0290 C                         type coordinate (z or z*)
ac0f2a1690 Chri*0291 C     usingCartesianGrid :: If TRUE grid generation will be in a cartesian
0097b465dd Jean*0292 C                           coordinate frame.
f4e5ffc990 Jean*0293 C     usingSphericalPolarGrid :: If TRUE grid generation will be in a
0097b465dd Jean*0294 C                                spherical polar frame.
e13269dd4b Jean*0295 C     rotateGrid      :: rotate grid coordinates to geographical coordinates
                0296 C                        according to Euler angles phiEuler, thetaEuler, psiEuler
                0297 C     usingCylindricalGrid :: If TRUE grid generation will be Cylindrical
7f7edb5ca4 Jean*0298 C     usingCurvilinearGrid :: If TRUE, use a curvilinear grid (to be provided)
                0299 C     hasWetCSCorners :: domain contains CS-type corners where dynamics is solved
9c29d55c39 Jean*0300 C     deepAtmosphere :: deep model (drop the shallow-atmosphere approximation)
e13269dd4b Jean*0301 C     setInterFDr    :: set Interface depth (put cell-Center at the middle)
                0302 C     setCenterDr    :: set cell-Center depth (put Interface at the middle)
dd9374dd6b Jean*0303 C     useMin4hFacEdges :: set hFacW,hFacS as minimum of adjacent hFacC factor
d4bae8cf47 Jean*0304 C     interViscAr_pCell :: account for partial-cell in interior vert. viscosity
                0305 C     interDiffKr_pCell :: account for partial-cell in interior vert. diffusion
e13269dd4b Jean*0306 C- Momentum params:
                0307 C     no_slip_sides  :: Impose "no-slip" at lateral boundaries.
ac0f2a1690 Chri*0308 C     no_slip_bottom :: Impose "no-slip" at bottom boundary.
f9ef55fa0c Jean*0309 C     bottomVisc_pCell :: account for partial-cell in bottom visc. (no-slip BC)
acaad95e18 Jean*0310 C     useSmag3D      :: Use isotropic 3-D Smagorinsky
e13269dd4b Jean*0311 C     useFullLeith   :: Set to true to use full Leith viscosity(may be unstable
                0312 C                       on irregular grids)
                0313 C     useStrainTensionVisc:: Set to true to use Strain-Tension viscous terms
                0314 C     useAreaViscLength :: Set to true to use old scaling for viscous lengths,
                0315 C                          e.g., L2=Raz.  May be preferable for cube sphere.
ac0f2a1690 Chri*0316 C     momViscosity  :: Flag which turns momentum friction terms on and off.
                0317 C     momAdvection  :: Flag which turns advection of momentum on and off.
8e1649be57 Jean*0318 C     momForcing    :: Flag which turns external forcing of momentum on and off.
                0319 C     momTidalForcing    :: Flag which turns tidal forcing on and off.
ac0f2a1690 Chri*0320 C     momPressureForcing :: Flag which turns pressure term in momentum equation
cf8488c0fd Chri*0321 C                          on and off.
3362dfc756 Jean*0322 C     useNHMTerms   :: If TRUE use non-hydrostatic metric terms.
ac0f2a1690 Chri*0323 C     useCoriolis   :: Flag which turns the coriolis terms on and off.
e13269dd4b Jean*0324 C     useCDscheme   :: use CD-scheme to calculate Coriolis terms.
                0325 C     vectorInvariantMomentum :: use Vector-Invariant form (mom_vecinv package)
                0326 C                                (default = F = use mom_fluxform package)
                0327 C     useJamartMomAdv :: Use wet-point method for V.I. non-linear term
                0328 C     upwindVorticity :: bias interpolation of vorticity in the Coriolis term
                0329 C     highOrderVorticity :: use 3rd/4th order interp. of vorticity (V.I., advection)
                0330 C     useAbsVorticity :: work with f+zeta in Coriolis terms
35c76859f0 Jean*0331 C     upwindShear     :: use 1rst order upwind interp. (V.I., vertical advection)
e13269dd4b Jean*0332 C     momStepping    :: Turns momentum equation time-stepping off
35c76859f0 Jean*0333 C     calc_wVelocity :: Turns vertical velocity calculation off
e13269dd4b Jean*0334 C- Temp. & Salt params:
22dbc402ed Jean*0335 C     tempStepping   :: Turns temperature equation time-stepping on/off
                0336 C     saltStepping   :: Turns salinity equation time-stepping on/off
                0337 C     addFrictionHeating :: account for frictional heating
46918f1b26 Jean*0338 C     temp_stayPositive :: use Smolarkiewicz Hack to ensure Temp stays positive
                0339 C     salt_stayPositive :: use Smolarkiewicz Hack to ensure Salt stays positive
e13269dd4b Jean*0340 C     tempAdvection  :: Flag which turns advection of temperature on and off.
bf6138bedc Jean*0341 C     tempVertDiff4  :: use vertical bi-harmonic diffusion for temperature
e13269dd4b Jean*0342 C     tempIsActiveTr :: Pot.Temp. is a dynamically active tracer
22dbc402ed Jean*0343 C     tempForcing    :: Flag which turns external forcing of temperature on/off
e13269dd4b Jean*0344 C     saltAdvection  :: Flag which turns advection of salinity on and off.
bf6138bedc Jean*0345 C     saltVertDiff4  :: use vertical bi-harmonic diffusion for salinity
e13269dd4b Jean*0346 C     saltIsActiveTr :: Salinity  is a dynamically active tracer
22dbc402ed Jean*0347 C     saltForcing    :: Flag which turns external forcing of salinity on/off
2d01527c7e Jean*0348 C     maskIniTemp    :: apply mask to initial Pot.Temp.
                0349 C     maskIniSalt    :: apply mask to initial salinity
                0350 C     checkIniTemp   :: check for points with identically zero initial Pot.Temp.
                0351 C     checkIniSalt   :: check for points with identically zero initial salinity
23bce0bbb8 Mart*0352 C- Pressure solver related parameters (PARM02)
aecc8b0f47 Mart*0353 C     useNSACGSolver :: Set to true to use "not self-adjoint" conjugate
                0354 C                       gradient solver that stores the iteration history
                0355 C                       for an iterative adjoint as accuate as possible
23bce0bbb8 Mart*0356 C     useSRCGSolver  :: Set to true to use conjugate gradient
                0357 C                       solver with single reduction (only one call of
                0358 C                       s/r mpi_allreduce), default is false
0097b465dd Jean*0359 C- Time-stepping & free-surface params:
ac0f2a1690 Chri*0360 C     rigidLid            :: Set to true to use rigid lid
c6161be44c Jean*0361 C     implicitFreeSurface :: Set to true to use implicit free surface
0097b465dd Jean*0362 C     uniformLin_PhiSurf  :: Set to true to use a uniform Bo_surf in the
                0363 C                            linear relation Phi_surf = Bo_surf*eta
                0364 C     uniformFreeSurfLev  :: TRUE if free-surface level-index is uniform (=1)
ac0f2a1690 Chri*0365 C     exactConserv        :: Set to true to conserve exactly the total Volume
74c7704c2f Davi*0366 C     linFSConserveTr     :: Set to true to correct source/sink of tracer
f4e5ffc990 Jean*0367 C                            at the surface due to Linear Free Surface
0097b465dd Jean*0368 C     useRealFreshWaterFlux :: if True (=Natural BCS), treats P+R-E flux
                0369 C                         as a real Fresh Water (=> changes the Sea Level)
                0370 C                         if F, converts P+R-E to salt flux (no SL effect)
6ef71429db Jean*0371 C     storePhiHyd4Phys :: store hydrostatic potential for use in Physics/EOS
                0372 C                         this requires specific code for restart & exchange
e13269dd4b Jean*0373 C     quasiHydrostatic :: Using non-hydrostatic terms in hydrostatic algorithm
                0374 C     nonHydrostatic   :: Using non-hydrostatic algorithm
                0375 C     use3Dsolver      :: set to true to use 3-D pressure solver
c6161be44c Jean*0376 C     implicitIntGravWave :: treat Internal Gravity Wave implicitly
e13269dd4b Jean*0377 C     staggerTimeStep   :: enable a Stagger time stepping U,V (& W) then T,S
35c76859f0 Jean*0378 C     applyExchUV_early :: Apply EXCH to U,V earlier, just before integr_continuity
01b68e9f05 Jean*0379 C     doResetHFactors   :: Do reset thickness factors @ beginning of each time-step
ac0f2a1690 Chri*0380 C     implicitDiffusion :: Turns implicit vertical diffusion on
                0381 C     implicitViscosity :: Turns implicit vertical viscosity on
f9ef55fa0c Jean*0382 C     tempImplVertAdv   :: Turns on implicit vertical advection for Temperature
                0383 C     saltImplVertAdv   :: Turns on implicit vertical advection for Salinity
                0384 C     momImplVertAdv    :: Turns on implicit vertical advection for Momentum
5aef30157d Jean*0385 C     multiDimAdvection :: Flag that enable multi-dimension advection
ffd0966f4f Jean*0386 C     useMultiDimAdvec  :: True if multi-dim advection is used at least once
c2b6ed6bfd Jean*0387 C     momDissip_In_AB   :: if False, put Dissipation tendency contribution
2f6ccfd84c Jean*0388 C                          out off Adams-Bashforth time stepping.
                0389 C     doAB_onGtGs       :: if the Adams-Bashforth time stepping is used, always
6d61b52b09 Jean*0390 C                          apply AB on tracer tendencies (rather than on Tracer)
e13269dd4b Jean*0391 C- Other forcing params -
                0392 C     balanceQnet     :: substract global mean of Qnet at every time step
                0393 C     balancePrintMean:: print substracted global means to STDOUT
ac0f2a1690 Chri*0394 C     doThetaClimRelax :: Set true if relaxation to temperature
42bd47f06f Chri*0395 C                        climatology is required.
ac0f2a1690 Chri*0396 C     doSaltClimRelax  :: Set true if relaxation to salinity
42bd47f06f Chri*0397 C                        climatology is required.
9e3a303fa3 Gael*0398 C     balanceThetaClimRelax :: substract global mean effect at every time step
                0399 C     balanceSaltClimRelax :: substract global mean effect at every time step
e13269dd4b Jean*0400 C     allowFreezing  :: Allows surface water to freeze and form ice
ac0f2a1690 Chri*0401 C     periodicExternalForcing :: Set true if forcing is time-dependant
e13269dd4b Jean*0402 C- I/O parameters -
59cf2de9a0 Jean*0403 C     globalFiles    :: Selects between "global" and "tiled" files.
                0404 C                       On some platforms with MPI, option globalFiles is either
                0405 C                       slow or does not work. Use useSingleCpuIO instead.
                0406 C     useSingleCpuIO :: moved to EEPARAMS.h
e13269dd4b Jean*0407 C     pickupStrictlyMatch :: check and stop if pickup-file do not stricly match
                0408 C     startFromPickupAB2 :: with AB-3 code, start from an AB-2 pickup
                0409 C     usePickupBeforeC54 :: start from old-pickup files, generated with code from
                0410 C                           before checkpoint-54a, Jul 06, 2004.
a30418b6b9 Ed H*0411 C     pickup_write_mdsio :: use mdsio to write pickups
                0412 C     pickup_read_mdsio  :: use mdsio to read  pickups
                0413 C     pickup_write_immed :: echo the pickup immediately (for conversion)
8c73a5b228 Mart*0414 C     writePickupAtEnd   :: write pickup at the last timestep
a30418b6b9 Ed H*0415 C     timeave_mdsio      :: use mdsio for timeave output
                0416 C     snapshot_mdsio     :: use mdsio for "snapshot" (dumpfreq/diagfreq) output
b6356366ca Ed H*0417 C     monitor_stdio      :: use stdio for monitor output
f4e5ffc990 Jean*0418 C     dumpInitAndLast :: dumps model state to files at Initial (nIter0)
82d0948361 Jean*0419 C                        & Last iteration, in addition multiple of dumpFreq iter.
279d6fcfb9 Mart*0420 
e13269dd4b Jean*0421       COMMON /PARM_L/
                0422      & fluidIsAir, fluidIsWater,
6ef71429db Jean*0423      & usingPCoords, usingZCoords,
e13269dd4b Jean*0424      & usingCartesianGrid, usingSphericalPolarGrid, rotateGrid,
7f7edb5ca4 Jean*0425      & usingCylindricalGrid, usingCurvilinearGrid, hasWetCSCorners,
dd9374dd6b Jean*0426      & deepAtmosphere, setInterFDr, setCenterDr, useMin4hFacEdges,
d4bae8cf47 Jean*0427      & interViscAr_pCell, interDiffKr_pCell,
f9ef55fa0c Jean*0428      & no_slip_sides, no_slip_bottom, bottomVisc_pCell, useSmag3D,
e13269dd4b Jean*0429      & useFullLeith, useStrainTensionVisc, useAreaViscLength,
8e1649be57 Jean*0430      & momViscosity, momAdvection, momForcing, momTidalForcing,
427e24e121 Jean*0431      & momPressureForcing, useNHMTerms,
                0432      & useCoriolis, useCDscheme, vectorInvariantMomentum,
7843dde2de jm-c 0433      & useJamartMomAdv, upwindVorticity, highOrderVorticity,
e13269dd4b Jean*0434      & useAbsVorticity, upwindShear,
e2b579164c Jean*0435      & momStepping, calc_wVelocity, tempStepping, saltStepping,
46918f1b26 Jean*0436      & addFrictionHeating, temp_stayPositive, salt_stayPositive,
bf6138bedc Jean*0437      & tempAdvection, tempVertDiff4, tempIsActiveTr, tempForcing,
                0438      & saltAdvection, saltVertDiff4, saltIsActiveTr, saltForcing,
2d01527c7e Jean*0439      & maskIniTemp, maskIniSalt, checkIniTemp, checkIniSalt,
aecc8b0f47 Mart*0440      & useNSACGSolver, useSRCGSolver,
0097b465dd Jean*0441      & rigidLid, implicitFreeSurface,
                0442      & uniformLin_PhiSurf, uniformFreeSurfLev,
                0443      & exactConserv, linFSConserveTr, useRealFreshWaterFlux,
6ef71429db Jean*0444      & storePhiHyd4Phys, quasiHydrostatic, nonHydrostatic,
                0445      & use3Dsolver, implicitIntGravWave, staggerTimeStep,
35c76859f0 Jean*0446      & applyExchUV_early, doResetHFactors,
05dafbe7c6 Jean*0447      & implicitDiffusion, implicitViscosity,
c0be2284a6 Jean*0448      & tempImplVertAdv, saltImplVertAdv, momImplVertAdv,
7548b53ced Jean*0449      & multiDimAdvection, useMultiDimAdvec,
c2b6ed6bfd Jean*0450      & momDissip_In_AB, doAB_onGtGs,
7e00d7e8f9 Jean*0451      & balanceQnet, balancePrintMean,
9e3a303fa3 Gael*0452      & balanceThetaClimRelax, balanceSaltClimRelax,
e13269dd4b Jean*0453      & doThetaClimRelax, doSaltClimRelax,
e793395f17 Jean*0454      & allowFreezing,
e13269dd4b Jean*0455      & periodicExternalForcing,
59cf2de9a0 Jean*0456      & globalFiles,
f4e5ffc990 Jean*0457      & pickupStrictlyMatch, usePickupBeforeC54, startFromPickupAB2,
a30418b6b9 Ed H*0458      & pickup_read_mdsio, pickup_write_mdsio, pickup_write_immed,
8c73a5b228 Mart*0459      & writePickupAtEnd,
9a87ea5e43 Ed H*0460      & timeave_mdsio, snapshot_mdsio, monitor_stdio,
337b46d524 Jean*0461      & outputTypesInclusive, dumpInitAndLast
cdf6d093b9 Ed H*0462 
e13269dd4b Jean*0463       LOGICAL fluidIsAir
                0464       LOGICAL fluidIsWater
                0465       LOGICAL usingPCoords
                0466       LOGICAL usingZCoords
924557e60a Chri*0467       LOGICAL usingCartesianGrid
e13269dd4b Jean*0468       LOGICAL usingSphericalPolarGrid, rotateGrid
0ac260a803 Andr*0469       LOGICAL usingCylindricalGrid
7f7edb5ca4 Jean*0470       LOGICAL usingCurvilinearGrid, hasWetCSCorners
9c29d55c39 Jean*0471       LOGICAL deepAtmosphere
afed22d369 Jean*0472       LOGICAL setInterFDr
                0473       LOGICAL setCenterDr
dd9374dd6b Jean*0474       LOGICAL useMin4hFacEdges
d4bae8cf47 Jean*0475       LOGICAL interViscAr_pCell
                0476       LOGICAL interDiffKr_pCell
22dbc402ed Jean*0477 
0127add478 Alis*0478       LOGICAL no_slip_sides
                0479       LOGICAL no_slip_bottom
f9ef55fa0c Jean*0480       LOGICAL bottomVisc_pCell
acaad95e18 Jean*0481       LOGICAL useSmag3D
76099ab0aa Jean*0482       LOGICAL useFullLeith
                0483       LOGICAL useStrainTensionVisc
                0484       LOGICAL useAreaViscLength
924557e60a Chri*0485       LOGICAL momViscosity
                0486       LOGICAL momAdvection
                0487       LOGICAL momForcing
8e1649be57 Jean*0488       LOGICAL momTidalForcing
cf8488c0fd Chri*0489       LOGICAL momPressureForcing
22dbc402ed Jean*0490       LOGICAL useNHMTerms
924557e60a Chri*0492       LOGICAL useCoriolis
22dbc402ed Jean*0493       LOGICAL useCDscheme
66d5e1666c Alis*0494       LOGICAL vectorInvariantMomentum
22dbc402ed Jean*0495       LOGICAL useJamartMomAdv
                0496       LOGICAL upwindVorticity
                0497       LOGICAL highOrderVorticity
                0498       LOGICAL useAbsVorticity
                0499       LOGICAL upwindShear
                0500       LOGICAL momStepping
                0501       LOGICAL calc_wVelocity
                0502       LOGICAL tempStepping
                0503       LOGICAL saltStepping
                0504       LOGICAL addFrictionHeating
46918f1b26 Jean*0505       LOGICAL temp_stayPositive
                0506       LOGICAL salt_stayPositive
924557e60a Chri*0507       LOGICAL tempAdvection
bf6138bedc Jean*0508       LOGICAL tempVertDiff4
aa2e39692e Jean*0509       LOGICAL tempIsActiveTr
924557e60a Chri*0510       LOGICAL tempForcing
                0511       LOGICAL saltAdvection
bf6138bedc Jean*0512       LOGICAL saltVertDiff4
aa2e39692e Jean*0513       LOGICAL saltIsActiveTr
924557e60a Chri*0514       LOGICAL saltForcing
2d01527c7e Jean*0515       LOGICAL maskIniTemp
                0516       LOGICAL maskIniSalt
                0517       LOGICAL checkIniTemp
                0518       LOGICAL checkIniSalt
aecc8b0f47 Mart*0519       LOGICAL useNSACGSolver
76099ab0aa Jean*0520       LOGICAL useSRCGSolver
c0a4efc370 Chri*0521       LOGICAL rigidLid
aea29c8517 Alis*0522       LOGICAL implicitFreeSurface
0097b465dd Jean*0523       LOGICAL uniformLin_PhiSurf
                0524       LOGICAL uniformFreeSurfLev
aea29c8517 Alis*0525       LOGICAL exactConserv
74c7704c2f Davi*0526       LOGICAL linFSConserveTr
0097b465dd Jean*0527       LOGICAL useRealFreshWaterFlux
6ef71429db Jean*0528       LOGICAL storePhiHyd4Phys
e13269dd4b Jean*0529       LOGICAL quasiHydrostatic
                0530       LOGICAL nonHydrostatic
c82f753998 Jean*0531       LOGICAL use3Dsolver
c6161be44c Jean*0532       LOGICAL implicitIntGravWave
                0533       LOGICAL staggerTimeStep
35c76859f0 Jean*0534       LOGICAL applyExchUV_early
01b68e9f05 Jean*0535       LOGICAL doResetHFactors
b5aba14e85 Alis*0536       LOGICAL implicitDiffusion
ababcf8304 Alis*0537       LOGICAL implicitViscosity
7548b53ced Jean*0538       LOGICAL tempImplVertAdv
                0539       LOGICAL saltImplVertAdv
c0be2284a6 Jean*0540       LOGICAL momImplVertAdv
5aef30157d Jean*0541       LOGICAL multiDimAdvection
ffd0966f4f Jean*0542       LOGICAL useMultiDimAdvec
c2b6ed6bfd Jean*0543       LOGICAL momDissip_In_AB
2f6ccfd84c Jean*0544       LOGICAL doAB_onGtGs
e13269dd4b Jean*0545       LOGICAL balanceQnet
                0546       LOGICAL balancePrintMean
42bd47f06f Chri*0547       LOGICAL doThetaClimRelax
                0548       LOGICAL doSaltClimRelax
9e3a303fa3 Gael*0549       LOGICAL balanceThetaClimRelax
                0550       LOGICAL balanceSaltClimRelax
e13269dd4b Jean*0551       LOGICAL allowFreezing
4edf45584c Alis*0552       LOGICAL periodicExternalForcing
ab42872a05 Alis*0553       LOGICAL globalFiles
f4e5ffc990 Jean*0554       LOGICAL pickupStrictlyMatch
a1bffd2f2d Jean*0555       LOGICAL usePickupBeforeC54
001808f0de Jean*0556       LOGICAL startFromPickupAB2
a30418b6b9 Ed H*0557       LOGICAL pickup_read_mdsio, pickup_write_mdsio
8c73a5b228 Mart*0558       LOGICAL pickup_write_immed, writePickupAtEnd
b6356366ca Ed H*0559       LOGICAL timeave_mdsio, snapshot_mdsio, monitor_stdio
ff63a227b0 Ed H*0560       LOGICAL outputTypesInclusive
e13269dd4b Jean*0561       LOGICAL dumpInitAndLast
924557e60a Chri*0562 
                0563 C--   COMMON /PARM_R/ "Real" valued parameters used by the model.
fe587f155a Jean*0564 C     cg2dTargetResidual
ac0f2a1690 Chri*0565 C          :: Target residual for cg2d solver; no unit (RHS normalisation)
aea29c8517 Alis*0566 C     cg2dTargetResWunit
ac0f2a1690 Chri*0567 C          :: Target residual for cg2d solver; W unit (No RHS normalisation)
46dc4f419b Chri*0568 C     cg3dTargetResidual
ac0f2a1690 Chri*0569 C               :: Target residual for cg3d solver.
                0570 C     cg2dpcOffDFac :: Averaging weight for preconditioner off-diagonal.
66dc79a095 Chri*0571 C     Note. 20th May 1998
                0572 C           I made a weird discovery! In the model paper we argue
                0573 C           for the form of the preconditioner used here ( see
                0574 C           A Finite-volume, Incompressible Navier-Stokes Model
                0575 C           ...., Marshall et. al ). The algebra gives a simple
                0576 C           0.5 factor for the averaging of ac and aCw to get a
                0577 C           symmettric pre-conditioner. By using a factor of 0.51
                0578 C           i.e. scaling the off-diagonal terms in the
                0579 C           preconditioner down slightly I managed to get the
                0580 C           number of iterations for convergence in a test case to
                0581 C           drop form 192 -> 134! Need to investigate this further!
                0582 C           For now I have introduced a parameter cg2dpcOffDFac which
                0583 C           defaults to 0.51 but can be set at runtime.
ac0f2a1690 Chri*0584 C     delR      :: Vertical grid spacing ( units of r ).
c28ce1627a Jean*0585 C     delRc     :: Vertical grid spacing between cell centers (r unit).
ac0f2a1690 Chri*0586 C     delX      :: Separation between cell faces (m) or (deg), depending
1e8bf13d3f Jean*0587 C     delY         on input flags. Note: moved to header file SET_GRID.h
9744e36521 Jean*0588 C     xgOrigin   :: Origin of the X-axis (Cartesian Grid) / Longitude of Western
                0589 C                :: most cell face (Lat-Lon grid) (Note: this is an "inert"
                0590 C                :: parameter but it makes geographical references simple.)
                0591 C     ygOrigin   :: Origin of the Y-axis (Cartesian Grid) / Latitude of Southern
                0592 C                :: most face (Lat-Lon grid).
2ad79bdf32 Jean*0593 C     rSphere    :: Radius of sphere for a spherical polar grid ( m ).
                0594 C     recip_rSphere :: Reciprocal radius of sphere ( m^-1 ).
                0595 C     radius_fromHorizGrid :: sphere Radius of input horiz. grid (Curvilinear Grid)
                0596 C     seaLev_Z   :: the reference height of sea-level (usually zero)
                0597 C     top_Pres   :: pressure (P-Coords) or reference pressure (Z-Coords) at the top
6ef71429db Jean*0598 C     rSigmaBnd  :: vertical position (in r-unit) of r/sigma transition (Hybrid-Sigma)
                0599 C     gravity    :: Acceleration due to constant gravity ( m/s^2 )
                0600 C     recip_gravity :: Reciprocal gravity acceleration ( s^2/m )
aad87ebb4c Jean*0601 C     gBaro      :: Accel. due to gravity used in barotropic equation ( m/s^2 )
6ef71429db Jean*0602 C     gravFacC   :: gravity factor (vs surf. gravity) vert. profile at cell-Center
                0603 C     gravFacF   :: gravity factor (vs surf. gravity) vert. profile at cell-interF
aad87ebb4c Jean*0604 C     rhoNil     :: Reference density for the linear equation of state
                0605 C     rhoConst   :: Vertically constant reference density (Boussinesq)
6ef71429db Jean*0606 C     rho1Ref    :: reference vertical profile for density (anelastic)
aad87ebb4c Jean*0607 C     rhoFacC    :: normalized (by rhoConst) reference density at cell-Center
                0608 C     rhoFacF    :: normalized (by rhoConst) reference density at cell-interFace
e305438401 Mart*0609 C     rhoConstFresh :: Constant reference density for fresh water (rain)
6ef71429db Jean*0610 C     thetaConst :: Constant reference for potential temperature
aad87ebb4c Jean*0611 C     tRef       :: reference vertical profile for potential temperature
                0612 C     sRef       :: reference vertical profile for salinity/specific humidity
5b172de0d2 Jean*0613 C     rhoRef     :: density vertical profile from (tRef,sRef) [kg/m^3]
aad87ebb4c Jean*0614 C     dBdrRef    :: vertical gradient of reference buoyancy  [(m/s/r)^2]:
                0615 C                :: z-coord: = N^2_ref = Brunt-Vaissala frequency [s^-2]
                0616 C                :: p-coord: = -(d.alpha/dp)_ref          [(m^2.s/kg)^2]
5b172de0d2 Jean*0617 C     surf_pRef  :: surface reference pressure ( Pa )
                0618 C     pRef4EOS   :: reference pressure used in EOS (case selectP_inEOS_Zc=1)
                0619 C     phiRef     :: reference potential (press/rho, geopot) profile (m^2/s^2)
eba17c6dff Jean*0620 C     rVel2wUnit :: units conversion factor (Non-Hydrostatic code),
                0621 C                :: from r-coordinate vertical velocity to vertical velocity [m/s].
                0622 C                :: z-coord: = 1 ; p-coord: wSpeed [m/s] = rVel [Pa/s] * rVel2wUnit
                0623 C     wUnit2rVel :: units conversion factor (Non-Hydrostatic code),
                0624 C                :: from vertical velocity [m/s] to r-coordinate vertical velocity.
                0625 C                :: z-coord: = 1 ; p-coord: rVel [Pa/s] = wSpeed [m/s] * wUnit2rVel
5b172de0d2 Jean*0626 C     rUnit2z    :: units conversion factor (for ocean in P-coord, only fct of k),
                0627 C                :: from r-coordinate to z [m] (at level center):
                0628 C                :: z-coord: = 1 ; p-coord: dz [m] = dr [Pa] * rUnit2z
                0629 C     z2rUnit    :: units conversion factor (for ocean in P-coord, only fct of k),
                0630 C                :: from z [m] to r-coordinate (at level center):
                0631 C                :: z-coord: = 1 ; p-coord: dr [Pa] = dz [m] * z2rUnit
599be48d9a Jean*0632 C     mass2rUnit :: units conversion factor (surface forcing),
                0633 C                :: from mass per unit area [kg/m2] to vertical r-coordinate unit.
                0634 C                :: z-coord: = 1/rhoConst ( [kg/m2] / rho = [m] ) ;
                0635 C                :: p-coord: = gravity    ( [kg/m2] *  g = [Pa] ) ;
                0636 C     rUnit2mass :: units conversion factor (surface forcing),
                0637 C                :: from vertical r-coordinate unit to mass per unit area [kg/m2].
                0638 C                :: z-coord: = rhoConst  ( [m] * rho = [kg/m2] ) ;
                0639 C                :: p-coord: = 1/gravity ( [Pa] /  g = [kg/m2] ) ;
0320e25227 Mart*0640 C     sIceLoadFac:: factor to scale (and turn off) sIceLoad (sea-ice loading)
                0641 C                   default = 1
9780090eaa Jean*0642 C     f0         :: Reference coriolis parameter ( 1/s )
                0643 C                   ( Southern edge f for beta plane )
                0644 C     beta       :: df/dy ( s^-1.m^-1 )
c07cd3bfa8 Jean*0645 C     fPrime     :: Second Coriolis parameter ( 1/s ), related to Y-component
                0646 C                   of rotation (reference value = 2.Omega.Cos(Phi))
9780090eaa Jean*0647 C     omega      :: Angular velocity ( rad/s )
aa63d8425c Jean*0648 C     rotationPeriod :: Rotation period (s) (= 2.pi/omega)
2d15ad3a83 Jean*0649 C     viscArNr   :: vertical profile of Eddy viscosity coeff.
                0650 C                   for vertical mixing of momentum ( units of r^2/s )
9780090eaa Jean*0651 C     viscAh     :: Eddy viscosity coeff. for mixing of
                0652 C                   momentum laterally ( m^2/s )
                0653 C     viscAhW    :: Eddy viscosity coeff. for mixing of vertical
                0654 C                   momentum laterally, no effect for hydrostatic
acaad95e18 Jean*0655 C                   model, defaults to viscAhD if unset ( m^2/s )
9780090eaa Jean*0656 C                   Not used if variable horiz. viscosity is used.
                0657 C     viscA4     :: Biharmonic viscosity coeff. for mixing of
                0658 C                   momentum laterally ( m^4/s )
                0659 C     viscA4W    :: Biharmonic viscosity coeff. for mixing of vertical
                0660 C                   momentum laterally, no effect for hydrostatic
acaad95e18 Jean*0661 C                   model, defaults to viscA4D if unset ( m^2/s )
9780090eaa Jean*0662 C                   Not used if variable horiz. viscosity is used.
                0663 C     viscAhD    :: Eddy viscosity coeff. for mixing of momentum laterally
                0664 C                   (act on Divergence part) ( m^2/s )
                0665 C     viscAhZ    :: Eddy viscosity coeff. for mixing of momentum laterally
                0666 C                   (act on Vorticity  part) ( m^2/s )
                0667 C     viscA4D    :: Biharmonic viscosity coeff. for mixing of momentum laterally
                0668 C                   (act on Divergence part) ( m^4/s )
                0669 C     viscA4Z    :: Biharmonic viscosity coeff. for mixing of momentum laterally
                0670 C                   (act on Vorticity  part) ( m^4/s )
2d5bb917cc Jean*0671 C     smag3D_coeff     :: Isotropic 3-D Smagorinsky viscosity coefficient (-)
                0672 C     smag3D_diffCoeff :: Isotropic 3-D Smagorinsky diffusivity coefficient (-)
e35a804907 Jean*0673 C     viscC2leith  :: Leith non-dimensional viscosity factor (grad(vort))
1e9e8678dd Bayl*0674 C     viscC2leithD :: Modified Leith non-dimensional visc. factor (grad(div))
f59d76b0dd Ed D*0675 C     viscC2LeithQG:: QG Leith non-dimensional viscosity factor
e35a804907 Jean*0676 C     viscC4leith  :: Leith non-dimensional viscosity factor (grad(vort))
                0677 C     viscC4leithD :: Modified Leith non-dimensional viscosity factor (grad(div))
                0678 C     viscC2smag   :: Smagorinsky non-dimensional viscosity factor (harmonic)
                0679 C     viscC4smag   :: Smagorinsky non-dimensional viscosity factor (biharmonic)
                0680 C     viscAhMax    :: Maximum eddy viscosity coeff. for mixing of
                0681 C                    momentum laterally ( m^2/s )
                0682 C     viscAhReMax  :: Maximum gridscale Reynolds number for eddy viscosity
                0683 C                     coeff. for mixing of momentum laterally (non-dim)
                0684 C     viscAhGrid   :: non-dimensional grid-size dependent viscosity
8f106aecfd Bayl*0685 C     viscAhGridMax:: maximum and minimum harmonic viscosity coefficients ...
1e9e8678dd Bayl*0686 C     viscAhGridMin::  in terms of non-dimensional grid-size dependent visc.
e35a804907 Jean*0687 C     viscA4Max    :: Maximum biharmonic viscosity coeff. for mixing of
                0688 C                     momentum laterally ( m^4/s )
                0689 C     viscA4ReMax  :: Maximum Gridscale Reynolds number for
                0690 C                     biharmonic viscosity coeff. momentum laterally (non-dim)
                0691 C     viscA4Grid   :: non-dimensional grid-size dependent bi-harmonic viscosity
070e727a0d Dimi*0692 C     viscA4GridMax:: maximum and minimum biharmonic viscosity coefficients ...
                0693 C     viscA4GridMin::  in terms of non-dimensional grid-size dependent viscosity
ac0f2a1690 Chri*0694 C     diffKhT   :: Laplacian diffusion coeff. for mixing of
924557e60a Chri*0695 C                 heat laterally ( m^2/s )
ac0f2a1690 Chri*0696 C     diffK4T   :: Biharmonic diffusion coeff. for mixing of
924557e60a Chri*0697 C                 heat laterally ( m^4/s )
bf6138bedc Jean*0698 C     diffKrNrT :: vertical profile of Laplacian diffusion coeff.
                0699 C                 for mixing of heat vertically ( units of r^2/s )
                0700 C     diffKr4T  :: vertical profile of Biharmonic diffusion coeff.
                0701 C                 for mixing of heat vertically ( units of r^4/s )
ac0f2a1690 Chri*0702 C     diffKhS  ::  Laplacian diffusion coeff. for mixing of
924557e60a Chri*0703 C                 salt laterally ( m^2/s )
ac0f2a1690 Chri*0704 C     diffK4S   :: Biharmonic diffusion coeff. for mixing of
924557e60a Chri*0705 C                 salt laterally ( m^4/s )
bf6138bedc Jean*0706 C     diffKrNrS :: vertical profile of Laplacian diffusion coeff.
                0707 C                 for mixing of salt vertically ( units of r^2/s ),
                0708 C     diffKr4S  :: vertical profile of Biharmonic diffusion coeff.
                0709 C                 for mixing of salt vertically ( units of r^4/s )
19ec94aecc Alis*0710 C     diffKrBL79surf :: T/S surface diffusivity (m^2/s) Bryan and Lewis, 1979
                0711 C     diffKrBL79deep :: T/S deep diffusivity (m^2/s) Bryan and Lewis, 1979
                0712 C     diffKrBL79scl  :: depth scale for arctan fn (m) Bryan and Lewis, 1979
                0713 C     diffKrBL79Ho   :: depth offset for arctan fn (m) Bryan and Lewis, 1979
e40c34e398 Dimi*0714 C     BL79LatVary    :: polarwise of this latitude diffKrBL79 is applied with
                0715 C                       gradual transition to diffKrBLEQ towards Equator
                0716 C     diffKrBLEQsurf :: same as diffKrBL79surf but at Equator
                0717 C     diffKrBLEQdeep :: same as diffKrBL79deep but at Equator
                0718 C     diffKrBLEQscl  :: same as diffKrBL79scl but at Equator
                0719 C     diffKrBLEQHo   :: same as diffKrBL79Ho but at Equator
d4bae8cf47 Jean*0720 C     pCellMix_maxFac :: maximum enhanced mixing factor for thin partial-cell
                0721 C     pCellMix_delR   :: thickness criteria   for too thin partial-cell
                0722 C     pCellMix_viscAr :: vertical viscosity   for too thin partial-cell
                0723 C     pCellMix_diffKr :: vertical diffusivity for too thin partial-cell
ac0f2a1690 Chri*0724 C     deltaT    :: Default timestep ( s )
                0725 C     deltaTClock  :: Timestep used as model "clock". This determines the
66dc79a095 Chri*0726 C                    IO frequencies and is used in tagging output. It can
                0727 C                    be totally different to the dynamical time. Typically
                0728 C                    it will be the deep-water timestep for accelerated runs.
                0729 C                    Frequency of checkpointing and dumping of the model state
                0730 C                    are referenced to this clock. ( s )
ac0f2a1690 Chri*0731 C     deltaTMom    :: Timestep for momemtum equations ( s )
062a876ce5 Jean*0732 C     dTtracerLev  :: Timestep for tracer equations ( s ), function of level k
22dbc402ed Jean*0733 C     deltaTFreeSurf :: Timestep for free-surface equation ( s )
0097b465dd Jean*0734 C     freeSurfFac  :: Parameter to turn implicit free surface term on or off
                0735 C                     freeSurFac = 1. uses implicit free surface
                0736 C                     freeSurFac = 0. uses rigid lid
001808f0de Jean*0737 C     abEps        :: Adams-Bashforth-2 stabilizing weight
                0738 C     alph_AB      :: Adams-Bashforth-3 primary factor
                0739 C     beta_AB      :: Adams-Bashforth-3 secondary factor
ac0f2a1690 Chri*0740 C     implicSurfPress :: parameter of the Crank-Nickelson time stepping :
e5f0f23b70 Jean*0741 C                     Implicit part of Surface Pressure Gradient ( 0-1 )
05dafbe7c6 Jean*0742 C     implicDiv2DFlow :: parameter of the Crank-Nickelson time stepping :
e5f0f23b70 Jean*0743 C                     Implicit part of barotropic flow Divergence ( 0-1 )
9f72978e70 Jean*0744 C     implicitNHPress :: parameter of the Crank-Nickelson time stepping :
                0745 C                     Implicit part of Non-Hydrostatic Pressure Gradient ( 0-1 )
ac0f2a1690 Chri*0746 C     hFacMin      :: Minimum fraction size of a cell (affects hFacC etc...)
e2bc96a5d1 Jean*0747 C     hFacMinDz    :: Minimum dimensional size of a cell (affects hFacC etc..., m)
                0748 C     hFacMinDp    :: Minimum dimensional size of a cell (affects hFacC etc..., Pa)
                0749 C     hFacMinDr    :: Minimum dimensional size of a cell (-> hFacC etc..., r units)
ac0f2a1690 Chri*0750 C     hFacInf      :: Threshold (inf and sup) for fraction size of surface cell
e2bc96a5d1 Jean*0751 C     hFacSup          that control vanishing and creating levels
                0752 C     tauCD         :: CD scheme coupling timescale ( s )
                0753 C     rCD           :: CD scheme normalised coupling parameter (= 1 - deltaT/tauCD)
                0754 C     epsAB_CD      :: Adams-Bashforth-2 stabilizing weight used in CD scheme
873c307f71 Jean*0755 C     baseTime      :: model base time (time origin) = time @ iteration zero
ac0f2a1690 Chri*0756 C     startTime     :: Starting time for this integration ( s ).
                0757 C     endTime       :: Ending time for this integration ( s ).
                0758 C     chkPtFreq     :: Frequency of rolling check pointing ( s ).
                0759 C     pChkPtFreq    :: Frequency of permanent check pointing ( s ).
                0760 C     dumpFreq      :: Frequency with which model state is written to
0097b465dd Jean*0761 C                      post-processing files ( s ).
ac0f2a1690 Chri*0762 C     diagFreq      :: Frequency with which model writes diagnostic output
0097b465dd Jean*0763 C                      of intermediate quantities.
427e24e121 Jean*0764 C     afFacMom      :: Advection of momentum term multiplication factor
                0765 C     vfFacMom      :: Momentum viscosity term    multiplication factor
                0766 C     pfFacMom      :: Momentum pressure forcing  multiplication factor
                0767 C     cfFacMom      :: Coriolis term              multiplication factor
                0768 C     foFacMom      :: Momentum forcing           multiplication factor
                0769 C     mtFacMom      :: Metric terms               multiplication factor
ac0f2a1690 Chri*0770 C     cosPower      :: Power of cosine of latitude to multiply viscosity
                0771 C     cAdjFreq      :: Frequency of convective adjustment
15e8c0c8ad Chri*0772 C
e35a804907 Jean*0773 C     taveFreq      :: Frequency with which time-averaged model state
9800a0be87 Jean*0774 C                      is written to post-processing files ( s ).
e35a804907 Jean*0775 C     tave_lastIter :: (for state variable only) fraction of the last time
                0776 C                      step (of each taveFreq period) put in the time average.
9800a0be87 Jean*0777 C                      (fraction for 1rst iter = 1 - tave_lastIter)
ac0f2a1690 Chri*0778 C     tauThetaClimRelax :: Relaxation to climatology time scale ( s ).
                0779 C     tauSaltClimRelax :: Relaxation to climatology time scale ( s ).
36b12bb7ff Jean*0780 C     latBandClimRelax :: latitude band where Relaxation to Clim. is applied,
                0781 C                         i.e. where |yC| <= latBandClimRelax
ac0f2a1690 Chri*0782 C     externForcingPeriod :: Is the period of which forcing varies (eg. 1 month)
                0783 C     externForcingCycle :: Is the repeat time of the forcing (eg. 1 year)
4edf45584c Alis*0784 C                          (note: externForcingCycle must be an integer
                0785 C                           number times externForcingPeriod)
ea4246aae8 Jean*0786 C     convertFW2Salt :: salinity, used to convert Fresh-Water Flux to Salt Flux
                0787 C                       (use model surface (local) value if set to -1)
e35a804907 Jean*0788 C     temp_EvPrRn :: temperature of Rain & Evap.
ea4246aae8 Jean*0789 C     salt_EvPrRn :: salinity of Rain & Evap.
427e24e121 Jean*0790 C     temp_addMass :: temperature of addMass field
                0791 C     salt_addMass :: salinity of addMass field
e35a804907 Jean*0792 C        (notes: a) tracer content of Rain/Evap only used if both
ea4246aae8 Jean*0793 C                     NonLin_FrSurf & useRealFreshWater are set.
                0794 C                b) use model surface (local) value if set to UNSET_RL)
7c01d59526 Davi*0795 C     hMixCriteria:: criteria for mixed-layer diagnostic
                0796 C     dRhoSmall   :: parameter for mixed-layer diagnostic
ab47de63dc Mart*0797 C     hMixSmooth  :: Smoothing parameter for mixed-layer diag
                0798 C                    (default=0: no smoothing)
dcd7aba685 Jean*0799 C     ivdc_kappa  :: implicit vertical diffusivity for convection [m^2/s]
e35a804907 Jean*0800 C     sideDragFactor     :: side-drag scaling factor (used only if no_slip_sides)
f4b9df5e2d Jean*0801 C                           (default=2: full drag ; =1: gives half-slip BC)
01c16836c5 Jean*0802 C     bottomDragLinear    :: Linear    bottom-drag coefficient (units of [r]/s)
                0803 C     bottomDragQuadratic :: Quadratic bottom-drag coefficient (units of [r]/m)
                0804 C               (if using zcoordinate, units becomes linear: m/s, quadratic: [-])
ab47de63dc Mart*0805 C     zRoughBot :: roughness length for quadratic bottom friction coefficient
                0806 C                  (in m, typical values are order 0.01 m)
616600b8d2 Patr*0807 C     smoothAbsFuncRange :: 1/2 of interval around zero, for which FORTRAN ABS
                0808 C                           is to be replace by a smoother function
                0809 C                           (affects myabs, mymin, mymax)
ab47de63dc Mart*0810 C     nh_Am2        :: scales non-hydrostatic terms and changes internal scales
f4b9df5e2d Jean*0811 C                      (i.e. allows convection at different Rayleigh numbers)
22dbc402ed Jean*0812 C     tCylIn        :: Temperature of the cylinder inner boundary
                0813 C     tCylOut       :: Temperature of the cylinder outer boundary
7514c1bd55 Mart*0814 C     phiEuler      :: Euler angle, rotation about original z-axis
                0815 C     thetaEuler    :: Euler angle, rotation about new x-axis
                0816 C     psiEuler      :: Euler angle, rotation about new z-axis
7548b53ced Jean*0817       COMMON /PARM_R/ cg2dTargetResidual, cg2dTargetResWunit,
aea29c8517 Alis*0818      & cg2dpcOffDFac, cg3dTargetResidual,
2ad79bdf32 Jean*0819      & delR, delRc, xgOrigin, ygOrigin, rSphere, recip_rSphere,
                0820      & radius_fromHorizGrid, seaLev_Z, top_Pres, rSigmaBnd,
22dbc402ed Jean*0821      & deltaT, deltaTMom, dTtracerLev, deltaTFreeSurf, deltaTClock,
001808f0de Jean*0822      & abEps, alph_AB, beta_AB,
c07cd3bfa8 Jean*0823      & f0, beta, fPrime, omega, rotationPeriod,
2d5bb917cc Jean*0824      & viscFacAdj, viscAh, viscAhW, smag3D_coeff, smag3D_diffCoeff,
acaad95e18 Jean*0825      & viscAhMax, viscAhGrid, viscAhGridMax, viscAhGridMin,
f59d76b0dd Ed D*0826      & viscC2leith, viscC2leithD, viscC2LeithQG,
fb933c6516 Bayl*0827      & viscC2smag, viscC4smag,
915a82d1f5 Jean*0828      & viscAhD, viscAhZ, viscA4D, viscA4Z,
e35a804907 Jean*0829      & viscA4, viscA4W, viscA4Max,
                0830      & viscA4Grid, viscA4GridMax, viscA4GridMin,
                0831      & viscAhReMax, viscA4ReMax,
2d15ad3a83 Jean*0832      & viscC4leith, viscC4leithD, viscArNr,
bf6138bedc Jean*0833      & diffKhT, diffK4T, diffKrNrT, diffKr4T,
                0834      & diffKhS, diffK4S, diffKrNrS, diffKr4S,
19ec94aecc Alis*0835      & diffKrBL79surf, diffKrBL79deep, diffKrBL79scl, diffKrBL79Ho,
e40c34e398 Dimi*0836      & BL79LatVary,
0aefc24df1 Dimi*0837      & diffKrBLEQsurf, diffKrBLEQdeep, diffKrBLEQscl, diffKrBLEQHo,
d4bae8cf47 Jean*0838      & pCellMix_maxFac, pCellMix_delR, pCellMix_viscAr, pCellMix_diffKr,
e2bc96a5d1 Jean*0839      & tauCD, rCD, epsAB_CD,
05dafbe7c6 Jean*0840      & freeSurfFac, implicSurfPress, implicDiv2DFlow, implicitNHPress,
aea29c8517 Alis*0841      & hFacMin, hFacMinDz, hFacInf, hFacSup,
599be48d9a Jean*0842      & gravity, recip_gravity, gBaro,
6ef71429db Jean*0843      & gravFacC, recip_gravFacC, gravFacF, recip_gravFacF,
                0844      & rhoNil, rhoConst, recip_rhoConst, rho1Ref,
                0845      & rhoFacC, recip_rhoFacC, rhoFacF, recip_rhoFacF, rhoConstFresh,
5b172de0d2 Jean*0846      & thetaConst, tRef, sRef, rhoRef, dBdrRef,
                0847      & surf_pRef, pRef4EOS, phiRef,
                0848      & rVel2wUnit, wUnit2rVel, rUnit2z, z2rUnit, mass2rUnit, rUnit2mass,
7548b53ced Jean*0849      & baseTime, startTime, endTime,
                0850      & chkPtFreq, pChkPtFreq, dumpFreq, adjDumpFreq,
dd069a2c40 Patr*0851      & diagFreq, taveFreq, tave_lastIter, monitorFreq, adjMonitorFreq,
b05b067368 Chri*0852      & afFacMom, vfFacMom, pfFacMom, cfFacMom, foFacMom, mtFacMom,
c07cd3bfa8 Jean*0853      & cosPower, cAdjFreq,
e13269dd4b Jean*0854      & tauThetaClimRelax, tauSaltClimRelax, latBandClimRelax,
b915494633 Chri*0855      & externForcingCycle, externForcingPeriod,
acf54afd9e Jean*0856      & convertFW2Salt, temp_EvPrRn, salt_EvPrRn,
80d98e0151 Dimi*0857      & temp_addMass, salt_addMass, hFacMinDr, hFacMinDp,
f15994caab Jean*0858      & ivdc_kappa, hMixCriteria, dRhoSmall, hMixSmooth,
ab47de63dc Mart*0859      & sideDragFactor, bottomDragLinear, bottomDragQuadratic,
                0860      & zRoughBot, nh_Am2, smoothAbsFuncRange, sIceLoadFac,
7514c1bd55 Mart*0861      & tCylIn, tCylOut,
                0862      & phiEuler, thetaEuler, psiEuler
b915494633 Chri*0863 
4e41eecc46 Alis*0864       _RL cg2dTargetResidual
aea29c8517 Alis*0865       _RL cg2dTargetResWunit
46dc4f419b Chri*0866       _RL cg3dTargetResidual
66dc79a095 Chri*0867       _RL cg2dpcOffDFac
3d6b649e23 Chri*0868       _RL delR(Nr)
c28ce1627a Jean*0869       _RL delRc(Nr+1)
9744e36521 Jean*0870       _RL xgOrigin
                0871       _RL ygOrigin
2ad79bdf32 Jean*0872       _RL rSphere
                0873       _RL recip_rSphere
                0874       _RL radius_fromHorizGrid
                0875       _RL seaLev_Z
                0876       _RL top_Pres
6ef71429db Jean*0877       _RL rSigmaBnd
4e41eecc46 Alis*0878       _RL deltaT
66dc79a095 Chri*0879       _RL deltaTClock
22dbc402ed Jean*0880       _RL deltaTMom
062a876ce5 Jean*0881       _RL dTtracerLev(Nr)
22dbc402ed Jean*0882       _RL deltaTFreeSurf
001808f0de Jean*0883       _RL abEps, alph_AB, beta_AB
4e41eecc46 Alis*0884       _RL f0
c07cd3bfa8 Jean*0885       _RL beta
                0886       _RL fPrime
                0887       _RL omega
                0888       _RL rotationPeriod
c0a4efc370 Chri*0889       _RL freeSurfFac
e5f0f23b70 Jean*0890       _RL implicSurfPress
05dafbe7c6 Jean*0891       _RL implicDiv2DFlow
9f72978e70 Jean*0892       _RL implicitNHPress
174c27c489 Alis*0893       _RL hFacMin
                0894       _RL hFacMinDz
910f05e765 Chri*0895       _RL hFacMinDp
b915494633 Chri*0896       _RL hFacMinDr
aea29c8517 Alis*0897       _RL hFacInf
                0898       _RL hFacSup
2d15ad3a83 Jean*0899       _RL viscArNr(Nr)
ff0e47a5e6 Patr*0900       _RL viscFacAdj
4e41eecc46 Alis*0901       _RL viscAh
6deb815953 Mart*0902       _RL viscAhW
915a82d1f5 Jean*0903       _RL viscAhD
                0904       _RL viscAhZ
2d5bb917cc Jean*0905       _RL smag3D_coeff, smag3D_diffCoeff
396048594e Alis*0906       _RL viscAhMax
1e9e8678dd Bayl*0907       _RL viscAhReMax
e35a804907 Jean*0908       _RL viscAhGrid, viscAhGridMax, viscAhGridMin
e46ec53fc5 Alis*0909       _RL viscC2leith
8f106aecfd Bayl*0910       _RL viscC2leithD
f59d76b0dd Ed D*0911       _RL viscC2LeithQG
f293e6030b Bayl*0912       _RL viscC2smag
7548b53ced Jean*0913       _RL viscA4
0b6cbae535 Mart*0914       _RL viscA4W
915a82d1f5 Jean*0915       _RL viscA4D
                0916       _RL viscA4Z
396048594e Alis*0917       _RL viscA4Max
1e9e8678dd Bayl*0918       _RL viscA4ReMax
070e727a0d Dimi*0919       _RL viscA4Grid, viscA4GridMax, viscA4GridMin
e46ec53fc5 Alis*0920       _RL viscC4leith
8f106aecfd Bayl*0921       _RL viscC4leithD
e35a804907 Jean*0922       _RL viscC4smag
7548b53ced Jean*0923       _RL diffKhT
                0924       _RL diffK4T
bf6138bedc Jean*0925       _RL diffKrNrT(Nr)
                0926       _RL diffKr4T(Nr)
7548b53ced Jean*0927       _RL diffKhS
                0928       _RL diffK4S
bf6138bedc Jean*0929       _RL diffKrNrS(Nr)
                0930       _RL diffKr4S(Nr)
19ec94aecc Alis*0931       _RL diffKrBL79surf
                0932       _RL diffKrBL79deep
                0933       _RL diffKrBL79scl
                0934       _RL diffKrBL79Ho
e40c34e398 Dimi*0935       _RL BL79LatVary
0aefc24df1 Dimi*0936       _RL diffKrBLEQsurf
                0937       _RL diffKrBLEQdeep
                0938       _RL diffKrBLEQscl
                0939       _RL diffKrBLEQHo
d4bae8cf47 Jean*0940       _RL pCellMix_maxFac
                0941       _RL pCellMix_delR
                0942       _RL pCellMix_viscAr(Nr)
                0943       _RL pCellMix_diffKr(Nr)
e2bc96a5d1 Jean*0944       _RL tauCD, rCD, epsAB_CD
6ef71429db Jean*0945       _RL gravity,       recip_gravity
c0a4efc370 Chri*0946       _RL gBaro
6ef71429db Jean*0947       _RL gravFacC(Nr),   recip_gravFacC(Nr)
                0948       _RL gravFacF(Nr+1), recip_gravFacF(Nr+1)
d22f79dd46 Jean*0949       _RL rhoNil
afed22d369 Jean*0950       _RL rhoConst,      recip_rhoConst
6ef71429db Jean*0951       _RL rho1Ref(Nr)
afed22d369 Jean*0952       _RL rhoFacC(Nr),   recip_rhoFacC(Nr)
                0953       _RL rhoFacF(Nr+1), recip_rhoFacF(Nr+1)
e305438401 Mart*0954       _RL rhoConstFresh
6ef71429db Jean*0955       _RL thetaConst
3d6b649e23 Chri*0956       _RL tRef(Nr)
                0957       _RL sRef(Nr)
5b172de0d2 Jean*0958       _RL rhoRef(Nr)
                0959       _RL dBdrRef(Nr)
0bfef71ac3 Jean*0960       _RL surf_pRef, pRef4EOS(Nr)
d72f51c392 Jean*0961       _RL phiRef(2*Nr+1)
eba17c6dff Jean*0962       _RL rVel2wUnit(Nr+1), wUnit2rVel(Nr+1)
5b172de0d2 Jean*0963       _RL rUnit2z(Nr), z2rUnit(Nr)
599be48d9a Jean*0964       _RL mass2rUnit, rUnit2mass
873c307f71 Jean*0965       _RL baseTime
4e41eecc46 Alis*0966       _RL startTime
                0967       _RL endTime
                0968       _RL chkPtFreq
66dc79a095 Chri*0969       _RL pChkPtFreq
4e41eecc46 Alis*0970       _RL dumpFreq
ea0f79f160 Patr*0971       _RL adjDumpFreq
3a279374db Alis*0972       _RL diagFreq
c0c3fe12e2 Alis*0973       _RL taveFreq
9800a0be87 Jean*0974       _RL tave_lastIter
dc684458c1 Alis*0975       _RL monitorFreq
dd069a2c40 Patr*0976       _RL adjMonitorFreq
cf8488c0fd Chri*0977       _RL afFacMom
                0978       _RL vfFacMom
                0979       _RL pfFacMom
                0980       _RL cfFacMom
                0981       _RL foFacMom
3362dfc756 Jean*0982       _RL mtFacMom
d61b70ab90 Alis*0983       _RL cosPower
cf8488c0fd Chri*0984       _RL cAdjFreq
42bd47f06f Chri*0985       _RL tauThetaClimRelax
                0986       _RL tauSaltClimRelax
36b12bb7ff Jean*0987       _RL latBandClimRelax
4edf45584c Alis*0988       _RL externForcingCycle
                0989       _RL externForcingPeriod
ea4246aae8 Jean*0990       _RL convertFW2Salt
                0991       _RL temp_EvPrRn
                0992       _RL salt_EvPrRn
80d98e0151 Dimi*0993       _RL temp_addMass
                0994       _RL salt_addMass
d4701cb6da Alis*0995       _RL ivdc_kappa
dcd7aba685 Jean*0996       _RL hMixCriteria
7c01d59526 Davi*0997       _RL dRhoSmall
d1b0368d70 Davi*0998       _RL hMixSmooth
f4b9df5e2d Jean*0999       _RL sideDragFactor
fb481a83c2 Alis*1000       _RL bottomDragLinear
                1001       _RL bottomDragQuadratic
ab47de63dc Mart*1002       _RL zRoughBot
616600b8d2 Patr*1003       _RL smoothAbsFuncRange
0320e25227 Mart*1004       _RL sIceLoadFac
f4b9df5e2d Jean*1005       _RL nh_Am2
22dbc402ed Jean*1006       _RL tCylIn, tCylOut
7514c1bd55 Mart*1007       _RL phiEuler, thetaEuler, psiEuler
4e41eecc46 Alis*1008 
c95709dc6d Jean*1009 C--   COMMON /PARM_A/ Thermodynamics constants ?
aad87ebb4c Jean*1010       COMMON /PARM_A/ HeatCapacity_Cp
4e41eecc46 Alis*1011       _RL HeatCapacity_Cp
3a4fdb21a1 Alis*1012 
c95709dc6d Jean*1013 C--   COMMON /PARM_ATM/ Atmospheric physical parameters (Ideal Gas EOS, ...)
                1014 C     celsius2K :: convert centigrade (Celsius) degree to Kelvin
be72675163 Jean*1015 C     atm_Po    :: standard reference pressure
                1016 C     atm_Cp    :: specific heat (Cp) of the (dry) air at constant pressure
                1017 C     atm_Rd    :: gas constant for dry air
ac0f2a1690 Chri*1018 C     atm_kappa :: kappa = R/Cp (R: constant of Ideal Gas EOS)
1aedd07e9b Jean*1019 C     atm_Rq    :: water vapour specific volume anomaly relative to dry air
                1020 C                  (e.g. typical value = (29/18 -1) 10^-3 with q [g/kg])
be72675163 Jean*1021 C     integr_GeoPot :: option to select the way we integrate the geopotential
e35a804907 Jean*1022 C                     (still a subject of discussions ...)
be72675163 Jean*1023 C     selectFindRoSurf :: select the way surf. ref. pressure (=Ro_surf) is
                1024 C             derived from the orography. Implemented: 0,1 (see INI_P_GROUND)
7548b53ced Jean*1025       COMMON /PARM_ATM/
c95709dc6d Jean*1026      &            celsius2K,
1aedd07e9b Jean*1027      &            atm_Cp, atm_Rd, atm_kappa, atm_Rq, atm_Po,
c95709dc6d Jean*1028      &            integr_GeoPot, selectFindRoSurf
                1029       _RL celsius2K
1aedd07e9b Jean*1030       _RL atm_Po, atm_Cp, atm_Rd, atm_kappa, atm_Rq
be72675163 Jean*1031       INTEGER integr_GeoPot, selectFindRoSurf
b69c172d01 Jean*1032 
427e24e121 Jean*1033 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
d4bae8cf47 Jean*1034 C-- Logical flags for selecting packages
65594b9008 Jean*1035       LOGICAL useGAD
                1036       LOGICAL useOBCS
                1037       LOGICAL useSHAP_FILT
                1038       LOGICAL useZONAL_FILT
69a7b27187 Mart*1039       LOGICAL useOPPS
830fad566b Mart*1040       LOGICAL usePP81
d8d1486ca1 Jean*1041       LOGICAL useKL10
830fad566b Mart*1042       LOGICAL useMY82
69a7b27187 Mart*1043       LOGICAL useGGL90
de6e9ab483 Patr*1044       LOGICAL useKPP
                1045       LOGICAL useGMRedi
65594b9008 Jean*1046       LOGICAL useDOWN_SLOPE
15338fa568 Dimi*1047       LOGICAL useBBL
7548b53ced Jean*1048       LOGICAL useCAL
                1049       LOGICAL useEXF
65594b9008 Jean*1050       LOGICAL useBulkForce
7548b53ced Jean*1051       LOGICAL useEBM
65594b9008 Jean*1052       LOGICAL useCheapAML
ea7d076e20 Gael*1053       LOGICAL useAUTODIFF
41794ec014 Patr*1054       LOGICAL useGrdchk
e2bc96a5d1 Jean*1055       LOGICAL useSMOOTH
e994210c2e Gael*1056       LOGICAL usePROFILES
de6e9ab483 Patr*1057       LOGICAL useECCO
e2bbdfe9d8 Gael*1058       LOGICAL useCTRL
65594b9008 Jean*1059       LOGICAL useSBO
c806179eb4 Alis*1060       LOGICAL useFLT
5c43c390b6 Alis*1061       LOGICAL usePTRACERS
0a90236bb2 Mart*1062       LOGICAL useGCHEM
aad15a16e0 Step*1063       LOGICAL useRBCS
273603bbbc Jean*1064       LOGICAL useOffLine
7548b53ced Jean*1065       LOGICAL useMATRIX
e0b3e1bdd8 Dimi*1066       LOGICAL useFRAZIL
5ee2971ab8 Patr*1067       LOGICAL useSEAICE
65594b9008 Jean*1068       LOGICAL useSALT_PLUME
420f1345d9 Mart*1069       LOGICAL useShelfIce
00f81e6785 Ou W*1070       LOGICAL useSTIC
5d210a8dab Patr*1071       LOGICAL useStreamIce
5da8ce63fa Dimi*1072       LOGICAL useICEFRONT
4df1d791de Jean*1073       LOGICAL useThSIce
9042972bc7 Jean*1074       LOGICAL useLand
30f180d597 Jeff*1075       LOGICAL useATM2d
65594b9008 Jean*1076       LOGICAL useAIM
9042972bc7 Jean*1077       LOGICAL useAtm_Phys
65594b9008 Jean*1078       LOGICAL useFizhi
                1079       LOGICAL useGridAlt
46979d29da Jean*1080       LOGICAL useDiagnostics
39cebd8084 Ed H*1081       LOGICAL useREGRID
68fac71428 Ryan*1082       LOGICAL useLayers
65594b9008 Jean*1083       LOGICAL useMNC
1eeb28fe07 Alis*1084       LOGICAL useRunClock
0ee646bca5 Ed H*1085       LOGICAL useEMBED_FILES
0dc94a8572 Patr*1086       LOGICAL useMYPACKAGE
f55100cf63 Alis*1087       COMMON /PARM_PACKAGES/
65594b9008 Jean*1088      &        useGAD, useOBCS, useSHAP_FILT, useZONAL_FILT,
d8d1486ca1 Jean*1089      &        useOPPS, usePP81, useKL10, useMY82, useGGL90, useKPP,
f9ef55fa0c Jean*1090      &        useGMRedi, useBBL, useDOWN_SLOPE,
65594b9008 Jean*1091      &        useCAL, useEXF, useBulkForce, useEBM, useCheapAML,
f9ef55fa0c Jean*1092      &        useGrdchk, useSMOOTH, usePROFILES, useECCO, useCTRL,
ea7d076e20 Gael*1093      &        useSBO, useFLT, useAUTODIFF,
7548b53ced Jean*1094      &        usePTRACERS, useGCHEM, useRBCS, useOffLine, useMATRIX,
00f81e6785 Ou W*1095      &        useFRAZIL, useSEAICE, useSALT_PLUME, useShelfIce, useSTIC,
9042972bc7 Jean*1096      &        useStreamIce, useICEFRONT, useThSIce, useLand,
427e24e121 Jean*1097      &        useATM2d, useAIM, useAtm_Phys, useFizhi, useGridAlt,
68fac71428 Ryan*1098      &        useDiagnostics, useREGRID, useLayers, useMNC,
65594b9008 Jean*1099      &        useRunClock, useEMBED_FILES,
514844cf97 Jean*1100      &        useMYPACKAGE
83d329dbf1 Mart*1101 
427e24e121 Jean*1102 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|