| 1 | afe | 1.1 | c $Header: /u/u0/gcmpack/MITgcm/model/inc/PARAMS.h,v 1.83 2002/12/10 02:47:26 jmc Exp $ | 
| 2 |  |  | C $Name: checkpoint48 $ | 
| 3 |  |  | C | 
| 4 |  |  | 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 |  |  |  | 
| 20 |  |  | C     Macros for special grid options | 
| 21 |  |  | #include "PARAMS_MACROS.h" | 
| 22 |  |  |  | 
| 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 |  |  | C     Symbolic values | 
| 31 |  |  | C     precXXXX :: Used to indicate what precision to use for | 
| 32 |  |  | C                dumping model state. | 
| 33 |  |  | INTEGER precFloat32 | 
| 34 |  |  | PARAMETER ( precFloat32 = 32 ) | 
| 35 |  |  | INTEGER precFloat64 | 
| 36 |  |  | PARAMETER ( precFloat64 = 64 ) | 
| 37 |  |  | C     UNSET_xxx :: Used to indicate variables that have not been given a value | 
| 38 |  |  | 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 |  |  |  | 
| 49 |  |  | C     Checkpoint data | 
| 50 |  |  | INTEGER maxNoChkptLev | 
| 51 |  |  | PARAMETER ( maxNoChkptLev = 2 ) | 
| 52 |  |  |  | 
| 53 |  |  | C--   COMMON /PARM_C/ Character valued parameters used by the model. | 
| 54 |  |  | C     checkPtSuff :: List of checkpoint file suffices | 
| 55 |  |  | C     bathyFile   :: File containing bathymetry. If not defined bathymetry | 
| 56 |  |  | C                   is taken from inline function. | 
| 57 |  |  | C     topoFile    :: File containing the topography of the surface (unit=m) | 
| 58 |  |  | C                   (mainly used for the atmosphere = ground height). | 
| 59 |  |  | C     hydrogThetaFile :: File containing initial hydrographic data for potential | 
| 60 |  |  | C                       temperature. | 
| 61 |  |  | 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 |  |  | C                       in relaxation term -lambda(theta-theta*) | 
| 66 |  |  | C     saltClimFile    :: File containing salt climataology used | 
| 67 |  |  | C                       in relaxation term -lambda(salt-salt*) | 
| 68 |  |  | C     surfQfile       :: File containing surface heat flux | 
| 69 |  |  | C     surfQswfile     :: File containing surface shortwave radiation | 
| 70 |  |  | C     dQdTfile        :: File containing thermal relaxation coefficient | 
| 71 |  |  | C     EmPmRfile       :: File containing surface fresh water flux | 
| 72 |  |  | C     pLoadFile       :: File containing pressure loading | 
| 73 |  |  | C     buoyancyRelation :: Flag used to indicate which relation to use to | 
| 74 |  |  | C                        get buoyancy. | 
| 75 |  |  | C     eosType         :: choose the equation of state: | 
| 76 |  |  | C                        LINEAR, POLY3, UNESCO, JMD95Z, JMD95P | 
| 77 |  |  | COMMON /PARM_C/ checkPtSuff, | 
| 78 |  |  | &                bathyFile, topoFile, | 
| 79 |  |  | &                hydrogThetaFile, hydrogSaltFile, | 
| 80 |  |  | &                zonalWindFile, meridWindFile, thetaClimFile, | 
| 81 |  |  | &                saltClimFile, buoyancyRelation, | 
| 82 |  |  | &                EmPmRfile, surfQfile, surfQswfile, | 
| 83 |  |  | &                uVelInitFile, vVelInitFile, pSurfInitFile, | 
| 84 |  |  | &                dQdTfile, ploadFile, | 
| 85 |  |  | &                eosType, tCyl | 
| 86 |  |  | CHARACTER*(5) checkPtSuff(maxNoChkptLev) | 
| 87 |  |  | CHARACTER*(MAX_LEN_FNAM) bathyFile, topoFile | 
| 88 |  |  | CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile | 
| 89 |  |  | CHARACTER*(MAX_LEN_FNAM) hydrogSaltFile | 
| 90 |  |  | CHARACTER*(MAX_LEN_FNAM) zonalWindFile | 
| 91 |  |  | CHARACTER*(MAX_LEN_FNAM) meridWindFile | 
| 92 |  |  | CHARACTER*(MAX_LEN_FNAM) thetaClimFile | 
| 93 |  |  | CHARACTER*(MAX_LEN_FNAM) saltClimFile | 
| 94 |  |  | CHARACTER*(MAX_LEN_FNAM) surfQfile | 
| 95 |  |  | CHARACTER*(MAX_LEN_FNAM) surfQswfile | 
| 96 |  |  | CHARACTER*(MAX_LEN_FNAM) EmPmRfile | 
| 97 |  |  | CHARACTER*(MAX_LEN_FNAM) buoyancyRelation | 
| 98 |  |  | CHARACTER*(MAX_LEN_FNAM) uVelInitFile | 
| 99 |  |  | CHARACTER*(MAX_LEN_FNAM) vVelInitFile | 
| 100 |  |  | CHARACTER*(MAX_LEN_FNAM) pSurfInitFile | 
| 101 |  |  | CHARACTER*(MAX_LEN_FNAM) dQdTfile | 
| 102 |  |  | CHARACTER*(MAX_LEN_FNAM) ploadFile | 
| 103 |  |  | CHARACTER*(6) eosType | 
| 104 |  |  | _RL tCyl | 
| 105 |  |  |  | 
| 106 |  |  | C--   COMMON /PARM_I/ Integer valued parameters used by the model. | 
| 107 |  |  | C     cg2dMaxIters        :: Maximum number of iterations in the | 
| 108 |  |  | C                           two-dimensional con. grad solver. | 
| 109 |  |  | C     cg2dChkResFreq      :: Frequency with which to check residual | 
| 110 |  |  | C                           in con. grad solver. | 
| 111 |  |  | C     cg3dMaxIters        :: Maximum number of iterations in the | 
| 112 |  |  | C                           three-dimensional con. grad solver. | 
| 113 |  |  | C     cg3dChkResFreq      :: Frequency with which to check residual | 
| 114 |  |  | C                           in con. grad solver. | 
| 115 |  |  | C     nIter0              :: Start time-step number of for this run | 
| 116 |  |  | C     nTimeSteps          :: Number of timesteps to execute | 
| 117 |  |  | C     numStepsPerPickup   :: For offline setup. Frequency of pickup | 
| 118 |  |  | C                           of flow fields. | 
| 119 |  |  | C     writeStatePrec      :: Precision used for writing model state. | 
| 120 |  |  | C     writeBinaryPrec     :: Precision used for writing binary files | 
| 121 |  |  | C     readBinaryPrec      :: Precision used for reading binary files | 
| 122 |  |  | C     nCheckLev           :: Holds current checkpoint level | 
| 123 |  |  | C     nonlinFreeSurf      :: option related to non-linear free surface | 
| 124 |  |  | C                           =0 Linear free surface ; >0 Non-linear | 
| 125 |  |  |  | 
| 126 |  |  | COMMON /PARM_I/ | 
| 127 |  |  | &        cg2dMaxIters, | 
| 128 |  |  | &        cg2dChkResFreq, | 
| 129 |  |  | &        cg3dMaxIters, | 
| 130 |  |  | &        cg3dChkResFreq, | 
| 131 |  |  | &        nIter0, nTimeSteps, nEndIter, | 
| 132 |  |  | &        numStepsPerPickup, | 
| 133 |  |  | &        writeStatePrec, nCheckLev, | 
| 134 |  |  | &        writeBinaryPrec, readBinaryPrec, | 
| 135 |  |  | &        nonlinFreeSurf, | 
| 136 |  |  | &        tempAdvScheme, saltAdvScheme, tracerAdvScheme | 
| 137 |  |  | INTEGER cg2dMaxIters | 
| 138 |  |  | INTEGER cg2dChkResFreq | 
| 139 |  |  | INTEGER cg3dMaxIters | 
| 140 |  |  | INTEGER cg3dChkResFreq | 
| 141 |  |  | INTEGER nIter0 | 
| 142 |  |  | INTEGER nTimeSteps | 
| 143 |  |  | INTEGER nEndIter | 
| 144 |  |  | INTEGER numStepsPerPickup | 
| 145 |  |  | INTEGER writeStatePrec | 
| 146 |  |  | INTEGER writeBinaryPrec | 
| 147 |  |  | INTEGER readBinaryPrec | 
| 148 |  |  | INTEGER nCheckLev | 
| 149 |  |  | INTEGER nonlinFreeSurf | 
| 150 |  |  | INTEGER tempAdvScheme | 
| 151 |  |  | INTEGER saltAdvScheme | 
| 152 |  |  | INTEGER tracerAdvScheme | 
| 153 |  |  |  | 
| 154 |  |  | C--   COMMON /PARM_L/ Logical valued parameters used by the model. | 
| 155 |  |  | C     usingCartesianGrid :: If TRUE grid generation will be in a cartesian | 
| 156 |  |  | C                          coordinate frame. | 
| 157 |  |  | C     usingSphericalPolarGrid :: If TRUE grid generation will be in a | 
| 158 |  |  | C                               spherical polar frame. | 
| 159 |  |  | C     bUseCylindricalGrid :: If TRUE grid generation will be Cylindrical | 
| 160 |  |  | C     no_slip_sides :: Impose "no-slip" at lateral boundaries. | 
| 161 |  |  | C     no_slip_bottom :: Impose "no-slip" at bottom boundary. | 
| 162 |  |  | C     staggerTimeStep :: enable a Stagger time stepping T,S Rho then U,V | 
| 163 |  |  | C     momViscosity  :: Flag which turns momentum friction terms on and off. | 
| 164 |  |  | C     momAdvection  :: Flag which turns advection of momentum on and off. | 
| 165 |  |  | C     momForcing    :: Flag which turns external forcing of momentum on | 
| 166 |  |  | C                     and off. | 
| 167 |  |  | C     momPressureForcing :: Flag which turns pressure term in momentum equation | 
| 168 |  |  | C                          on and off. | 
| 169 |  |  | C     metricTerms   :: Flag which turns metric terms on or off. | 
| 170 |  |  | C     usingSphericalPolarMTerms :: If TRUE use spherical polar metric terms. | 
| 171 |  |  | C     useNHMTerms :: If TRUE use non-hydrostatic metric terms. | 
| 172 |  |  | C     useCoriolis   :: Flag which turns the coriolis terms on and off. | 
| 173 |  |  | C     tempDiffusion :: Flag which turns diffusion of temperature on | 
| 174 |  |  | C                     and off. | 
| 175 |  |  | C     tempAdvection :: Flag which turns advection of temperature on | 
| 176 |  |  | C                     and off. | 
| 177 |  |  | C     tempForcing   :: Flag which turns external forcing of temperature on | 
| 178 |  |  | C                     and off. | 
| 179 |  |  | C     saltDiffusion :: Flag which turns diffusion of salinity on | 
| 180 |  |  | C                     and off. | 
| 181 |  |  | C     saltAdvection :: Flag which turns advection of salinity on | 
| 182 |  |  | C                     and off. | 
| 183 |  |  | C     saltForcing   :: Flag which turns external forcing of salinity on | 
| 184 |  |  | C                     and off. | 
| 185 |  |  | C     useRealFreshWaterFlux :: if True (=Natural BCS), treats P+R-E flux | 
| 186 |  |  | C                         as a real Fresh Water (=> changes the Sea Level) | 
| 187 |  |  | C                         if F, converts P+R-E to salt flux (no SL effect) | 
| 188 |  |  | C     rigidLid            :: Set to true to use rigid lid | 
| 189 |  |  | C     implicitFreeSurface :: Set to true to use implcit free surface | 
| 190 |  |  | C     exactConserv        :: Set to true to conserve exactly the total Volume | 
| 191 |  |  | C     uniformLin_PhiSurf  :: Set to true to use a uniform Bo_surf in the | 
| 192 |  |  | C                           linear relation Phi_surf = Bo_surf*eta | 
| 193 |  |  | C     momStepping   :: Turns momentum equation time-stepping off | 
| 194 |  |  | C     tempStepping  :: Turns temperature equation time-stepping off | 
| 195 |  |  | C     saltStepping  :: Turns salinity equation time-stepping off | 
| 196 |  |  | C     tr1Stepping   :: Turns passive tracer 1 time-stepping on/off | 
| 197 |  |  | C     useConstantF  :: Coriolis parameter set to f0 | 
| 198 |  |  | C     useBetaPlaneF :: Coriolis parameter set to f0 + beta.y | 
| 199 |  |  | C     useSphereF    :: Coriolis parameter set to 2.omega.sin(phi) | 
| 200 |  |  | C     useJamartWetPoints :: Use wet-point method for Coriolis (Jamart and Ozer, 1986) | 
| 201 |  |  | C     implicitDiffusion :: Turns implicit vertical diffusion on | 
| 202 |  |  | C     implicitViscosity :: Turns implicit vertical viscosity on | 
| 203 |  |  | C     multiDimAdvection :: Flag that enable multi-dimension advection | 
| 204 |  |  | C     forcing_In_AB :: if False, put forcing (Temp,Salt,Tracers) contribution | 
| 205 |  |  | C                      out off Adams-Bashforth time stepping. | 
| 206 |  |  | C     doThetaClimRelax :: Set true if relaxation to temperature | 
| 207 |  |  | C                        climatology is required. | 
| 208 |  |  | C     doSaltClimRelax  :: Set true if relaxation to salinity | 
| 209 |  |  | C                        climatology is required. | 
| 210 |  |  | C     periodicExternalForcing :: Set true if forcing is time-dependant | 
| 211 |  |  | C     usingPCoords     :: Set to indicate that we are working in pressure | 
| 212 |  |  | C                        coords. | 
| 213 |  |  | C     usingZCoords     :: Set to indicate that we are working in height | 
| 214 |  |  | C                        coords. | 
| 215 |  |  | C     setCenterDr    :: set cell Center depth and put Interface at the middle | 
| 216 |  |  | C     nonHydrostatic :: Using non-hydrostatic terms | 
| 217 |  |  | C     quasiHydrostatic :: Using non-hydrostatic terms in hydrostatic algorithm | 
| 218 |  |  | C     globalFiles    :: Selects between "global" and "tiled" files | 
| 219 |  |  | C     allowFreezing  :: Allows water to freeze and form ice | 
| 220 |  |  | C     groundAtK1  :: put the surface(k=1) at the Lower Boundary (=ground) | 
| 221 |  |  | COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid, | 
| 222 |  |  | & usingCurvilinearGrid, bUseCylindricalGrid, | 
| 223 |  |  | & no_slip_sides, no_slip_bottom, | 
| 224 |  |  | & staggerTimeStep, | 
| 225 |  |  | & momViscosity, momAdvection, momForcing, useCoriolis, | 
| 226 |  |  | & momPressureForcing, vectorInvariantMomentum, | 
| 227 |  |  | & tempDiffusion, tempAdvection, tempForcing, | 
| 228 |  |  | & saltDiffusion, saltAdvection, saltForcing, | 
| 229 |  |  | & useRealFreshWaterFlux, | 
| 230 |  |  | & rigidLid, implicitFreeSurface, exactConserv, uniformLin_PhiSurf, | 
| 231 |  |  | & momStepping, tempStepping, saltStepping, tr1Stepping, | 
| 232 |  |  | & metricTerms, usingSphericalPolarMTerms, useNHMTerms, | 
| 233 |  |  | & useConstantF, useBetaPlaneF, useSphereF, | 
| 234 |  |  | & useEnergyConservingCoriolis, useJamartWetPoints, | 
| 235 |  |  | & implicitDiffusion, implicitViscosity, | 
| 236 |  |  | & multiDimAdvection, forcing_In_AB, | 
| 237 |  |  | & doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax, | 
| 238 |  |  | & periodicExternalForcing, | 
| 239 |  |  | & usingPCoords, usingZCoords, setCenterDr, | 
| 240 |  |  | & nonHydrostatic, quasiHydrostatic, globalFiles, | 
| 241 |  |  | & allowFreezing, groundAtK1, | 
| 242 |  |  | & usePickupBeforeC35, debugMode, | 
| 243 |  |  | & readPickupWithTracer, writePickupWithTracer | 
| 244 |  |  | LOGICAL usingCartesianGrid | 
| 245 |  |  | LOGICAL usingSphericalPolarGrid | 
| 246 |  |  | LOGICAL bUseCylindricalGrid | 
| 247 |  |  | LOGICAL usingCurvilinearGrid | 
| 248 |  |  | LOGICAL usingSphericalPolarMTerms | 
| 249 |  |  | LOGICAL useNHMTerms | 
| 250 |  |  | LOGICAL no_slip_sides | 
| 251 |  |  | LOGICAL no_slip_bottom | 
| 252 |  |  | LOGICAL staggerTimeStep | 
| 253 |  |  | LOGICAL momViscosity | 
| 254 |  |  | LOGICAL momAdvection | 
| 255 |  |  | LOGICAL momForcing | 
| 256 |  |  | LOGICAL momPressureForcing | 
| 257 |  |  | LOGICAL useCoriolis | 
| 258 |  |  | LOGICAL vectorInvariantMomentum | 
| 259 |  |  | LOGICAL tempDiffusion | 
| 260 |  |  | LOGICAL tempAdvection | 
| 261 |  |  | LOGICAL tempForcing | 
| 262 |  |  | LOGICAL saltDiffusion | 
| 263 |  |  | LOGICAL saltAdvection | 
| 264 |  |  | LOGICAL saltForcing | 
| 265 |  |  | LOGICAL useRealFreshWaterFlux | 
| 266 |  |  | LOGICAL rigidLid | 
| 267 |  |  | LOGICAL implicitFreeSurface | 
| 268 |  |  | LOGICAL exactConserv | 
| 269 |  |  | LOGICAL uniformLin_PhiSurf | 
| 270 |  |  | LOGICAL momStepping | 
| 271 |  |  | LOGICAL tempStepping | 
| 272 |  |  | LOGICAL saltStepping | 
| 273 |  |  | LOGICAL tr1Stepping | 
| 274 |  |  | LOGICAL metricTerms | 
| 275 |  |  | LOGICAL useConstantF | 
| 276 |  |  | LOGICAL useBetaPlaneF | 
| 277 |  |  | LOGICAL useSphereF | 
| 278 |  |  | LOGICAL useEnergyConservingCoriolis | 
| 279 |  |  | LOGICAL useJamartWetPoints | 
| 280 |  |  | LOGICAL implicitDiffusion | 
| 281 |  |  | LOGICAL implicitViscosity | 
| 282 |  |  | LOGICAL multiDimAdvection | 
| 283 |  |  | LOGICAL forcing_In_AB | 
| 284 |  |  | LOGICAL doThetaClimRelax | 
| 285 |  |  | LOGICAL doSaltClimRelax | 
| 286 |  |  | LOGICAL doTr1ClimRelax | 
| 287 |  |  | LOGICAL periodicExternalForcing | 
| 288 |  |  | LOGICAL usingPCoords | 
| 289 |  |  | LOGICAL usingZCoords | 
| 290 |  |  | LOGICAL setCenterDr | 
| 291 |  |  | LOGICAL nonHydrostatic | 
| 292 |  |  | LOGICAL quasiHydrostatic | 
| 293 |  |  | LOGICAL globalFiles | 
| 294 |  |  | LOGICAL allowFreezing | 
| 295 |  |  | LOGICAL groundAtK1 | 
| 296 |  |  | LOGICAL usePickupBeforeC35 | 
| 297 |  |  | LOGICAL debugMode | 
| 298 |  |  | LOGICAL readPickupWithTracer | 
| 299 |  |  | LOGICAL writePickupWithTracer | 
| 300 |  |  |  | 
| 301 |  |  | C--   COMMON /PARM_R/ "Real" valued parameters used by the model. | 
| 302 |  |  | C     gg2dTargetResidual | 
| 303 |  |  | C          :: Target residual for cg2d solver; no unit (RHS normalisation) | 
| 304 |  |  | C     cg2dTargetResWunit | 
| 305 |  |  | C          :: Target residual for cg2d solver; W unit (No RHS normalisation) | 
| 306 |  |  | C     cg3dTargetResidual | 
| 307 |  |  | C               :: Target residual for cg3d solver. | 
| 308 |  |  | C     cg2dpcOffDFac :: Averaging weight for preconditioner off-diagonal. | 
| 309 |  |  | C     Note. 20th May 1998 | 
| 310 |  |  | C           I made a weird discovery! In the model paper we argue | 
| 311 |  |  | C           for the form of the preconditioner used here ( see | 
| 312 |  |  | C           A Finite-volume, Incompressible Navier-Stokes Model | 
| 313 |  |  | C           ...., Marshall et. al ). The algebra gives a simple | 
| 314 |  |  | C           0.5 factor for the averaging of ac and aCw to get a | 
| 315 |  |  | C           symmettric pre-conditioner. By using a factor of 0.51 | 
| 316 |  |  | C           i.e. scaling the off-diagonal terms in the | 
| 317 |  |  | C           preconditioner down slightly I managed to get the | 
| 318 |  |  | C           number of iterations for convergence in a test case to | 
| 319 |  |  | C           drop form 192 -> 134! Need to investigate this further! | 
| 320 |  |  | C           For now I have introduced a parameter cg2dpcOffDFac which | 
| 321 |  |  | C           defaults to 0.51 but can be set at runtime. | 
| 322 |  |  | C     delP      :: Vertical grid spacing ( Pa ). | 
| 323 |  |  | C     delZ      :: Vertical grid spacing ( m  ). | 
| 324 |  |  | C     delR      :: Vertical grid spacing ( units of r ). | 
| 325 |  |  | C     delRc     :: Vertical grid spacing between cell centers (r unit). | 
| 326 |  |  | C     delX      :: Separation between cell faces (m) or (deg), depending | 
| 327 |  |  | C     delY        on input flags. | 
| 328 |  |  | C     gravity   :: Accel. due to gravity ( m/s^2 ) | 
| 329 |  |  | C     recip_gravity and its inverse | 
| 330 |  |  | C     gBaro     :: Accel. due to gravity used in barotropic equation ( m/s^2 ) | 
| 331 |  |  | C     rhoNil    :: Reference density for the linear equation of state | 
| 332 |  |  | C     rhoConst  :: Vertically constant reference density | 
| 333 |  |  | C     rhoConstFresh :: Constant reference density for fresh water (rain) | 
| 334 |  |  | C     startTime :: Start time for model ( s ) | 
| 335 |  |  | C     phiMin    :: Latitude of southern most cell face. | 
| 336 |  |  | C     thetaMin  :: Longitude of western most cell face (this | 
| 337 |  |  | C                 is an "inert" parameter but it is included | 
| 338 |  |  | C                 to make geographical references simple.) | 
| 339 |  |  | C     rSphere   :: Radius of sphere for a spherical polar grid ( m ). | 
| 340 |  |  | C     recip_RSphere  :: Reciprocal radius of sphere ( m ). | 
| 341 |  |  | C     f0        :: Reference coriolis parameter ( 1/s ) | 
| 342 |  |  | C                 ( Southern edge f for beta plane ) | 
| 343 |  |  | C     beta      :: df/dy ( s^-1.m^-1 ) | 
| 344 |  |  | C     omega     :: Angular velocity ( rad/s ) | 
| 345 |  |  | C     viscAh    :: Eddy viscosity coeff. for mixing of | 
| 346 |  |  | C                 momentum laterally ( m^2/s ) | 
| 347 |  |  | C     viscAz    :: Eddy viscosity coeff. for mixing of | 
| 348 |  |  | C                 momentum vertically ( m^2/s ) | 
| 349 |  |  | C     viscAp    :: Eddy viscosity coeff. for mixing of | 
| 350 |  |  | C                 momentum vertically ( Pa^2/s ) | 
| 351 |  |  | C     viscAr    :: Eddy viscosity coeff. for mixing of | 
| 352 |  |  | C                 momentum vertically ( units of r^2/s ) | 
| 353 |  |  | C     viscA4    :: Biharmonic viscosity coeff. for mixing of | 
| 354 |  |  | C                 momentum laterally ( m^4/s ) | 
| 355 |  |  | C     diffKhT   :: Laplacian diffusion coeff. for mixing of | 
| 356 |  |  | C                 heat laterally ( m^2/s ) | 
| 357 |  |  | C     diffKzT   :: Laplacian diffusion coeff. for mixing of | 
| 358 |  |  | C                 heat vertically ( m^2/s ) | 
| 359 |  |  | C     diffKpT   :: Laplacian diffusion coeff. for mixing of | 
| 360 |  |  | C                 heat vertically ( Pa^2/s ) | 
| 361 |  |  | C     diffKrT   :: Laplacian diffusion coeff. for mixing of | 
| 362 |  |  | C                 heat vertically ( units of r^2/s ) | 
| 363 |  |  | C     diffK4T   :: Biharmonic diffusion coeff. for mixing of | 
| 364 |  |  | C                 heat laterally ( m^4/s ) | 
| 365 |  |  | C     diffKhS  ::  Laplacian diffusion coeff. for mixing of | 
| 366 |  |  | C                 salt laterally ( m^2/s ) | 
| 367 |  |  | C     diffKzS   :: Laplacian diffusion coeff. for mixing of | 
| 368 |  |  | C                 salt vertically ( m^2/s ) | 
| 369 |  |  | C     diffKpS   :: Laplacian diffusion coeff. for mixing of | 
| 370 |  |  | C                 salt vertically ( Pa^2/s ) | 
| 371 |  |  | C     diffKrS   :: Laplacian diffusion coeff. for mixing of | 
| 372 |  |  | C                 salt vertically ( units of r^2/s ) | 
| 373 |  |  | C     diffK4S   :: Biharmonic diffusion coeff. for mixing of | 
| 374 |  |  | C                 salt laterally ( m^4/s ) | 
| 375 |  |  | C     deltaT    :: Default timestep ( s ) | 
| 376 |  |  | C     deltaTClock  :: Timestep used as model "clock". This determines the | 
| 377 |  |  | C                    IO frequencies and is used in tagging output. It can | 
| 378 |  |  | C                    be totally different to the dynamical time. Typically | 
| 379 |  |  | C                    it will be the deep-water timestep for accelerated runs. | 
| 380 |  |  | C                    Frequency of checkpointing and dumping of the model state | 
| 381 |  |  | C                    are referenced to this clock. ( s ) | 
| 382 |  |  | C     deltaTMom    :: Timestep for momemtum equations ( s ) | 
| 383 |  |  | C     deltaTtracer :: Timestep for tracer equations ( s ) | 
| 384 |  |  | C     deltaTfreesurf :: Timestep for free-surface equation ( s ) | 
| 385 |  |  | C     freesurfFac  :: Parameter to turn implicit free surface term on or off | 
| 386 |  |  | C                    freesurfac = 1. uses implicit free surface | 
| 387 |  |  | C                    freesurfac = 0. uses rigid lid | 
| 388 |  |  | C     implicSurfPress :: parameter of the Crank-Nickelson time stepping : | 
| 389 |  |  | C                     Implicit part of Surface Pressure Gradient ( 0-1 ) | 
| 390 |  |  | C     implicDiv2Dflow :: parameter of the Crank-Nickelson time stepping : | 
| 391 |  |  | C                     Implicit part of barotropic flow Divergence ( 0-1 ) | 
| 392 |  |  | C     hFacMin      :: Minimum fraction size of a cell (affects hFacC etc...) | 
| 393 |  |  | C     hFacMinDz    :: Minimum dimesional size of a cell (affects hFacC etc..., m) | 
| 394 |  |  | C     hFacMinDp    :: Minimum dimesional size of a cell (affects hFacC etc..., Pa) | 
| 395 |  |  | C     hFacMinDr    :: Minimum dimesional size of a cell (affects hFacC etc..., units of r) | 
| 396 |  |  | C     hFacInf      :: Threshold (inf and sup) for fraction size of surface cell | 
| 397 |  |  | C     hFacSup        that control vanishing and creating levels | 
| 398 |  |  | C     tauCD        :: CD scheme coupling timescale ( 1/s ) | 
| 399 |  |  | C     rCD          :: CD scheme normalised coupling parameter ( 0-1 ) | 
| 400 |  |  | C     startTime     :: Starting time for this integration ( s ). | 
| 401 |  |  | C     endTime       :: Ending time for this integration ( s ). | 
| 402 |  |  | C     chkPtFreq     :: Frequency of rolling check pointing ( s ). | 
| 403 |  |  | C     pChkPtFreq    :: Frequency of permanent check pointing ( s ). | 
| 404 |  |  | C     dumpFreq      :: Frequency with which model state is written to | 
| 405 |  |  | C                     post-processing files ( s ). | 
| 406 |  |  | C     diagFreq      :: Frequency with which model writes diagnostic output | 
| 407 |  |  | C                     of intermediate quantities. | 
| 408 |  |  | C     afFacMom      :: Advection of momentum term tracer parameter | 
| 409 |  |  | C     vfFacMom      :: Momentum viscosity tracer parameter | 
| 410 |  |  | C     pfFacMom      :: Momentum pressure forcing tracer parameter | 
| 411 |  |  | C     cfFacMom      :: Coriolis term tracer parameter | 
| 412 |  |  | C     foFacMom      :: Momentum forcing tracer parameter | 
| 413 |  |  | C     mtFacMom      :: Metric terms tracer parameter | 
| 414 |  |  | C     cosPower      :: Power of cosine of latitude to multiply viscosity | 
| 415 |  |  | C     cAdjFreq      :: Frequency of convective adjustment | 
| 416 |  |  | C | 
| 417 |  |  | C     taveFreq      :: Frequency with which time-averaged model state | 
| 418 |  |  | C                      is written to post-processing files ( s ). | 
| 419 |  |  | C     tave_lastIter :: (for state variable only) fraction of the last time | 
| 420 |  |  | C                      step (of each taveFreq period) put in the time average. | 
| 421 |  |  | C                      (fraction for 1rst iter = 1 - tave_lastIter) | 
| 422 |  |  | C     tauThetaClimRelax :: Relaxation to climatology time scale ( s ). | 
| 423 |  |  | C     lambdaThetaClimRelax :: Inverse time scale for relaxation ( 1/s ). | 
| 424 |  |  | C     tauSaltClimRelax :: Relaxation to climatology time scale ( s ). | 
| 425 |  |  | C     lambdaSaltClimRelax :: Inverse time scale for relaxation ( 1/s ). | 
| 426 |  |  | C     externForcingPeriod :: Is the period of which forcing varies (eg. 1 month) | 
| 427 |  |  | C     externForcingCycle :: Is the repeat time of the forcing (eg. 1 year) | 
| 428 |  |  | C                          (note: externForcingCycle must be an integer | 
| 429 |  |  | C                           number times externForcingPeriod) | 
| 430 |  |  | C     convertFW2Salt :: salinity, used to convert Fresh-Water Flux to Salt Flux | 
| 431 |  |  | C                       (use model surface (local) value if set to -1) | 
| 432 |  |  | C     temp_EvPrRn :: temperature of Rain & Evap. | 
| 433 |  |  | C     salt_EvPrRn :: salinity of Rain & Evap. | 
| 434 |  |  | C     trac_EvPrRn :: tracer concentration in Rain & Evap. | 
| 435 |  |  | C        (notes: a) tracer content of Rain/Evap only used if both | 
| 436 |  |  | C                     NonLin_FrSurf & useRealFreshWater are set. | 
| 437 |  |  | C                b) use model surface (local) value if set to UNSET_RL) | 
| 438 |  |  | C     horiVertRatio      :: Ratio on units in vertical to units in horizontal. | 
| 439 |  |  | C     recip_horiVertRatio  ( 1 if horiz in m and vertical in m ). | 
| 440 |  |  | C                          ( g*rho if horiz in m and vertical in Pa ). | 
| 441 |  |  | C     Ro_SeaLevel        :: standard position of Sea-Level in "R" coordinate, used as | 
| 442 |  |  | C                          starting value (k=1) for vertical coordinate (rf(1)=Ro_SeaLevel) | 
| 443 |  |  | C     bottomDragLinear   :: Drag coefficient built in to core dynamics | 
| 444 |  |  | C      --"-"--  Quadratic  ( linear: 1/s, quadratic: 1/m ) | 
| 445 |  |  | COMMON /PARM_R/ cg2dTargetResidual, cg2dTargetResWunit, | 
| 446 |  |  | & cg2dpcOffDFac, cg3dTargetResidual, | 
| 447 |  |  | & delP, delZ, delR, delRc, delX, delY, | 
| 448 |  |  | & deltaT, deltaTmom, deltaTtracer, deltaTfreesurf, deltaTClock, | 
| 449 |  |  | & abeps, startTime, | 
| 450 |  |  | & phiMin, thetaMin, rSphere, recip_RSphere, f0, beta, | 
| 451 |  |  | & fCori, fCoriG, fCoriCos, | 
| 452 |  |  | & viscAh,  viscAz,  viscA4,  viscAr, viscAstrain, viscAtension, | 
| 453 |  |  | & diffKhT, diffKzT, diffK4T, diffKrT, | 
| 454 |  |  | & diffKhS, diffKzS, diffK4S, diffKrS, | 
| 455 |  |  | & delT, tauCD, rCD, freeSurfFac, implicSurfPress, implicDiv2Dflow, | 
| 456 |  |  | & hFacMin, hFacMinDz, hFacInf, hFacSup, | 
| 457 |  |  | & gravity, recip_Gravity, gBaro, rhonil, recip_rhonil, | 
| 458 |  |  | & recip_rhoConst, rhoConst, | 
| 459 |  |  | & rhoConstFresh, convertEmP2rUnit, tRef, sRef, | 
| 460 |  |  | & endTime, chkPtFreq, pchkPtFreq, dumpFreq, | 
| 461 |  |  | & diagFreq, taveFreq, tave_lastIter, monitorFreq, | 
| 462 |  |  | & afFacMom, vfFacMom, pfFacMom, cfFacMom, foFacMom, mtFacMom, | 
| 463 |  |  | & cosPower, cAdjFreq, omega, | 
| 464 |  |  | & tauThetaClimRelax, lambdaThetaClimRelax, | 
| 465 |  |  | & tauSaltClimRelax, lambdaSaltClimRelax, | 
| 466 |  |  | & tauTr1ClimRelax, lambdaTr1ClimRelax, | 
| 467 |  |  | & externForcingCycle, externForcingPeriod, | 
| 468 |  |  | & convertFW2Salt, temp_EvPrRn, salt_EvPrRn, trac_EvPrRn, | 
| 469 |  |  | & viscAp, diffKpT, diffKpS, hFacMinDr, hFacMinDp, | 
| 470 |  |  | & horiVertRatio, recip_horiVertRatio, | 
| 471 |  |  | & ivdc_kappa, Ro_SeaLevel, | 
| 472 |  |  | & bottomDragLinear,bottomDragQuadratic | 
| 473 |  |  |  | 
| 474 |  |  | _RL cg2dTargetResidual | 
| 475 |  |  | _RL cg2dTargetResWunit | 
| 476 |  |  | _RL cg3dTargetResidual | 
| 477 |  |  | _RL cg2dpcOffDFac | 
| 478 |  |  | _RL delZ(Nr) | 
| 479 |  |  | _RL delP(Nr) | 
| 480 |  |  | _RL delR(Nr) | 
| 481 |  |  | _RL delRc(Nr+1) | 
| 482 |  |  | _RL delX(Nx) | 
| 483 |  |  | _RL delY(Ny) | 
| 484 |  |  | _RL deltaT | 
| 485 |  |  | _RL deltaTClock | 
| 486 |  |  | _RL deltaTmom | 
| 487 |  |  | _RL deltaTtracer | 
| 488 |  |  | _RL deltaTfreesurf | 
| 489 |  |  | _RL abeps | 
| 490 |  |  | _RL phiMin | 
| 491 |  |  | _RL thetaMin | 
| 492 |  |  | _RL rSphere | 
| 493 |  |  | _RL recip_RSphere | 
| 494 |  |  | _RL f0 | 
| 495 |  |  | _RL freeSurfFac | 
| 496 |  |  | _RL implicSurfPress | 
| 497 |  |  | _RL implicDiv2Dflow | 
| 498 |  |  | _RL hFacMin | 
| 499 |  |  | _RL hFacMinDz | 
| 500 |  |  | _RL hFacMinDp | 
| 501 |  |  | _RL hFacMinDr | 
| 502 |  |  | _RL hFacInf | 
| 503 |  |  | _RL hFacSup | 
| 504 |  |  | _RL beta | 
| 505 |  |  | _RL viscAh | 
| 506 |  |  | _RL viscAstrain | 
| 507 |  |  | _RL viscAtension | 
| 508 |  |  | _RL viscAz | 
| 509 |  |  | _RL viscAp | 
| 510 |  |  | _RL viscAr | 
| 511 |  |  | _RL viscA4 | 
| 512 |  |  | _RL diffKhT | 
| 513 |  |  | _RL diffKrT | 
| 514 |  |  | _RL diffKzT | 
| 515 |  |  | _RL diffKpT | 
| 516 |  |  | _RL diffK4T | 
| 517 |  |  | _RL diffKhS | 
| 518 |  |  | _RL diffKrS | 
| 519 |  |  | _RL diffKzS | 
| 520 |  |  | _RL diffKpS | 
| 521 |  |  | _RL diffK4S | 
| 522 |  |  | _RL delt | 
| 523 |  |  | _RL tauCD | 
| 524 |  |  | _RL rCD | 
| 525 |  |  | _RL gravity | 
| 526 |  |  | _RL recip_gravity | 
| 527 |  |  | _RL gBaro | 
| 528 |  |  | _RL rhonil | 
| 529 |  |  | _RL recip_rhonil | 
| 530 |  |  | _RL rhoConst | 
| 531 |  |  | _RL recip_rhoConst | 
| 532 |  |  | _RL rhoConstFresh | 
| 533 |  |  | _RL convertEmP2rUnit | 
| 534 |  |  | _RL tRef(Nr) | 
| 535 |  |  | _RL sRef(Nr) | 
| 536 |  |  | _RS fCori(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 537 |  |  | _RS fCoriG(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 538 |  |  | _RS fCoriCos(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) | 
| 539 |  |  | _RL startTime | 
| 540 |  |  | _RL endTime | 
| 541 |  |  | _RL chkPtFreq | 
| 542 |  |  | _RL pChkPtFreq | 
| 543 |  |  | _RL dumpFreq | 
| 544 |  |  | _RL diagFreq | 
| 545 |  |  | _RL taveFreq | 
| 546 |  |  | _RL tave_lastIter | 
| 547 |  |  | _RL monitorFreq | 
| 548 |  |  | _RL afFacMom | 
| 549 |  |  | _RL vfFacMom | 
| 550 |  |  | _RL pfFacMom | 
| 551 |  |  | _RL cfFacMom | 
| 552 |  |  | _RL foFacMom | 
| 553 |  |  | _RL mTFacMom | 
| 554 |  |  | _RL cosPower | 
| 555 |  |  | _RL cAdjFreq | 
| 556 |  |  | _RL omega | 
| 557 |  |  | _RL tauThetaClimRelax | 
| 558 |  |  | _RL lambdaThetaClimRelax | 
| 559 |  |  | _RL tauSaltClimRelax | 
| 560 |  |  | _RL lambdaSaltClimRelax | 
| 561 |  |  | _RL tauTr1ClimRelax | 
| 562 |  |  | _RL lambdaTr1ClimRelax | 
| 563 |  |  | _RL externForcingCycle | 
| 564 |  |  | _RL externForcingPeriod | 
| 565 |  |  | _RL convertFW2Salt | 
| 566 |  |  | _RL temp_EvPrRn | 
| 567 |  |  | _RL salt_EvPrRn | 
| 568 |  |  | _RL trac_EvPrRn | 
| 569 |  |  | _RL horiVertRatio | 
| 570 |  |  | _RL recip_horiVertRatio | 
| 571 |  |  | _RL ivdc_kappa | 
| 572 |  |  | _RL Ro_SeaLevel | 
| 573 |  |  | _RL bottomDragLinear | 
| 574 |  |  | _RL bottomDragQuadratic | 
| 575 |  |  |  | 
| 576 |  |  | COMMON /PARM_A/ HeatCapacity_Cp,recip_Cp, | 
| 577 |  |  | &                Lamba_theta | 
| 578 |  |  | _RL HeatCapacity_Cp | 
| 579 |  |  | _RL Lamba_theta | 
| 580 |  |  | _RL recip_Cp | 
| 581 |  |  |  | 
| 582 |  |  | CmlC Equation of State (polynomial coeffients) | 
| 583 |  |  | Cml      COMMON /PARM_EOS_NL/ eosC,eosSig0,eosRefT,eosRefS | 
| 584 |  |  | Cml      _RL eosC(9,Nr+1),eosSig0(Nr+1),eosRefT(Nr+1),eosRefS(Nr+1) | 
| 585 |  |  | CmlC Linear equation of state | 
| 586 |  |  | CmlC     tAlpha    :: Linear EOS thermal expansion coefficient ( 1/degree ). | 
| 587 |  |  | CmlC     sBeta     :: Linear EOS haline contraction coefficient. | 
| 588 |  |  | Cml      COMMON /PARM_EOS_LIN/ tAlpha,sBeta,eosType | 
| 589 |  |  | Cml      _RL tAlpha | 
| 590 |  |  | Cml      _RL sBeta | 
| 591 |  |  |  | 
| 592 |  |  | C Atmospheric physical parameters (Ideal Gas EOS, ...) | 
| 593 |  |  | C     atm_Po    :: standard reference pressure | 
| 594 |  |  | C     atm_Cp    :: specific heat (Cp) of the (dry) air at constant pressure | 
| 595 |  |  | C     atm_Rd    :: gas constant for dry air | 
| 596 |  |  | C     atm_kappa :: kappa = R/Cp (R: constant of Ideal Gas EOS) | 
| 597 |  |  | C     integr_GeoPot :: option to select the way we integrate the geopotential | 
| 598 |  |  | C                     (still a subject of discussions ...) | 
| 599 |  |  | C     selectFindRoSurf :: select the way surf. ref. pressure (=Ro_surf) is | 
| 600 |  |  | C             derived from the orography. Implemented: 0,1 (see INI_P_GROUND) | 
| 601 |  |  | COMMON /PARM_ATM/ atm_Cp, atm_Rd, atm_kappa, atm_Po, | 
| 602 |  |  | &                  integr_GeoPot, selectFindRoSurf | 
| 603 |  |  | _RL atm_Po, atm_Cp, atm_Rd, atm_kappa | 
| 604 |  |  | INTEGER integr_GeoPot, selectFindRoSurf | 
| 605 |  |  |  | 
| 606 |  |  | C Logical flags for selecting packages | 
| 607 |  |  | LOGICAL useKPP | 
| 608 |  |  | LOGICAL useGMRedi | 
| 609 |  |  | LOGICAL useOBCS | 
| 610 |  |  | LOGICAL useAIM | 
| 611 |  |  | LOGICAL useGrdchk | 
| 612 |  |  | LOGICAL useECCO | 
| 613 |  |  | LOGICAL useSHAP_FILT | 
| 614 |  |  | LOGICAL useZONAL_FILT | 
| 615 |  |  | LOGICAL useFLT | 
| 616 |  |  | LOGICAL usePTRACERS | 
| 617 |  |  | LOGICAL useSEAICE | 
| 618 |  |  | cswdblk -- add --- | 
| 619 |  |  | LOGICAL useBulkforce | 
| 620 |  |  | LOGICAL useThermSEAICE | 
| 621 |  |  | cswdblk --- end add --- | 
| 622 |  |  | COMMON /PARM_PACKAGES/ | 
| 623 |  |  | &        useKPP, useGMRedi, useOBCS, useAIM, useECCO, | 
| 624 |  |  | &        useSHAP_FILT, useZONAL_FILT, useGrdchk, useFLT, | 
| 625 |  |  | &        usePTRACERS, useSEAICE, | 
| 626 |  |  | cswdblk -- add --- | 
| 627 |  |  | &        useThermSEAICE, useBulkforce | 
| 628 |  |  | cswdblk --- end add --- |