--- MITgcm/model/inc/PARAMS.h 2006/02/10 07:50:37 1.177 +++ MITgcm/model/inc/PARAMS.h 2008/02/05 13:32:18 1.212 @@ -1,4 +1,4 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.177 2006/02/10 07:50:37 mlosch Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.212 2008/02/05 13:32:18 mlosch Exp $ C $Name: $ C @@ -36,37 +36,47 @@ PARAMETER ( UNSET_FLOAT8 = 1.234567D5 ) Real*4 UNSET_FLOAT4 PARAMETER ( UNSET_FLOAT4 = 1.234567E5 ) - _RL UNSET_RL + _RL UNSET_RL PARAMETER ( UNSET_RL = 1.234567D5 ) - _RS UNSET_RS + _RS UNSET_RS PARAMETER ( UNSET_RS = 1.234567E5 ) INTEGER UNSET_I PARAMETER ( UNSET_I = 123456789 ) -C Checkpoint data - INTEGER maxNoChkptLev - PARAMETER ( maxNoChkptLev = 2 ) - C-- COMMON /PARM_C/ Character valued parameters used by the model. -C checkPtSuff :: List of checkpoint file suffices +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 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 delRFile :: File containing vertical grid spacing delR (1.D array) +C delRcFile :: File containing vertical grid spacing delRc (1.D array) 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 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 shelfIceFile:: File containing the topography of the shelfice draught -C (unit=m) -C hydrogThetaFile :: File containing initial hydrographic data for potential -C temperature. -C hydrogSaltFile :: File containing initial hydrographic data for salinity. +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 shelfIceFile :: File containing the topography of the shelfice draught +C (unit=m) +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 zonalWindFile :: File containing zonal wind data C meridWindFile :: File containing meridional wind data -C thetaClimFile :: File containing theta climataology used +C thetaClimFile :: File containing surface theta climataology used C in relaxation term -lambda(theta-theta*) -C saltClimFile :: File containing salt climataology used +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) @@ -74,37 +84,46 @@ C surfQswFile :: File containing surface shortwave radiation C dQdTfile :: File containing thermal relaxation coefficient 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 eddyTauxFile :: File containing zonal Eddy stress data C eddyTauyFile :: File containing meridional Eddy stress data -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 the_run_name :: string identifying the name of the model "run" - COMMON /PARM_C/ checkPtSuff, + COMMON /PARM_C/ + & buoyancyRelation, eosType, + & pickupSuff, mdsioLocalDir, + & tRefFile, sRefFile, rhoRefFile, + & delRFile, delRcFile, & delXFile, delYFile, horizGridFile, & bathyFile, topoFile, shelfIceFile, - & hydrogThetaFile, hydrogSaltFile, + & hydrogThetaFile, hydrogSaltFile, diffKrFile, & zonalWindFile, meridWindFile, thetaClimFile, - & saltClimFile, buoyancyRelation, + & saltClimFile, & EmPmRfile, saltFluxFile, & surfQfile, surfQnetFile, surfQswFile, & lambdaThetaFile, lambdaSaltFile, & uVelInitFile, vVelInitFile, pSurfInitFile, & dQdTfile, ploadFile, & eddyTauxFile, eddyTauyFile, - & eosType, pickupSuff, - & mdsioLocalDir, & the_run_name - CHARACTER*(5) checkPtSuff(maxNoChkptLev) + CHARACTER*(MAX_LEN_FNAM) buoyancyRelation + CHARACTER*(6) eosType + CHARACTER*(10) pickupSuff + CHARACTER*(MAX_LEN_FNAM) mdsioLocalDir + CHARACTER*(MAX_LEN_FNAM) tRefFile + CHARACTER*(MAX_LEN_FNAM) sRefFile + CHARACTER*(MAX_LEN_FNAM) rhoRefFile + CHARACTER*(MAX_LEN_FNAM) delRFile + CHARACTER*(MAX_LEN_FNAM) delRcFile CHARACTER*(MAX_LEN_FNAM) delXFile CHARACTER*(MAX_LEN_FNAM) delYFile CHARACTER*(MAX_LEN_FNAM) horizGridFile CHARACTER*(MAX_LEN_FNAM) bathyFile, topoFile, shelfIceFile - CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile - CHARACTER*(MAX_LEN_FNAM) hydrogSaltFile + CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile, hydrogSaltFile + CHARACTER*(MAX_LEN_FNAM) diffKrFile CHARACTER*(MAX_LEN_FNAM) zonalWindFile CHARACTER*(MAX_LEN_FNAM) meridWindFile CHARACTER*(MAX_LEN_FNAM) thetaClimFile @@ -114,7 +133,6 @@ CHARACTER*(MAX_LEN_FNAM) surfQswFile CHARACTER*(MAX_LEN_FNAM) EmPmRfile CHARACTER*(MAX_LEN_FNAM) saltFluxFile - CHARACTER*(MAX_LEN_FNAM) buoyancyRelation CHARACTER*(MAX_LEN_FNAM) uVelInitFile CHARACTER*(MAX_LEN_FNAM) vVelInitFile CHARACTER*(MAX_LEN_FNAM) pSurfInitFile @@ -124,10 +142,7 @@ CHARACTER*(MAX_LEN_FNAM) eddyTauyFile CHARACTER*(MAX_LEN_FNAM) lambdaThetaFile CHARACTER*(MAX_LEN_FNAM) lambdaSaltFile - CHARACTER*(MAX_LEN_FNAM) mdsioLocalDir - CHARACTER*(MAX_LEN_FNAM) the_run_name - CHARACTER*(6) eosType - CHARACTER*(10) pickupSuff + 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 @@ -142,21 +157,24 @@ 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 writeStatePrec :: Precision used for writing model state. C writeBinaryPrec :: Precision used for writing binary files C readBinaryPrec :: Precision used for reading binary files -C nCheckLev :: Holds current checkpoint level 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 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 monitorSelect :: select group of variables to monitor +C =1 : dynvars ; =2 : + vort ; =3 : + surface C debugLevel :: debug level selector: higher -> more writing COMMON /PARM_I/ @@ -165,14 +183,14 @@ & cg3dMaxIters, & cg3dChkResFreq, & nIter0, nTimeSteps, nEndIter, - & numStepsPerPickup, - & writeStatePrec, nCheckLev, + & writeStatePrec, & writeBinaryPrec, readBinaryPrec, & nonlinFreeSurf, select_rStar, + & momForcingOutAB, tracForcingOutAB, & tempAdvScheme, tempVertAdvScheme, & saltAdvScheme, saltVertAdvScheme, & selectKEscheme, - & debugLevel + & monitorSelect, debugLevel INTEGER cg2dMaxIters INTEGER cg2dChkResFreq INTEGER cg2dPreCondFreq @@ -181,16 +199,16 @@ INTEGER nIter0 INTEGER nTimeSteps INTEGER nEndIter - INTEGER numStepsPerPickup INTEGER writeStatePrec INTEGER writeBinaryPrec INTEGER readBinaryPrec - INTEGER nCheckLev INTEGER nonlinFreeSurf INTEGER select_rStar + INTEGER momForcingOutAB, tracForcingOutAB INTEGER tempAdvScheme, tempVertAdvScheme INTEGER saltAdvScheme, saltVertAdvScheme - INTEGER selectKEscheme + INTEGER selectKEscheme + INTEGER monitorSelect INTEGER debugLevel C @@ -204,9 +222,11 @@ 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 usingSphericalPolarGrid :: If TRUE grid generation will be in a C spherical polar frame. C usingCylindricalGrid :: If TRUE grid generation will be Cylindrical +C usingCurvilinearGrid :: If TRUE, use a curvilinear grid (to be provided) +C deepAtmosphere :: deep model (drop the shallow-atmosphere approximation) C no_slip_sides :: Impose "no-slip" at lateral boundaries. C no_slip_bottom :: Impose "no-slip" at bottom boundary. C momViscosity :: Flag which turns momentum friction terms on and off. @@ -216,18 +236,17 @@ 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 usingSphericalPolarMTerms :: If TRUE use spherical polar metric terms. -C useNHMTerms :: If TRUE use non-hydrostatic metric terms. +C useNHMTerms :: If TRUE use non-hydrostatic metric terms. C useCoriolis :: Flag which turns the coriolis terms on 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 saltAdvection :: Flag which turns advection of salinity on +C saltAdvection :: Flag which turns advection of salinity on C and off. C saltForcing :: Flag which turns external forcing of salinity on C and off. -C useRealFreshWaterFlux :: if True (=Natural BCS), treats P+R-E flux +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 useFullLeith :: Set to true to use full Leith viscosity(may be unstable @@ -238,8 +257,11 @@ C rigidLid :: Set to true to use rigid lid C implicitFreeSurface :: Set to true to use implicit free surface 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 uniformLin_PhiSurf :: Set to true to use a uniform Bo_surf in the C linear relation Phi_surf = Bo_surf*eta +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 T,S Rho then U,V C momStepping :: Turns momentum equation time-stepping off @@ -248,6 +270,7 @@ C useConstantF :: Coriolis parameter set to f0 C useBetaPlaneF :: Coriolis parameter set to f0 + beta.y C useSphereF :: Coriolis parameter set to 2.omega.sin(phi) +C use3dCoriolis :: Turns the 3-D coriolis terms (in Omega.cos Phi) on - off C useCDscheme :: use CD-scheme to calculate Coriolis terms. C useJamartWetPoints :: Use wet-point method for Coriolis (Jamart and Ozer, 1986) C useJamartMomAdv :: Use wet-point method for V.I. non-linear term @@ -263,11 +286,14 @@ 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 forcing_In_AB :: if False, put forcing (Temp,Salt,Tracers) contribution +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 startFromPickupAB2 :: with AB-3 code, start from an AB-2 pickup +C apply AB on tracer tendencies (rather than on Tracer) +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 doThetaClimRelax :: Set true if relaxation to temperature C climatology is required. C doSaltClimRelax :: Set true if relaxation to salinity @@ -283,7 +309,8 @@ C is water C useDynP_inEos_Zc :: use the dynamical pressure in EOS (with Z-coord.) C this requires specific code for restart & exchange -C setCenterDr :: set cell Center depth and put Interface at the middle +C setInterFDr :: set Interface depth (put cell-Center at the middle) +C setCenterDr :: set cell-Center depth (put Interface at the middle) C nonHydrostatic :: Using non-hydrostatic terms C quasiHydrostatic :: Using non-hydrostatic terms in hydrostatic algorithm C globalFiles :: Selects between "global" and "tiled" files @@ -299,58 +326,60 @@ 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 calendarDumps :: When set, approximate months (30-31 days) and years (360-372 days) -C for parameters chkPtFreq, pChkPtFreq, taveFreq, SEAICE_taveFreq, -C KPP_taveFreq, and freq in pkg/diagnostics are converted to exact -C calendar months and years. Requires pkg/cal. -C dumpInitAndLast :: dumps model state to files at Initial (nIter0) +C dumpInitAndLast :: dumps model state to files at Initial (nIter0) C & Last iteration, in addition multiple of dumpFreq iter. 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 rotateGrid :: rotate grid coordinates to geographical coordinates +C according to Euler angles phiEuler, thetaEuler, psiEuler COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid, & usingCurvilinearGrid, usingCylindricalGrid, + & deepAtmosphere, setInterFDr, setCenterDr, & no_slip_sides,no_slip_bottom, - & momViscosity, momAdvection, momForcing, useCoriolis, + & momViscosity, momAdvection, momForcing, useCoriolis, & momPressureForcing, vectorInvariantMomentum, & tempAdvection, tempForcing, & saltAdvection, saltForcing, & useRealFreshWaterFlux, & useFullLeith, useStrainTensionVisc, & useAreaViscLength, - & rigidLid, implicitFreeSurface, exactConserv, uniformLin_PhiSurf, - & implicitIntGravWave, staggerTimeStep, + & rigidLid, implicitFreeSurface, exactConserv, linFSConserveTr, + & uniformLin_PhiSurf, + & use3Dsolver, implicitIntGravWave, staggerTimeStep, & momStepping, tempStepping, saltStepping, - & metricTerms, usingSphericalPolarMTerms, useNHMTerms, - & useConstantF, useBetaPlaneF, useSphereF, + & metricTerms, useNHMTerms, + & useConstantF, useBetaPlaneF, useSphereF, use3dCoriolis, & useCDscheme, & useEnergyConservingCoriolis, useJamartWetPoints, useJamartMomAdv, & SadournyCoriolis, upwindVorticity, highOrderVorticity, & useAbsVorticity, upwindShear, & implicitDiffusion, implicitViscosity, & tempImplVertAdv, saltImplVertAdv, momImplVertAdv, - & multiDimAdvection, useMultiDimAdvec, - & forcing_In_AB, doAB_onGtGs, - & doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax, - & periodicExternalForcing, + & multiDimAdvection, useMultiDimAdvec, + & momDissip_In_AB, doAB_onGtGs, + & doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax, + & periodicExternalForcing, & fluidIsAir, fluidIsWater, - & usingPCoords, usingZCoords, useDynP_inEos_Zc, setCenterDr, + & usingPCoords, usingZCoords, useDynP_inEos_Zc, & nonHydrostatic, quasiHydrostatic, globalFiles, useSingleCpuIO, & allowFreezing, useOldFreezing, - & usePickupBeforeC35, usePickupBeforeC54, startFromPickupAB2, + & pickupStrictlyMatch, usePickupBeforeC54, startFromPickupAB2, & pickup_read_mdsio, pickup_write_mdsio, pickup_write_immed, & timeave_mdsio, snapshot_mdsio, monitor_stdio, & outputTypesInclusive, dumpInitAndLast, debugMode, & inAdMode, inAdTrue, inAdFalse, inAdExact, - & calendarDumps, - & balanceEmPmR, balanceQnet, balancePrintMean + & balanceEmPmR, balanceQnet, balancePrintMean, + & rotateGrid LOGICAL usingCartesianGrid LOGICAL usingSphericalPolarGrid LOGICAL usingCylindricalGrid LOGICAL usingCurvilinearGrid - LOGICAL usingSphericalPolarMTerms + LOGICAL deepAtmosphere + LOGICAL setInterFDr + LOGICAL setCenterDr LOGICAL useNHMTerms LOGICAL no_slip_sides LOGICAL no_slip_bottom @@ -371,7 +400,9 @@ LOGICAL rigidLid LOGICAL implicitFreeSurface LOGICAL exactConserv + LOGICAL linFSConserveTr LOGICAL uniformLin_PhiSurf + LOGICAL use3Dsolver LOGICAL implicitIntGravWave LOGICAL staggerTimeStep LOGICAL momStepping @@ -381,6 +412,7 @@ LOGICAL useConstantF LOGICAL useBetaPlaneF LOGICAL useSphereF + LOGICAL use3dCoriolis LOGICAL useCDscheme LOGICAL useEnergyConservingCoriolis LOGICAL useJamartWetPoints @@ -392,12 +424,12 @@ LOGICAL upwindShear LOGICAL implicitDiffusion LOGICAL implicitViscosity - LOGICAL tempImplVertAdv - LOGICAL saltImplVertAdv + LOGICAL tempImplVertAdv + LOGICAL saltImplVertAdv LOGICAL momImplVertAdv LOGICAL multiDimAdvection LOGICAL useMultiDimAdvec - LOGICAL forcing_In_AB + LOGICAL momDissip_In_AB LOGICAL doAB_onGtGs LOGICAL doThetaClimRelax LOGICAL doSaltClimRelax @@ -408,14 +440,13 @@ LOGICAL usingPCoords LOGICAL usingZCoords LOGICAL useDynP_inEos_Zc - LOGICAL setCenterDr LOGICAL nonHydrostatic LOGICAL quasiHydrostatic LOGICAL globalFiles LOGICAL useSingleCpuIO LOGICAL allowFreezing LOGICAL useOldFreezing - LOGICAL usePickupBeforeC35 + LOGICAL pickupStrictlyMatch LOGICAL usePickupBeforeC54 LOGICAL startFromPickupAB2 LOGICAL dumpInitAndLast @@ -425,12 +456,13 @@ LOGICAL timeave_mdsio, snapshot_mdsio, monitor_stdio LOGICAL outputTypesInclusive LOGICAL inAdMode, inAdTrue, inAdFalse, inAdExact - LOGICAL calendarDumps LOGICAL balanceEmPmR LOGICAL balanceQnet LOGICAL balancePrintMean + LOGICAL rotateGrid + C-- COMMON /PARM_R/ "Real" valued parameters used by the model. C cg2dTargetResidual C :: Target residual for cg2d solver; no unit (RHS normalisation) @@ -460,20 +492,36 @@ C recip_gravity and its inverse C gBaro :: Accel. due to gravity used in barotropic equation ( m/s^2 ) C rhoNil :: Reference density for the linear equation of state -C rhoConst :: Vertically constant reference density +C rhoConst :: Vertically constant reference density +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 tRef :: reference vertical profile for potential temperature -C sRef :: reference vertical profile for salinity/specific humidity -C phiRef :: reference potential (pressure/rho, geopotential) profile +C sRef :: reference vertical profile for salinity/specific humidity +C phiRef :: reference potential (pressure/rho, geopotential) profile C dBdrRef :: vertical gradient of reference boyancy [(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 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 recip_RSphere :: Reciprocal radius of sphere ( m ). +C recip_rSphere :: Reciprocal radius of sphere ( m ). C f0 :: Reference coriolis parameter ( 1/s ) C ( Southern edge f for beta plane ) C beta :: df/dy ( s^-1.m^-1 ) @@ -484,6 +532,7 @@ C viscAhW :: Eddy viscosity coeff. for mixing of vertical C momentum laterally, no effect for hydrostatic C model, defaults to viscAh if unset ( m^2/s ) +C Not used if variable horiz. viscosity is used. C viscAr :: Eddy viscosity coeff. for mixing of C momentum vertically ( units of r^2/s ) C viscA4 :: Biharmonic viscosity coeff. for mixing of @@ -491,6 +540,7 @@ C viscA4W :: Biharmonic viscosity coeff. for mixing of vertical C momentum laterally, no effect for hydrostatic C model, defaults to viscA4 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 @@ -535,6 +585,12 @@ 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 @@ -601,18 +657,24 @@ 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 horiVertRatio :: Ratio on units in vertical to units in horizontal. -C recip_horiVertRatio ( 1 if horiz in m and vertical in m ). -C ( g*rho if horiz in m and vertical in Pa ). -C Ro_SeaLevel :: standard position of Sea-Level in "R" coordinate, used as -C starting value (k=1) for vertical coordinate (rf(1)=Ro_SeaLevel) +C hMixCrit :: criteria for mixed-layer diagnostic +C ivdc_kappa :: implicit vertical diffusivity for convection [m^2/s] +C Ro_SeaLevel :: standard position of Sea-Level in "R" coordinate, used as +C starting value (k=1) for vertical coordinate (rf(1)=Ro_SeaLevel) C sideDragFactor :: side-drag scaling factor (used only if no_slip_sides) C (default=2: full drag ; =1: gives half-slip BC) -C bottomDragLinear :: Drag coefficient built in to core dynamics -C bottomDragQuadratic ( linear: 1/s, quadratic: 1/m ) +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) - COMMON /PARM_R/ cg2dTargetResidual, cg2dTargetResWunit, +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, delX, delY, & deltaT, deltaTmom, dTtracerLev, deltaTfreesurf, deltaTClock, @@ -623,33 +685,37 @@ & viscC2leith, viscC2leithD, & viscC2smag, viscC4smag, & viscAhD, viscAhZ, viscA4D, viscA4Z, - & viscA4, viscA4W, + & viscA4, viscA4W, & viscA4Max, viscA4Grid, viscA4GridMax, viscA4GridMin, & viscAhRemax, viscA4Remax, & viscC4leith, viscC4leithD, viscAr, & diffKhT, diffK4T, diffKrNrT, & diffKhS, diffK4S, diffKrNrS, & diffKrBL79surf, diffKrBL79deep, diffKrBL79scl, diffKrBL79Ho, + & BL79LatVary, + & diffKrBLEQsurf, diffKrBLEQdeep, diffKrBLEQscl, diffKrBLEQHo, & delT, tauCD, rCD, freeSurfFac, implicSurfPress, implicDiv2Dflow, & hFacMin, hFacMinDz, hFacInf, hFacSup, - & gravity, recip_Gravity, gBaro, rhonil, recip_rhonil, - & recip_rhoConst, rhoConst, - & rhoConstFresh, convertEmP2rUnit, tRef, sRef, phiRef, dBdrRef, - & baseTime, startTime, endTime, - & chkPtFreq, pchkPtFreq, dumpFreq, adjDumpFreq, + & gravity, recip_gravity, gBaro, + & rhonil, recip_rhonil, rhoConst, recip_rhoConst, + & rhoFacC, recip_rhoFacC, rhoFacF, recip_rhoFacF, + & rhoConstFresh, tRef, sRef, 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, omega, rotationPeriod, - & tauThetaClimRelax, tauThetaClimRelax3Dim, - & tauSaltClimRelax, tauSaltClimRelax3Dim, + & tauThetaClimRelax, tauSaltClimRelax, & tauTr1ClimRelax, lambdaTr1ClimRelax, latBandClimRelax, & externForcingCycle, externForcingPeriod, & convertFW2Salt, temp_EvPrRn, salt_EvPrRn, & hFacMinDr, hFacMinDp, - & horiVertRatio, recip_horiVertRatio, - & ivdc_kappa, Ro_SeaLevel, + & ivdc_kappa, hMixCriteria, Ro_SeaLevel, & sideDragFactor, bottomDragLinear, bottomDragQuadratic, nh_Am2, - & tCylIn, tCylOut + & smoothAbsFuncRange, + & tCylIn, tCylOut, + & phiEuler, thetaEuler, psiEuler _RL cg2dTargetResidual _RL cg2dTargetResWunit @@ -668,7 +734,7 @@ _RL phiMin _RL thetaMin _RL rSphere - _RL recip_RSphere + _RL recip_rSphere _RL f0 _RL freeSurfFac _RL implicSurfPress @@ -694,7 +760,7 @@ _RL viscC2smag _RL viscC4smag _RL viscAr - _RL viscA4 + _RL viscA4 _RL viscA4W _RL viscA4D _RL viscA4Z @@ -703,32 +769,38 @@ _RL viscA4Grid, viscA4GridMax, viscA4GridMin _RL viscC4leith _RL viscC4leithD - _RL diffKhT + _RL diffKhT _RL diffKrNrT(Nr) - _RL diffK4T - _RL diffKhS + _RL diffK4T + _RL diffKhS _RL diffKrNrS(Nr) - _RL diffK4S + _RL diffK4S _RL diffKrBL79surf _RL diffKrBL79deep _RL diffKrBL79scl _RL diffKrBL79Ho + _RL BL79LatVary + _RL diffKrBLEQsurf + _RL diffKrBLEQdeep + _RL diffKrBLEQscl + _RL diffKrBLEQHo _RL delt _RL tauCD _RL rCD _RL gravity _RL recip_gravity _RL gBaro - _RL rhonil - _RL recip_rhonil - _RL rhoConst - _RL recip_rhoConst + _RL rhonil, recip_rhonil + _RL rhoConst, recip_rhoConst + _RL rhoFacC(Nr), recip_rhoFacC(Nr) + _RL rhoFacF(Nr+1), recip_rhoFacF(Nr+1) _RL rhoConstFresh - _RL convertEmP2rUnit _RL tRef(Nr) _RL sRef(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 @@ -746,15 +818,13 @@ _RL pfFacMom _RL cfFacMom _RL foFacMom - _RL mTFacMom + _RL mtFacMom _RL cosPower _RL cAdjFreq _RL omega _RL rotationPeriod _RL tauThetaClimRelax _RL tauSaltClimRelax - _RL tauThetaClimRelax3Dim - _RL tauSaltClimRelax3Dim _RL tauTr1ClimRelax _RL lambdaTr1ClimRelax _RL latBandClimRelax @@ -763,16 +833,17 @@ _RL convertFW2Salt _RL temp_EvPrRn _RL salt_EvPrRn - _RL horiVertRatio - _RL recip_horiVertRatio _RL ivdc_kappa + _RL hMixCriteria _RL Ro_SeaLevel _RL sideDragFactor _RL bottomDragLinear _RL bottomDragQuadratic + _RL smoothAbsFuncRange _RL nh_Am2 _RL tCylIn _RL tCylOut + _RL phiEuler, thetaEuler, psiEuler C-- COMMON /PARM_A/ Thermodynamics constants ? COMMON /PARM_A/ HeatCapacity_Cp,recip_Cp @@ -791,7 +862,7 @@ 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/ + COMMON /PARM_ATM/ & celsius2K, & atm_Cp, atm_Rd, atm_kappa, atm_Rq, atm_Po, & integr_GeoPot, selectFindRoSurf @@ -805,10 +876,14 @@ LOGICAL useMY82 LOGICAL useGGL90 LOGICAL useKPP + LOGICAL useGAD LOGICAL useGMRedi LOGICAL useOBCS LOGICAL useAIM LOGICAL useLand + LOGICAL useCAL + LOGICAL useEXF + LOGICAL useEBM LOGICAL useGrdchk LOGICAL useECCO LOGICAL useSHAP_FILT @@ -817,27 +892,33 @@ LOGICAL usePTRACERS LOGICAL useGCHEM LOGICAL useRBCS + LOGICAL useOffLine + LOGICAL useMATRIX LOGICAL useSBO LOGICAL useSEAICE LOGICAL useShelfIce - LOGICAL useBulkForce LOGICAL useThSIce + LOGICAL useATM2d + LOGICAL useBulkForce LOGICAL usefizhi LOGICAL usegridalt - LOGICAL usediagnostics - LOGICAL useEBM + LOGICAL useDiagnostics LOGICAL useMNC - LOGICAL useMATRIX + LOGICAL useREGRID LOGICAL useRunClock LOGICAL useEMBED_FILES + LOGICAL useMYPACKAGE + LOGICAL useSALT_PLUME COMMON /PARM_PACKAGES/ - & useKPP, useGMRedi, useOBCS, useAIM, useLand, useECCO, - & useSHAP_FILT, useZONAL_FILT, useGrdchk, useFLT, - & usePTRACERS, useGCHEM, useRBCS, - & useSBO, useSEAICE, useShelfIce, useThSIce, useBulkForce, - & usefizhi, usegridalt, usediagnostics, useEBM, useMNC, - & usePP81, useMY82, useOPPS, useGGL90, useMATRIX, - & useRunClock, useEMBED_FILES + & useOPPS, usePP81, useMY82, useGGL90, useKPP, + & useGAD, useGMRedi, useOBCS, useAIM, useLand, + & useCAL, useEXF, useEBM, useGrdchk, useECCO, + & useSHAP_FILT, useZONAL_FILT, useFLT, + & usePTRACERS, useGCHEM, useRBCS, useOffLine, useMATRIX, + & useSBO, useSEAICE, useShelfIce, + & useThSIce, useATM2D, useBulkForce, + & usefizhi, usegridalt, useDiagnostics, useMNC, useREGRID, + & useRunClock, useEMBED_FILES, useMYPACKAGE, useSALT_PLUME CEH3 ;;; Local Variables: *** CEH3 ;;; mode:fortran ***