--- MITgcm/model/inc/PARAMS.h 1998/04/26 23:41:54 1.3 +++ MITgcm/model/inc/PARAMS.h 2017/04/04 23:19:33 1.286 @@ -1,18 +1,20 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.3 1998/04/26 23:41:54 cnh Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.286 2017/04/04 23:19:33 jmc Exp $ +C $Name: $ C -C /==========================================================\ -C | PARAMS.h | -C | o Header file defining model "parameters". | -C |==========================================================| -C | The values from the model's standard input file are | -C | stored into the variables held here. Notes describing | -C | the parameters can also be found here. | -C \==========================================================/ + +CBOP +C !ROUTINE: PARAMS.h +C !INTERFACE: +C #include PARAMS.h + +C !DESCRIPTION: +C Header file defining model "parameters". The values from the +C model standard input file are stored into the variables held +C here. Notes describing the parameters can also be found here. + +CEOP C-- Contants -C nOBands - No. of offline data time bands - INTEGER nOBands - PARAMETER ( nOBands = 12 ) C Useful physical values Real*8 PI PARAMETER ( PI = 3.14159265358979323844D0 ) @@ -20,157 +22,1031 @@ PARAMETER ( deg2rad = 2.D0*PI/360.D0 ) C-- COMMON /PARM_C/ Character valued parameters used by the model. -C oBandId - Offline dataset identifiers for different periods. - COMMON /PARM_C/ oBandId - CHARACTER*3 oBandId(nOBands) +C buoyancyRelation :: Flag used to indicate which relation to use to +C get buoyancy. +C eosType :: choose the equation of state: +C LINEAR, POLY3, UNESCO, JMD95Z, JMD95P, MDJWF, IDEALGAS +C pickupSuff :: force to start from pickup files (even if nIter0=0) +C and read pickup files with this suffix (max 10 Char.) +C mdsioLocalDir :: read-write tiled file from/to this directory name +C (+ 4 digits Processor-Rank) instead of current dir. +C adTapeDir :: read-write checkpointing tape files from/to this +C directory name instead of current dir. Conflicts +C mdsioLocalDir, so only one of the two can be set. +C tRefFile :: File containing reference Potential Temperat. tRef (1.D) +C sRefFile :: File containing reference salinity/spec.humid. sRef (1.D) +C rhoRefFile :: File containing reference density profile rhoRef (1.D) +C gravityFile :: File containing gravity vertical profile (1.D) +C delRFile :: File containing vertical grid spacing delR (1.D array) +C delRcFile :: File containing vertical grid spacing delRc (1.D array) +C hybSigmFile :: File containing hybrid-sigma vertical coord. coeff. (2x 1.D) +C delXFile :: File containing X-spacing grid definition (1.D array) +C delYFile :: File containing Y-spacing grid definition (1.D array) +C horizGridFile :: File containing horizontal-grid definition +C (only when using curvilinear_grid) +C bathyFile :: File containing bathymetry. If not defined bathymetry +C is taken from inline function. +C topoFile :: File containing the topography of the surface (unit=m) +C (mainly used for the atmosphere = ground height). +C addWwallFile :: File containing 2-D additional Western cell-edge wall +C addSwallFile :: File containing 2-D additional Southern cell-edge wall +C (e.g., to add "thin-wall" where it is =1) +C hydrogThetaFile :: File containing initial hydrographic data (3-D) +C for potential temperature. +C hydrogSaltFile :: File containing initial hydrographic data (3-D) +C for salinity. +C diffKrFile :: File containing 3D specification of vertical diffusivity +C viscAhDfile :: File containing 3D specification of horizontal viscosity +C viscAhZfile :: File containing 3D specification of horizontal viscosity +C viscA4Dfile :: File containing 3D specification of horizontal viscosity +C viscA4Zfile :: File containing 3D specification of horizontal viscosity +C zonalWindFile :: File containing zonal wind data +C meridWindFile :: File containing meridional wind data +C thetaClimFile :: File containing surface theta climataology used +C in relaxation term -lambda(theta-theta*) +C saltClimFile :: File containing surface salt climataology used +C in relaxation term -lambda(salt-salt*) +C surfQfile :: File containing surface heat flux, excluding SW +C (old version, kept for backward compatibility) +C surfQnetFile :: File containing surface net heat flux +C surfQswFile :: File containing surface shortwave radiation +C EmPmRfile :: File containing surface fresh water flux +C NOTE: for backward compatibility EmPmRfile is specified in +C m/s when using external_fields_load.F. It is converted +C to kg/m2/s by multiplying by rhoConstFresh. +C saltFluxFile :: File containing surface salt flux +C pLoadFile :: File containing pressure loading +C addMassFile :: File containing source/sink of fluid in the interior +C eddyPsiXFile :: File containing zonal Eddy streamfunction data +C eddyPsiYFile :: File containing meridional Eddy streamfunction data +C the_run_name :: string identifying the name of the model "run" + COMMON /PARM_C/ + & buoyancyRelation, eosType, + & pickupSuff, mdsioLocalDir, adTapeDir, + & tRefFile, sRefFile, rhoRefFile, gravityFile, + & delRFile, delRcFile, hybSigmFile, + & delXFile, delYFile, horizGridFile, + & bathyFile, topoFile, addWwallFile, addSwallFile, + & viscAhDfile, viscAhZfile, + & viscA4Dfile, viscA4Zfile, + & hydrogThetaFile, hydrogSaltFile, diffKrFile, + & zonalWindFile, meridWindFile, thetaClimFile, + & saltClimFile, + & EmPmRfile, saltFluxFile, + & surfQfile, surfQnetFile, surfQswFile, + & lambdaThetaFile, lambdaSaltFile, + & uVelInitFile, vVelInitFile, pSurfInitFile, + & pLoadFile, addMassFile, + & eddyPsiXFile, eddyPsiYFile, geothermalFile, + & the_run_name + CHARACTER*(MAX_LEN_FNAM) buoyancyRelation + CHARACTER*(6) eosType + CHARACTER*(10) pickupSuff + CHARACTER*(MAX_LEN_FNAM) mdsioLocalDir + CHARACTER*(MAX_LEN_FNAM) adTapeDir + CHARACTER*(MAX_LEN_FNAM) tRefFile + CHARACTER*(MAX_LEN_FNAM) sRefFile + CHARACTER*(MAX_LEN_FNAM) rhoRefFile + CHARACTER*(MAX_LEN_FNAM) gravityFile + CHARACTER*(MAX_LEN_FNAM) delRFile + CHARACTER*(MAX_LEN_FNAM) delRcFile + CHARACTER*(MAX_LEN_FNAM) hybSigmFile + CHARACTER*(MAX_LEN_FNAM) delXFile + CHARACTER*(MAX_LEN_FNAM) delYFile + CHARACTER*(MAX_LEN_FNAM) horizGridFile + CHARACTER*(MAX_LEN_FNAM) bathyFile, topoFile + CHARACTER*(MAX_LEN_FNAM) addWwallFile, addSwallFile + CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile, hydrogSaltFile + CHARACTER*(MAX_LEN_FNAM) diffKrFile + CHARACTER*(MAX_LEN_FNAM) viscAhDfile + CHARACTER*(MAX_LEN_FNAM) viscAhZfile + CHARACTER*(MAX_LEN_FNAM) viscA4Dfile + CHARACTER*(MAX_LEN_FNAM) viscA4Zfile + CHARACTER*(MAX_LEN_FNAM) zonalWindFile + CHARACTER*(MAX_LEN_FNAM) meridWindFile + CHARACTER*(MAX_LEN_FNAM) thetaClimFile + CHARACTER*(MAX_LEN_FNAM) saltClimFile + CHARACTER*(MAX_LEN_FNAM) surfQfile + CHARACTER*(MAX_LEN_FNAM) surfQnetFile + CHARACTER*(MAX_LEN_FNAM) surfQswFile + CHARACTER*(MAX_LEN_FNAM) EmPmRfile + CHARACTER*(MAX_LEN_FNAM) saltFluxFile + CHARACTER*(MAX_LEN_FNAM) uVelInitFile + CHARACTER*(MAX_LEN_FNAM) vVelInitFile + CHARACTER*(MAX_LEN_FNAM) pSurfInitFile + CHARACTER*(MAX_LEN_FNAM) pLoadFile + CHARACTER*(MAX_LEN_FNAM) addMassFile + CHARACTER*(MAX_LEN_FNAM) eddyPsiXFile + CHARACTER*(MAX_LEN_FNAM) eddyPsiYFile + CHARACTER*(MAX_LEN_FNAM) geothermalFile + CHARACTER*(MAX_LEN_FNAM) lambdaThetaFile + CHARACTER*(MAX_LEN_FNAM) lambdaSaltFile + CHARACTER*(MAX_LEN_PREC/2) the_run_name + C-- COMMON /PARM_I/ Integer valued parameters used by the model. -C cg2dMaxIters - Maximum number of iterations in the -C two-dimensional con. grad solver. -C cg2dChkResFreq - Frequency with which to check residual -C in con. grad solver. -C nIter0 - Start time-step number of for this run -C nTimeSteps - Number of timesteps to execute -C numStepsPerPickup - For offline setup. Frequency of pickup -C of flow fields. +C cg2dMaxIters :: Maximum number of iterations in the +C two-dimensional con. grad solver. +C cg2dChkResFreq :: Frequency with which to check residual +C in con. grad solver. +C cg2dPreCondFreq :: Frequency for updating cg2d preconditioner +C (non-linear free-surf.) +C cg2dUseMinResSol :: =0 : use last-iteration/converged solution +C =1 : use solver minimum-residual solution +C cg3dMaxIters :: Maximum number of iterations in the +C three-dimensional con. grad solver. +C cg3dChkResFreq :: Frequency with which to check residual +C in con. grad solver. +C printResidualFreq :: Frequency for printing residual in CG iterations +C nIter0 :: Start time-step number of for this run +C nTimeSteps :: Number of timesteps to execute +C nTimeSteps_l2 :: Number of inner timesteps to execute per timestep +C selectCoriMap :: select setting of Coriolis parameter map: +C =0 f-Plane (Constant Coriolis, = f0) +C =1 Beta-Plane Coriolis (= f0 + beta.y) +C =2 Spherical Coriolis (= 2.omega.sin(phi)) +C =3 Read Coriolis 2-d fields from files. +C selectSigmaCoord :: option related to sigma vertical coordinate +C nonlinFreeSurf :: option related to non-linear free surface +C =0 Linear free surface ; >0 Non-linear +C select_rStar :: option related to r* vertical coordinate +C =0 (default) use r coord. ; > 0 use r* +C selectNHfreeSurf :: option for Non-Hydrostatic (free-)Surface formulation: +C =0 (default) hydrostatic surf. ; > 0 add NH effects. +C selectP_inEOS_Zc :: select which pressure to use in EOS (for z-coords) +C =0: simply: -g*rhoConst*z +C =1: use pRef = integral{-g*rho(Tref,Sref,pRef)*dz} +C =2: use hydrostatic dynamical pressure +C =3: use full (Hyd+NH) dynamical pressure +C selectAddFluid :: option to add mass source/sink of fluid in the interior +C (3-D generalisation of oceanic real-fresh water flux) +C =0 off ; =1 add fluid ; =-1 virtual flux (no mass added) +C selectImplicitDrag :: select Implicit treatment of bottom/top drag +C = 0: fully explicit +C = 1: implicit on provisional velocity +C (i.e., before grad.Eta increment) +C = 2: fully implicit (combined with Impl Surf.Press) +C momForcingOutAB :: =1: take momentum forcing contribution +C out of (=0: in) Adams-Bashforth time stepping. +C tracForcingOutAB :: =1: take tracer (Temp,Salt,pTracers) forcing contribution +C out of (=0: in) Adams-Bashforth time stepping. +C tempAdvScheme :: Temp. Horiz.Advection scheme selector +C tempVertAdvScheme :: Temp. Vert. Advection scheme selector +C saltAdvScheme :: Salt. Horiz.advection scheme selector +C saltVertAdvScheme :: Salt. Vert. Advection scheme selector +C selectKEscheme :: Kinetic Energy scheme selector (Vector Inv.) +C selectVortScheme :: Scheme selector for Vorticity term (Vector Inv.) +C selectBotDragQuadr :: quadratic bottom drag discretisation option: +C =0: average KE from grid center to U & V location +C =1: use local velocity norm @ U & V location +C =2: same with wet-point averaging of other component +C readBinaryPrec :: Precision used for reading binary files +C writeStatePrec :: Precision used for writing model state. +C writeBinaryPrec :: Precision used for writing binary files +C rwSuffixType :: controls the format of the mds file suffix. +C =0 (default): use iteration number (myIter, I10.10); +C =1: 100*myTime (100th sec); =2: myTime (seconds); +C =3: myTime/360 (10th of hr); =4: myTime/3600 (hours). +C monitorSelect :: select group of variables to monitor +C =1 : dynvars ; =2 : + vort ; =3 : + surface +C- debugLevel :: controls printing of algorithm intermediate results +C and statistics ; higher -> more writing +C- plotLevel :: controls printing of field maps ; higher -> more flds + COMMON /PARM_I/ - & cg2dMaxIters, - & cg2dChkResFreq, - & nIter0, nTimeSteps, - & numStepsPerPickup + & cg2dMaxIters, cg2dChkResFreq, + & cg2dPreCondFreq, cg2dUseMinResSol, + & cg3dMaxIters, cg3dChkResFreq, + & printResidualFreq, + & nIter0, nTimeSteps, nTimeSteps_l2, nEndIter, + & selectCoriMap, + & selectSigmaCoord, + & nonlinFreeSurf, select_rStar, + & selectNHfreeSurf, selectP_inEOS_Zc, + & selectAddFluid, selectImplicitDrag, + & momForcingOutAB, tracForcingOutAB, + & tempAdvScheme, tempVertAdvScheme, + & saltAdvScheme, saltVertAdvScheme, + & selectKEscheme, selectVortScheme, + & selectBotDragQuadr, + & readBinaryPrec, writeBinaryPrec, writeStatePrec, + & rwSuffixType, monitorSelect, debugLevel, plotLevel INTEGER cg2dMaxIters INTEGER cg2dChkResFreq + INTEGER cg2dPreCondFreq + INTEGER cg2dUseMinResSol + INTEGER cg3dMaxIters + INTEGER cg3dChkResFreq + INTEGER printResidualFreq INTEGER nIter0 INTEGER nTimeSteps - INTEGER numStepsPerPickup + INTEGER nTimeSteps_l2 + INTEGER nEndIter + INTEGER selectCoriMap + INTEGER selectSigmaCoord + INTEGER nonlinFreeSurf + INTEGER select_rStar + INTEGER selectNHfreeSurf + INTEGER selectP_inEOS_Zc + INTEGER selectAddFluid + INTEGER selectImplicitDrag + INTEGER momForcingOutAB, tracForcingOutAB + INTEGER tempAdvScheme, tempVertAdvScheme + INTEGER saltAdvScheme, saltVertAdvScheme + INTEGER selectKEscheme + INTEGER selectVortScheme + INTEGER selectBotDragQuadr + INTEGER readBinaryPrec + INTEGER writeStatePrec + INTEGER writeBinaryPrec + INTEGER rwSuffixType + INTEGER monitorSelect + INTEGER debugLevel + INTEGER plotLevel C-- COMMON /PARM_L/ Logical valued parameters used by the model. -C usingCartesianGrid - If TRUE grid generation will be in a cartesian -C coordinate frame. -C usingSphericalPolarGrid - If TRUE grid generation will be in a -C spherical polar frame. -C momViscosity - Flag which turns momentum friction terms on and off. -C momAdvection - Flag which turns advection of momentum on and off. -C momForcing - Flag which turns external forcing of momentum on -C and off. -C useCoriolis - Flag which turns the coriolis terms on and off. -C tempDiffusion - Flag which turns diffusion of temperature on -C and off. -C tempAdvection - Flag which turns advection of temperature on -C and off. -C tempForcing - Flag which turns external forcing of temperature on -C and off. -C saltDiffusion - Flag which turns diffusion of salinit on -C and off. -C saltAdvection - Flag which turns advection of salinit on -C and off. -C saltForcing - Flag which turns external forcing of salinit on -C and off. - COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid, - & momViscosity, momAdvection, momForcing, useCoriolis, - & tempDiffusion, tempAdvection, tempForcing, - & saltDiffusion, saltAdvection, saltForcing +C- Coordinate + Grid params: +C fluidIsAir :: Set to indicate that the fluid major constituent +C is air +C fluidIsWater :: Set to indicate that the fluid major constituent +C is water +C usingPCoords :: Set to indicate that we are working in a pressure +C type coordinate (p or p*). +C usingZCoords :: Set to indicate that we are working in a height +C type coordinate (z or z*) +C usingCartesianGrid :: If TRUE grid generation will be in a cartesian +C coordinate frame. +C usingSphericalPolarGrid :: If TRUE grid generation will be in a +C spherical polar frame. +C rotateGrid :: rotate grid coordinates to geographical coordinates +C according to Euler angles phiEuler, thetaEuler, psiEuler +C usingCylindricalGrid :: If TRUE grid generation will be Cylindrical +C usingCurvilinearGrid :: If TRUE, use a curvilinear grid (to be provided) +C hasWetCSCorners :: domain contains CS-type corners where dynamics is solved +C deepAtmosphere :: deep model (drop the shallow-atmosphere approximation) +C setInterFDr :: set Interface depth (put cell-Center at the middle) +C setCenterDr :: set cell-Center depth (put Interface at the middle) +C- Momentum params: +C no_slip_sides :: Impose "no-slip" at lateral boundaries. +C no_slip_bottom :: Impose "no-slip" at bottom boundary. +C bottomVisc_pCell :: account for partial-cell in bottom visc. (no-slip BC) +C useSmag3D :: Use isotropic 3-D Smagorinsky +C useFullLeith :: Set to true to use full Leith viscosity(may be unstable +C on irregular grids) +C useStrainTensionVisc:: Set to true to use Strain-Tension viscous terms +C useAreaViscLength :: Set to true to use old scaling for viscous lengths, +C e.g., L2=Raz. May be preferable for cube sphere. +C momViscosity :: Flag which turns momentum friction terms on and off. +C momAdvection :: Flag which turns advection of momentum on and off. +C momForcing :: Flag which turns external forcing of momentum on +C and off. +C momPressureForcing :: Flag which turns pressure term in momentum equation +C on and off. +C metricTerms :: Flag which turns metric terms on or off. +C useNHMTerms :: If TRUE use non-hydrostatic metric terms. +C useCoriolis :: Flag which turns the coriolis terms on and off. +C use3dCoriolis :: Turns the 3-D coriolis terms (in Omega.cos Phi) on - off +C useCDscheme :: use CD-scheme to calculate Coriolis terms. +C vectorInvariantMomentum :: use Vector-Invariant form (mom_vecinv package) +C (default = F = use mom_fluxform package) +C useJamartWetPoints :: Use wet-point method for Coriolis (Jamart & Ozer 1986) +C useJamartMomAdv :: Use wet-point method for V.I. non-linear term +C upwindVorticity :: bias interpolation of vorticity in the Coriolis term +C highOrderVorticity :: use 3rd/4th order interp. of vorticity (V.I., advection) +C useAbsVorticity :: work with f+zeta in Coriolis terms +C upwindShear :: use 1rst order upwind interp. (V.I., vertical advection) +C momStepping :: Turns momentum equation time-stepping off +C calc_wVelocity :: Turns vertical velocity calculation off +C- Temp. & Salt params: +C tempStepping :: Turns temperature equation time-stepping on/off +C saltStepping :: Turns salinity equation time-stepping on/off +C addFrictionHeating :: account for frictional heating +C tempAdvection :: Flag which turns advection of temperature on and off. +C tempVertDiff4 :: use vertical bi-harmonic diffusion for temperature +C tempIsActiveTr :: Pot.Temp. is a dynamically active tracer +C tempForcing :: Flag which turns external forcing of temperature on/off +C saltAdvection :: Flag which turns advection of salinity on and off. +C saltVertDiff4 :: use vertical bi-harmonic diffusion for salinity +C saltIsActiveTr :: Salinity is a dynamically active tracer +C saltForcing :: Flag which turns external forcing of salinity on/off +C maskIniTemp :: apply mask to initial Pot.Temp. +C maskIniSalt :: apply mask to initial salinity +C checkIniTemp :: check for points with identically zero initial Pot.Temp. +C checkIniSalt :: check for points with identically zero initial salinity +C- Pressure solver related parameters (PARM02) +C useSRCGSolver :: Set to true to use conjugate gradient +C solver with single reduction (only one call of +C s/r mpi_allreduce), default is false +C- Time-stepping & free-surface params: +C rigidLid :: Set to true to use rigid lid +C implicitFreeSurface :: Set to true to use implicit free surface +C uniformLin_PhiSurf :: Set to true to use a uniform Bo_surf in the +C linear relation Phi_surf = Bo_surf*eta +C uniformFreeSurfLev :: TRUE if free-surface level-index is uniform (=1) +C exactConserv :: Set to true to conserve exactly the total Volume +C linFSConserveTr :: Set to true to correct source/sink of tracer +C at the surface due to Linear Free Surface +C useRealFreshWaterFlux :: if True (=Natural BCS), treats P+R-E flux +C as a real Fresh Water (=> changes the Sea Level) +C if F, converts P+R-E to salt flux (no SL effect) +C storePhiHyd4Phys :: store hydrostatic potential for use in Physics/EOS +C this requires specific code for restart & exchange +C quasiHydrostatic :: Using non-hydrostatic terms in hydrostatic algorithm +C nonHydrostatic :: Using non-hydrostatic algorithm +C use3Dsolver :: set to true to use 3-D pressure solver +C implicitIntGravWave :: treat Internal Gravity Wave implicitly +C staggerTimeStep :: enable a Stagger time stepping U,V (& W) then T,S +C applyExchUV_early :: Apply EXCH to U,V earlier, just before integr_continuity +C doResetHFactors :: Do reset thickness factors @ beginning of each time-step +C implicitDiffusion :: Turns implicit vertical diffusion on +C implicitViscosity :: Turns implicit vertical viscosity on +C tempImplVertAdv :: Turns on implicit vertical advection for Temperature +C saltImplVertAdv :: Turns on implicit vertical advection for Salinity +C momImplVertAdv :: Turns on implicit vertical advection for Momentum +C multiDimAdvection :: Flag that enable multi-dimension advection +C useMultiDimAdvec :: True if multi-dim advection is used at least once +C momDissip_In_AB :: if False, put Dissipation tendency contribution +C out off Adams-Bashforth time stepping. +C doAB_onGtGs :: if the Adams-Bashforth time stepping is used, always +C apply AB on tracer tendencies (rather than on Tracer) +C- Other forcing params - +C balanceEmPmR :: substract global mean of EmPmR at every time step +C balanceQnet :: substract global mean of Qnet at every time step +C balancePrintMean:: print substracted global means to STDOUT +C doThetaClimRelax :: Set true if relaxation to temperature +C climatology is required. +C doSaltClimRelax :: Set true if relaxation to salinity +C climatology is required. +C balanceThetaClimRelax :: substract global mean effect at every time step +C balanceSaltClimRelax :: substract global mean effect at every time step +C allowFreezing :: Allows surface water to freeze and form ice +C periodicExternalForcing :: Set true if forcing is time-dependant +C- I/O parameters - +C globalFiles :: Selects between "global" and "tiled" files. +C On some platforms with MPI, option globalFiles is either +C slow or does not work. Use useSingleCpuIO instead. +C useSingleCpuIO :: moved to EEPARAMS.h +C pickupStrictlyMatch :: check and stop if pickup-file do not stricly match +C startFromPickupAB2 :: with AB-3 code, start from an AB-2 pickup +C usePickupBeforeC54 :: start from old-pickup files, generated with code from +C before checkpoint-54a, Jul 06, 2004. +C pickup_write_mdsio :: use mdsio to write pickups +C pickup_read_mdsio :: use mdsio to read pickups +C pickup_write_immed :: echo the pickup immediately (for conversion) +C writePickupAtEnd :: write pickup at the last timestep +C timeave_mdsio :: use mdsio for timeave output +C snapshot_mdsio :: use mdsio for "snapshot" (dumpfreq/diagfreq) output +C monitor_stdio :: use stdio for monitor output +C dumpInitAndLast :: dumps model state to files at Initial (nIter0) +C & Last iteration, in addition multiple of dumpFreq iter. + + COMMON /PARM_L/ + & fluidIsAir, fluidIsWater, + & usingPCoords, usingZCoords, + & usingCartesianGrid, usingSphericalPolarGrid, rotateGrid, + & usingCylindricalGrid, usingCurvilinearGrid, hasWetCSCorners, + & deepAtmosphere, setInterFDr, setCenterDr, + & no_slip_sides, no_slip_bottom, bottomVisc_pCell, useSmag3D, + & useFullLeith, useStrainTensionVisc, useAreaViscLength, + & momViscosity, momAdvection, momForcing, + & momPressureForcing, metricTerms, useNHMTerms, + & useCoriolis, use3dCoriolis, + & useCDscheme, vectorInvariantMomentum, + & useEnergyConservingCoriolis, useJamartWetPoints, useJamartMomAdv, + & upwindVorticity, highOrderVorticity, + & useAbsVorticity, upwindShear, + & momStepping, calc_wVelocity, tempStepping, saltStepping, + & addFrictionHeating, + & tempAdvection, tempVertDiff4, tempIsActiveTr, tempForcing, + & saltAdvection, saltVertDiff4, saltIsActiveTr, saltForcing, + & maskIniTemp, maskIniSalt, checkIniTemp, checkIniSalt, + & useSRCGSolver, + & rigidLid, implicitFreeSurface, + & uniformLin_PhiSurf, uniformFreeSurfLev, + & exactConserv, linFSConserveTr, useRealFreshWaterFlux, + & storePhiHyd4Phys, quasiHydrostatic, nonHydrostatic, + & use3Dsolver, implicitIntGravWave, staggerTimeStep, + & applyExchUV_early, doResetHFactors, + & implicitDiffusion, implicitViscosity, + & tempImplVertAdv, saltImplVertAdv, momImplVertAdv, + & multiDimAdvection, useMultiDimAdvec, + & momDissip_In_AB, doAB_onGtGs, + & balanceEmPmR, balanceQnet, balancePrintMean, + & balanceThetaClimRelax, balanceSaltClimRelax, + & doThetaClimRelax, doSaltClimRelax, + & allowFreezing, + & periodicExternalForcing, + & globalFiles, + & pickupStrictlyMatch, usePickupBeforeC54, startFromPickupAB2, + & pickup_read_mdsio, pickup_write_mdsio, pickup_write_immed, + & writePickupAtEnd, + & timeave_mdsio, snapshot_mdsio, monitor_stdio, + & outputTypesInclusive, dumpInitAndLast + + LOGICAL fluidIsAir + LOGICAL fluidIsWater + LOGICAL usingPCoords + LOGICAL usingZCoords LOGICAL usingCartesianGrid - LOGICAL usingSphericalPolarGrid + LOGICAL usingSphericalPolarGrid, rotateGrid + LOGICAL usingCylindricalGrid + LOGICAL usingCurvilinearGrid, hasWetCSCorners + LOGICAL deepAtmosphere + LOGICAL setInterFDr + LOGICAL setCenterDr + + LOGICAL no_slip_sides + LOGICAL no_slip_bottom + LOGICAL bottomVisc_pCell + LOGICAL useSmag3D + LOGICAL useFullLeith + LOGICAL useStrainTensionVisc + LOGICAL useAreaViscLength LOGICAL momViscosity LOGICAL momAdvection LOGICAL momForcing + LOGICAL momPressureForcing + LOGICAL metricTerms + LOGICAL useNHMTerms + LOGICAL useCoriolis - LOGICAL tempDiffusion + LOGICAL use3dCoriolis + LOGICAL useCDscheme + LOGICAL vectorInvariantMomentum + LOGICAL useEnergyConservingCoriolis + LOGICAL useJamartWetPoints + LOGICAL useJamartMomAdv + LOGICAL upwindVorticity + LOGICAL highOrderVorticity + LOGICAL useAbsVorticity + LOGICAL upwindShear + LOGICAL momStepping + LOGICAL calc_wVelocity + LOGICAL tempStepping + LOGICAL saltStepping + LOGICAL addFrictionHeating LOGICAL tempAdvection + LOGICAL tempVertDiff4 + LOGICAL tempIsActiveTr LOGICAL tempForcing - LOGICAL saltDiffusion LOGICAL saltAdvection + LOGICAL saltVertDiff4 + LOGICAL saltIsActiveTr LOGICAL saltForcing + LOGICAL maskIniTemp + LOGICAL maskIniSalt + LOGICAL checkIniTemp + LOGICAL checkIniSalt + LOGICAL useSRCGSolver + LOGICAL rigidLid + LOGICAL implicitFreeSurface + LOGICAL uniformLin_PhiSurf + LOGICAL uniformFreeSurfLev + LOGICAL exactConserv + LOGICAL linFSConserveTr + LOGICAL useRealFreshWaterFlux + LOGICAL storePhiHyd4Phys + LOGICAL quasiHydrostatic + LOGICAL nonHydrostatic + LOGICAL use3Dsolver + LOGICAL implicitIntGravWave + LOGICAL staggerTimeStep + LOGICAL applyExchUV_early + LOGICAL doResetHFactors + LOGICAL implicitDiffusion + LOGICAL implicitViscosity + LOGICAL tempImplVertAdv + LOGICAL saltImplVertAdv + LOGICAL momImplVertAdv + LOGICAL multiDimAdvection + LOGICAL useMultiDimAdvec + LOGICAL momDissip_In_AB + LOGICAL doAB_onGtGs + LOGICAL balanceEmPmR + LOGICAL balanceQnet + LOGICAL balancePrintMean + LOGICAL doThetaClimRelax + LOGICAL doSaltClimRelax + LOGICAL balanceThetaClimRelax + LOGICAL balanceSaltClimRelax + LOGICAL allowFreezing + LOGICAL periodicExternalForcing + LOGICAL globalFiles + LOGICAL pickupStrictlyMatch + LOGICAL usePickupBeforeC54 + LOGICAL startFromPickupAB2 + LOGICAL pickup_read_mdsio, pickup_write_mdsio + LOGICAL pickup_write_immed, writePickupAtEnd + LOGICAL timeave_mdsio, snapshot_mdsio, monitor_stdio + LOGICAL outputTypesInclusive + LOGICAL dumpInitAndLast C-- COMMON /PARM_R/ "Real" valued parameters used by the model. C cg2dTargetResidual -C - Target residual for cg2d solver. -C delZ - Vertical grid spacing ( m ) - delZ is the distance -C between "w" surfaces. -C delX - Separation between cell faces (m) or (deg), depending -C delY on input flags. -C gravity - Accel. due to gravity ( m/s^2 ) -C ronil - Reference density -C startTime - Start time for model ( s ) -C phiMin - Latitude of southern most cell face. -C thetaMin - Longitude of western most cell face (this -C is an "inert" parameter but it is included -C to make geographical references simple.) -C rSphere - Radius of sphere for a spherical polar grid ( m ). -C f0 - Reference coriolis parameter ( 1/s ) -C ( Southern edge f for beta plane ) -C beta - df/dy ( s^-1.m^-1 ) -C viscAh - Eddy viscosity coeff. for mixing of -C momentum laterally ( m^2/s ) -C viscAz - Eddy viscosity coeff. for mixing of -C momentum vertically ( m^2/s ) -C viscA4 - Biharmonic viscosity coeff. for mixing of -C momentum laterally ( m^4/s ) -C diffKhT - Laplacian diffusion coeff. for mixing of +C :: Target residual for cg2d solver; no unit (RHS normalisation) +C cg2dTargetResWunit +C :: Target residual for cg2d solver; W unit (No RHS normalisation) +C cg3dTargetResidual +C :: Target residual for cg3d solver. +C cg2dpcOffDFac :: Averaging weight for preconditioner off-diagonal. +C Note. 20th May 1998 +C I made a weird discovery! In the model paper we argue +C for the form of the preconditioner used here ( see +C A Finite-volume, Incompressible Navier-Stokes Model +C ...., Marshall et. al ). The algebra gives a simple +C 0.5 factor for the averaging of ac and aCw to get a +C symmettric pre-conditioner. By using a factor of 0.51 +C i.e. scaling the off-diagonal terms in the +C preconditioner down slightly I managed to get the +C number of iterations for convergence in a test case to +C drop form 192 -> 134! Need to investigate this further! +C For now I have introduced a parameter cg2dpcOffDFac which +C defaults to 0.51 but can be set at runtime. +C delR :: Vertical grid spacing ( units of r ). +C delRc :: Vertical grid spacing between cell centers (r unit). +C delX :: Separation between cell faces (m) or (deg), depending +C delY on input flags. Note: moved to header file SET_GRID.h +C xgOrigin :: Origin of the X-axis (Cartesian Grid) / Longitude of Western +C :: most cell face (Lat-Lon grid) (Note: this is an "inert" +C :: parameter but it makes geographical references simple.) +C ygOrigin :: Origin of the Y-axis (Cartesian Grid) / Latitude of Southern +C :: most face (Lat-Lon grid). +C rSphere :: Radius of sphere for a spherical polar grid ( m ). +C recip_rSphere :: Reciprocal radius of sphere ( m^-1 ). +C radius_fromHorizGrid :: sphere Radius of input horiz. grid (Curvilinear Grid) +C seaLev_Z :: the reference height of sea-level (usually zero) +C top_Pres :: pressure (P-Coords) or reference pressure (Z-Coords) at the top +C rSigmaBnd :: vertical position (in r-unit) of r/sigma transition (Hybrid-Sigma) +C gravity :: Acceleration due to constant gravity ( m/s^2 ) +C recip_gravity :: Reciprocal gravity acceleration ( s^2/m ) +C gBaro :: Accel. due to gravity used in barotropic equation ( m/s^2 ) +C gravFacC :: gravity factor (vs surf. gravity) vert. profile at cell-Center +C gravFacF :: gravity factor (vs surf. gravity) vert. profile at cell-interF +C rhoNil :: Reference density for the linear equation of state +C rhoConst :: Vertically constant reference density (Boussinesq) +C rho1Ref :: reference vertical profile for density (anelastic) +C rhoFacC :: normalized (by rhoConst) reference density at cell-Center +C rhoFacF :: normalized (by rhoConst) reference density at cell-interFace +C rhoConstFresh :: Constant reference density for fresh water (rain) +C thetaConst :: Constant reference for potential temperature +C tRef :: reference vertical profile for potential temperature +C sRef :: reference vertical profile for salinity/specific humidity +C pRef4EOS :: reference pressure used in EOS (case selectP_inEOS_Zc=1) +C phiRef :: reference potential (press/rho, geopot) profile (m^2/s^2) +C dBdrRef :: vertical gradient of reference buoyancy [(m/s/r)^2]: +C :: z-coord: = N^2_ref = Brunt-Vaissala frequency [s^-2] +C :: p-coord: = -(d.alpha/dp)_ref [(m^2.s/kg)^2] +C rVel2wUnit :: units conversion factor (Non-Hydrostatic code), +C :: from r-coordinate vertical velocity to vertical velocity [m/s]. +C :: z-coord: = 1 ; p-coord: wSpeed [m/s] = rVel [Pa/s] * rVel2wUnit +C wUnit2rVel :: units conversion factor (Non-Hydrostatic code), +C :: from vertical velocity [m/s] to r-coordinate vertical velocity. +C :: z-coord: = 1 ; p-coord: rVel [Pa/s] = wSpeed [m/s] * wUnit2rVel +C mass2rUnit :: units conversion factor (surface forcing), +C :: from mass per unit area [kg/m2] to vertical r-coordinate unit. +C :: z-coord: = 1/rhoConst ( [kg/m2] / rho = [m] ) ; +C :: p-coord: = gravity ( [kg/m2] * g = [Pa] ) ; +C rUnit2mass :: units conversion factor (surface forcing), +C :: from vertical r-coordinate unit to mass per unit area [kg/m2]. +C :: z-coord: = rhoConst ( [m] * rho = [kg/m2] ) ; +C :: p-coord: = 1/gravity ( [Pa] / g = [kg/m2] ) ; +C f0 :: Reference coriolis parameter ( 1/s ) +C ( Southern edge f for beta plane ) +C beta :: df/dy ( s^-1.m^-1 ) +C fPrime :: Second Coriolis parameter ( 1/s ), related to Y-component +C of rotation (reference value = 2.Omega.Cos(Phi)) +C omega :: Angular velocity ( rad/s ) +C rotationPeriod :: Rotation period (s) (= 2.pi/omega) +C viscArNr :: vertical profile of Eddy viscosity coeff. +C for vertical mixing of momentum ( units of r^2/s ) +C viscAh :: Eddy viscosity coeff. for mixing of +C momentum laterally ( m^2/s ) +C viscAhW :: Eddy viscosity coeff. for mixing of vertical +C momentum laterally, no effect for hydrostatic +C model, defaults to viscAhD if unset ( m^2/s ) +C Not used if variable horiz. viscosity is used. +C viscA4 :: Biharmonic viscosity coeff. for mixing of +C momentum laterally ( m^4/s ) +C viscA4W :: Biharmonic viscosity coeff. for mixing of vertical +C momentum laterally, no effect for hydrostatic +C model, defaults to viscA4D if unset ( m^2/s ) +C Not used if variable horiz. viscosity is used. +C viscAhD :: Eddy viscosity coeff. for mixing of momentum laterally +C (act on Divergence part) ( m^2/s ) +C viscAhZ :: Eddy viscosity coeff. for mixing of momentum laterally +C (act on Vorticity part) ( m^2/s ) +C viscA4D :: Biharmonic viscosity coeff. for mixing of momentum laterally +C (act on Divergence part) ( m^4/s ) +C viscA4Z :: Biharmonic viscosity coeff. for mixing of momentum laterally +C (act on Vorticity part) ( m^4/s ) +C smag3D_coeff :: Isotropic 3-D Smagorinsky coefficient (-) +C viscC2leith :: Leith non-dimensional viscosity factor (grad(vort)) +C viscC2leithD :: Modified Leith non-dimensional visc. factor (grad(div)) +C viscC4leith :: Leith non-dimensional viscosity factor (grad(vort)) +C viscC4leithD :: Modified Leith non-dimensional viscosity factor (grad(div)) +C viscC2smag :: Smagorinsky non-dimensional viscosity factor (harmonic) +C viscC4smag :: Smagorinsky non-dimensional viscosity factor (biharmonic) +C viscAhMax :: Maximum eddy viscosity coeff. for mixing of +C momentum laterally ( m^2/s ) +C viscAhReMax :: Maximum gridscale Reynolds number for eddy viscosity +C coeff. for mixing of momentum laterally (non-dim) +C viscAhGrid :: non-dimensional grid-size dependent viscosity +C viscAhGridMax:: maximum and minimum harmonic viscosity coefficients ... +C viscAhGridMin:: in terms of non-dimensional grid-size dependent visc. +C viscA4Max :: Maximum biharmonic viscosity coeff. for mixing of +C momentum laterally ( m^4/s ) +C viscA4ReMax :: Maximum Gridscale Reynolds number for +C biharmonic viscosity coeff. momentum laterally (non-dim) +C viscA4Grid :: non-dimensional grid-size dependent bi-harmonic viscosity +C viscA4GridMax:: maximum and minimum biharmonic viscosity coefficients ... +C viscA4GridMin:: in terms of non-dimensional grid-size dependent viscosity +C diffKhT :: Laplacian diffusion coeff. for mixing of C heat laterally ( m^2/s ) -C diffKzT - Laplacian diffusion coeff. for mixing of -C heat vertically ( m^2/s ) -C diffK4T - Biharmonic diffusion coeff. for mixing of +C diffK4T :: Biharmonic diffusion coeff. for mixing of C heat laterally ( m^4/s ) -C diffKhS - Laplacian diffusion coeff. for mixing of +C diffKrNrT :: vertical profile of Laplacian diffusion coeff. +C for mixing of heat vertically ( units of r^2/s ) +C diffKr4T :: vertical profile of Biharmonic diffusion coeff. +C for mixing of heat vertically ( units of r^4/s ) +C diffKhS :: Laplacian diffusion coeff. for mixing of C salt laterally ( m^2/s ) -C diffKzS - Laplacian diffusion coeff. for mixing of -C salt vertically ( m^2/s ) -C diffK4S - Biharmonic diffusion coeff. for mixing of +C diffK4S :: Biharmonic diffusion coeff. for mixing of C salt laterally ( m^4/s ) -C deltaT - Default timestep ( s ) -C deltaTMom - Timestep for momemtum equations ( s ) -C deltaTtracer - Timestep for tracer equations ( s ) -C tauCD - CD scheme coupling timescale ( 1/s ) -C rCD - CD scheme normalised coupling parameter ( 0-1 ) -C startTime - Starting time for this integration ( s ). -C endTime - Ending time for this integration ( s ). -C chkPtFreq - Frequency of check pointing ( s ). -C dumpFreq - Frequency with which model state is written to -C post-processing files ( s ). - COMMON /PARM_R/ cg2dTargetResidual, delZ, delX, delY, deltaT, - & deltaTmom, deltaTtracer, abeps, startTime, phiMin, thetaMin, - & rSphere, f0, fCori, beta, viscAh, viscAz, viscA4, diffKhT, diffKzT, - & diffK4T, diffKhS, diffKzS, diffK4S, delT, tauCD, rCD, - & tAlpha, sBeta, gravity, rhonil, tRef, sRef, - & endTime, chkPtFreq, dumpFreq - REAL cg2dTargetResidual - REAL delZ(Nz) - REAL delX(Nx) - REAL delY(Ny) - REAL deltaT - REAL deltaTmom - REAL deltaTtracer - REAL abeps - REAL phiMin - REAL thetaMin - REAL rSphere - REAL f0 - _RL beta - REAL viscAh - REAL viscAz - REAL viscA4 - REAL diffKhT - REAL diffKzT - REAL diffK4T - REAL diffKhS - REAL diffKzS - REAL diffK4S - REAL delt - REAL tauCD - REAL rCD - REAL tAlpha - REAL sBeta - REAL gravity - REAL rhonil - REAL tRef(Nz) - REAL sRef(Nz) - real Fcori(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - REAL startTime - REAL endTime - REAL chkPtFreq - REAL dumpFreq - COMMON /PARM_A/ HeatCapacity_Cp, - & Lamba_theta - REAL HeatCapacity_Cp - REAL Lamba_theta +C diffKrNrS :: vertical profile of Laplacian diffusion coeff. +C for mixing of salt vertically ( units of r^2/s ), +C diffKr4S :: vertical profile of Biharmonic diffusion coeff. +C for mixing of salt vertically ( units of r^4/s ) +C diffKrBL79surf :: T/S surface diffusivity (m^2/s) Bryan and Lewis, 1979 +C diffKrBL79deep :: T/S deep diffusivity (m^2/s) Bryan and Lewis, 1979 +C diffKrBL79scl :: depth scale for arctan fn (m) Bryan and Lewis, 1979 +C diffKrBL79Ho :: depth offset for arctan fn (m) Bryan and Lewis, 1979 +C BL79LatVary :: polarwise of this latitude diffKrBL79 is applied with +C gradual transition to diffKrBLEQ towards Equator +C diffKrBLEQsurf :: same as diffKrBL79surf but at Equator +C diffKrBLEQdeep :: same as diffKrBL79deep but at Equator +C diffKrBLEQscl :: same as diffKrBL79scl but at Equator +C diffKrBLEQHo :: same as diffKrBL79Ho but at Equator +C deltaT :: Default timestep ( s ) +C deltaTClock :: Timestep used as model "clock". This determines the +C IO frequencies and is used in tagging output. It can +C be totally different to the dynamical time. Typically +C it will be the deep-water timestep for accelerated runs. +C Frequency of checkpointing and dumping of the model state +C are referenced to this clock. ( s ) +C deltaTMom :: Timestep for momemtum equations ( s ) +C dTtracerLev :: Timestep for tracer equations ( s ), function of level k +C deltaTFreeSurf :: Timestep for free-surface equation ( s ) +C freeSurfFac :: Parameter to turn implicit free surface term on or off +C freeSurFac = 1. uses implicit free surface +C freeSurFac = 0. uses rigid lid +C abEps :: Adams-Bashforth-2 stabilizing weight +C alph_AB :: Adams-Bashforth-3 primary factor +C beta_AB :: Adams-Bashforth-3 secondary factor +C implicSurfPress :: parameter of the Crank-Nickelson time stepping : +C Implicit part of Surface Pressure Gradient ( 0-1 ) +C implicDiv2DFlow :: parameter of the Crank-Nickelson time stepping : +C Implicit part of barotropic flow Divergence ( 0-1 ) +C implicitNHPress :: parameter of the Crank-Nickelson time stepping : +C Implicit part of Non-Hydrostatic Pressure Gradient ( 0-1 ) +C hFacMin :: Minimum fraction size of a cell (affects hFacC etc...) +C hFacMinDz :: Minimum dimensional size of a cell (affects hFacC etc..., m) +C hFacMinDp :: Minimum dimensional size of a cell (affects hFacC etc..., Pa) +C hFacMinDr :: Minimum dimensional size of a cell (-> hFacC etc..., r units) +C hFacInf :: Threshold (inf and sup) for fraction size of surface cell +C hFacSup that control vanishing and creating levels +C tauCD :: CD scheme coupling timescale ( s ) +C rCD :: CD scheme normalised coupling parameter (= 1 - deltaT/tauCD) +C epsAB_CD :: Adams-Bashforth-2 stabilizing weight used in CD scheme +C baseTime :: model base time (time origin) = time @ iteration zero +C startTime :: Starting time for this integration ( s ). +C endTime :: Ending time for this integration ( s ). +C chkPtFreq :: Frequency of rolling check pointing ( s ). +C pChkPtFreq :: Frequency of permanent check pointing ( s ). +C dumpFreq :: Frequency with which model state is written to +C post-processing files ( s ). +C diagFreq :: Frequency with which model writes diagnostic output +C of intermediate quantities. +C afFacMom :: Advection of momentum term tracer parameter +C vfFacMom :: Momentum viscosity tracer parameter +C pfFacMom :: Momentum pressure forcing tracer parameter +C cfFacMom :: Coriolis term tracer parameter +C foFacMom :: Momentum forcing tracer parameter +C mtFacMom :: Metric terms tracer parameter +C cosPower :: Power of cosine of latitude to multiply viscosity +C cAdjFreq :: Frequency of convective adjustment +C +C taveFreq :: Frequency with which time-averaged model state +C is written to post-processing files ( s ). +C tave_lastIter :: (for state variable only) fraction of the last time +C step (of each taveFreq period) put in the time average. +C (fraction for 1rst iter = 1 - tave_lastIter) +C tauThetaClimRelax :: Relaxation to climatology time scale ( s ). +C tauSaltClimRelax :: Relaxation to climatology time scale ( s ). +C latBandClimRelax :: latitude band where Relaxation to Clim. is applied, +C i.e. where |yC| <= latBandClimRelax +C externForcingPeriod :: Is the period of which forcing varies (eg. 1 month) +C externForcingCycle :: Is the repeat time of the forcing (eg. 1 year) +C (note: externForcingCycle must be an integer +C number times externForcingPeriod) +C convertFW2Salt :: salinity, used to convert Fresh-Water Flux to Salt Flux +C (use model surface (local) value if set to -1) +C temp_EvPrRn :: temperature of Rain & Evap. +C salt_EvPrRn :: salinity of Rain & Evap. +C temp_addMass :: temperature of addMass array +C salt_addMass :: salinity of addMass array +C (notes: a) tracer content of Rain/Evap only used if both +C NonLin_FrSurf & useRealFreshWater are set. +C b) use model surface (local) value if set to UNSET_RL) +C hMixCriteria:: criteria for mixed-layer diagnostic +C dRhoSmall :: parameter for mixed-layer diagnostic +C hMixSmooth :: Smoothing parameter for mixed-layer diag (default=0=no smoothing) +C ivdc_kappa :: implicit vertical diffusivity for convection [m^2/s] +C sideDragFactor :: side-drag scaling factor (used only if no_slip_sides) +C (default=2: full drag ; =1: gives half-slip BC) +C bottomDragLinear :: Linear bottom-drag coefficient (units of [r]/s) +C bottomDragQuadratic :: Quadratic bottom-drag coefficient (units of [r]/m) +C (if using zcoordinate, units becomes linear: m/s, quadratic: [-]) +C smoothAbsFuncRange :: 1/2 of interval around zero, for which FORTRAN ABS +C is to be replace by a smoother function +C (affects myabs, mymin, mymax) +C nh_Am2 :: scales the non-hydrostatic terms and changes internal scales +C (i.e. allows convection at different Rayleigh numbers) +C tCylIn :: Temperature of the cylinder inner boundary +C tCylOut :: Temperature of the cylinder outer boundary +C phiEuler :: Euler angle, rotation about original z-axis +C thetaEuler :: Euler angle, rotation about new x-axis +C psiEuler :: Euler angle, rotation about new z-axis + COMMON /PARM_R/ cg2dTargetResidual, cg2dTargetResWunit, + & cg2dpcOffDFac, cg3dTargetResidual, + & delR, delRc, xgOrigin, ygOrigin, rSphere, recip_rSphere, + & radius_fromHorizGrid, seaLev_Z, top_Pres, rSigmaBnd, + & deltaT, deltaTMom, dTtracerLev, deltaTFreeSurf, deltaTClock, + & abEps, alph_AB, beta_AB, + & f0, beta, fPrime, omega, rotationPeriod, + & viscFacAdj, viscAh, viscAhW, smag3D_coeff, + & viscAhMax, viscAhGrid, viscAhGridMax, viscAhGridMin, + & viscC2leith, viscC2leithD, + & viscC2smag, viscC4smag, + & viscAhD, viscAhZ, viscA4D, viscA4Z, + & viscA4, viscA4W, viscA4Max, + & viscA4Grid, viscA4GridMax, viscA4GridMin, + & viscAhReMax, viscA4ReMax, + & viscC4leith, viscC4leithD, viscArNr, + & diffKhT, diffK4T, diffKrNrT, diffKr4T, + & diffKhS, diffK4S, diffKrNrS, diffKr4S, + & diffKrBL79surf, diffKrBL79deep, diffKrBL79scl, diffKrBL79Ho, + & BL79LatVary, + & diffKrBLEQsurf, diffKrBLEQdeep, diffKrBLEQscl, diffKrBLEQHo, + & tauCD, rCD, epsAB_CD, + & freeSurfFac, implicSurfPress, implicDiv2DFlow, implicitNHPress, + & hFacMin, hFacMinDz, hFacInf, hFacSup, + & gravity, recip_gravity, gBaro, + & gravFacC, recip_gravFacC, gravFacF, recip_gravFacF, + & rhoNil, rhoConst, recip_rhoConst, rho1Ref, + & rhoFacC, recip_rhoFacC, rhoFacF, recip_rhoFacF, rhoConstFresh, + & thetaConst, tRef, sRef, pRef4EOS, phiRef, dBdrRef, + & rVel2wUnit, wUnit2rVel, mass2rUnit, rUnit2mass, + & baseTime, startTime, endTime, + & chkPtFreq, pChkPtFreq, dumpFreq, adjDumpFreq, + & diagFreq, taveFreq, tave_lastIter, monitorFreq, adjMonitorFreq, + & afFacMom, vfFacMom, pfFacMom, cfFacMom, foFacMom, mtFacMom, + & cosPower, cAdjFreq, + & tauThetaClimRelax, tauSaltClimRelax, latBandClimRelax, + & externForcingCycle, externForcingPeriod, + & convertFW2Salt, temp_EvPrRn, salt_EvPrRn, + & temp_addMass, salt_addMass, hFacMinDr, hFacMinDp, + & ivdc_kappa, hMixCriteria, dRhoSmall, hMixSmooth, + & sideDragFactor, bottomDragLinear, bottomDragQuadratic, nh_Am2, + & smoothAbsFuncRange, + & tCylIn, tCylOut, + & phiEuler, thetaEuler, psiEuler + + _RL cg2dTargetResidual + _RL cg2dTargetResWunit + _RL cg3dTargetResidual + _RL cg2dpcOffDFac + _RL delR(Nr) + _RL delRc(Nr+1) + _RL xgOrigin + _RL ygOrigin + _RL rSphere + _RL recip_rSphere + _RL radius_fromHorizGrid + _RL seaLev_Z + _RL top_Pres + _RL rSigmaBnd + _RL deltaT + _RL deltaTClock + _RL deltaTMom + _RL dTtracerLev(Nr) + _RL deltaTFreeSurf + _RL abEps, alph_AB, beta_AB + _RL f0 + _RL beta + _RL fPrime + _RL omega + _RL rotationPeriod + _RL freeSurfFac + _RL implicSurfPress + _RL implicDiv2DFlow + _RL implicitNHPress + _RL hFacMin + _RL hFacMinDz + _RL hFacMinDp + _RL hFacMinDr + _RL hFacInf + _RL hFacSup + _RL viscArNr(Nr) + _RL viscFacAdj + _RL viscAh + _RL viscAhW + _RL viscAhD + _RL viscAhZ + _RL smag3D_coeff + _RL viscAhMax + _RL viscAhReMax + _RL viscAhGrid, viscAhGridMax, viscAhGridMin + _RL viscC2leith + _RL viscC2leithD + _RL viscC2smag + _RL viscA4 + _RL viscA4W + _RL viscA4D + _RL viscA4Z + _RL viscA4Max + _RL viscA4ReMax + _RL viscA4Grid, viscA4GridMax, viscA4GridMin + _RL viscC4leith + _RL viscC4leithD + _RL viscC4smag + _RL diffKhT + _RL diffK4T + _RL diffKrNrT(Nr) + _RL diffKr4T(Nr) + _RL diffKhS + _RL diffK4S + _RL diffKrNrS(Nr) + _RL diffKr4S(Nr) + _RL diffKrBL79surf + _RL diffKrBL79deep + _RL diffKrBL79scl + _RL diffKrBL79Ho + _RL BL79LatVary + _RL diffKrBLEQsurf + _RL diffKrBLEQdeep + _RL diffKrBLEQscl + _RL diffKrBLEQHo + _RL tauCD, rCD, epsAB_CD + _RL gravity, recip_gravity + _RL gBaro + _RL gravFacC(Nr), recip_gravFacC(Nr) + _RL gravFacF(Nr+1), recip_gravFacF(Nr+1) + _RL rhoNil + _RL rhoConst, recip_rhoConst + _RL rho1Ref(Nr) + _RL rhoFacC(Nr), recip_rhoFacC(Nr) + _RL rhoFacF(Nr+1), recip_rhoFacF(Nr+1) + _RL rhoConstFresh + _RL thetaConst + _RL tRef(Nr) + _RL sRef(Nr) + _RL pRef4EOS(Nr) + _RL phiRef(2*Nr+1) + _RL dBdrRef(Nr) + _RL rVel2wUnit(Nr+1), wUnit2rVel(Nr+1) + _RL mass2rUnit, rUnit2mass + _RL baseTime + _RL startTime + _RL endTime + _RL chkPtFreq + _RL pChkPtFreq + _RL dumpFreq + _RL adjDumpFreq + _RL diagFreq + _RL taveFreq + _RL tave_lastIter + _RL monitorFreq + _RL adjMonitorFreq + _RL afFacMom + _RL vfFacMom + _RL pfFacMom + _RL cfFacMom + _RL foFacMom + _RL mtFacMom + _RL cosPower + _RL cAdjFreq + _RL tauThetaClimRelax + _RL tauSaltClimRelax + _RL latBandClimRelax + _RL externForcingCycle + _RL externForcingPeriod + _RL convertFW2Salt + _RL temp_EvPrRn + _RL salt_EvPrRn + _RL temp_addMass + _RL salt_addMass + _RL ivdc_kappa + _RL hMixCriteria + _RL dRhoSmall + _RL hMixSmooth + _RL sideDragFactor + _RL bottomDragLinear + _RL bottomDragQuadratic + _RL smoothAbsFuncRange + _RL nh_Am2 + _RL tCylIn, tCylOut + _RL phiEuler, thetaEuler, psiEuler + +C-- COMMON /PARM_A/ Thermodynamics constants ? + COMMON /PARM_A/ HeatCapacity_Cp + _RL HeatCapacity_Cp + +C-- COMMON /PARM_ATM/ Atmospheric physical parameters (Ideal Gas EOS, ...) +C celsius2K :: convert centigrade (Celsius) degree to Kelvin +C atm_Po :: standard reference pressure +C atm_Cp :: specific heat (Cp) of the (dry) air at constant pressure +C atm_Rd :: gas constant for dry air +C atm_kappa :: kappa = R/Cp (R: constant of Ideal Gas EOS) +C atm_Rq :: water vapour specific volume anomaly relative to dry air +C (e.g. typical value = (29/18 -1) 10^-3 with q [g/kg]) +C integr_GeoPot :: option to select the way we integrate the geopotential +C (still a subject of discussions ...) +C selectFindRoSurf :: select the way surf. ref. pressure (=Ro_surf) is +C derived from the orography. Implemented: 0,1 (see INI_P_GROUND) + COMMON /PARM_ATM/ + & celsius2K, + & atm_Cp, atm_Rd, atm_kappa, atm_Rq, atm_Po, + & integr_GeoPot, selectFindRoSurf + _RL celsius2K + _RL atm_Po, atm_Cp, atm_Rd, atm_kappa, atm_Rq + INTEGER integr_GeoPot, selectFindRoSurf + +C Logical flags for selecting packages + LOGICAL useGAD + LOGICAL useOBCS + LOGICAL useSHAP_FILT + LOGICAL useZONAL_FILT + LOGICAL useOPPS + LOGICAL usePP81 + LOGICAL useKL10 + LOGICAL useMY82 + LOGICAL useGGL90 + LOGICAL useKPP + LOGICAL useGMRedi + LOGICAL useDOWN_SLOPE + LOGICAL useBBL + LOGICAL useCAL + LOGICAL useEXF + LOGICAL useBulkForce + LOGICAL useEBM + LOGICAL useCheapAML + LOGICAL useAUTODIFF + LOGICAL useGrdchk + LOGICAL useSMOOTH + LOGICAL usePROFILES + LOGICAL useECCO + LOGICAL useCTRL + LOGICAL useSBO + LOGICAL useFLT + LOGICAL usePTRACERS + LOGICAL useGCHEM + LOGICAL useRBCS + LOGICAL useOffLine + LOGICAL useMATRIX + LOGICAL useFRAZIL + LOGICAL useSEAICE + LOGICAL useSALT_PLUME + LOGICAL useShelfIce + LOGICAL useStreamIce + LOGICAL useICEFRONT + LOGICAL useThSIce + LOGICAL useLand + LOGICAL useATM2d + LOGICAL useAIM + LOGICAL useAtm_Phys + LOGICAL useFizhi + LOGICAL useGridAlt + LOGICAL useDiagnostics + LOGICAL useREGRID + LOGICAL useLayers + LOGICAL useMNC + LOGICAL useRunClock + LOGICAL useEMBED_FILES + LOGICAL useMYPACKAGE + COMMON /PARM_PACKAGES/ + & useGAD, useOBCS, useSHAP_FILT, useZONAL_FILT, + & useOPPS, usePP81, useKL10, useMY82, useGGL90, useKPP, + & useGMRedi, useBBL, useDOWN_SLOPE, + & useCAL, useEXF, useBulkForce, useEBM, useCheapAML, + & useGrdchk, useSMOOTH, usePROFILES, useECCO, useCTRL, + & useSBO, useFLT, useAUTODIFF, + & usePTRACERS, useGCHEM, useRBCS, useOffLine, useMATRIX, + & useFRAZIL, useSEAICE, useSALT_PLUME, useShelfIce, + & useStreamIce, useICEFRONT, useThSIce, useLand, + & useATM2D, useAIM, useAtm_Phys, useFizhi, useGridAlt, + & useDiagnostics, useREGRID, useLayers, useMNC, + & useRunClock, useEMBED_FILES, + & useMYPACKAGE + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: ***