--- MITgcm/model/inc/PARAMS.h 2012/06/30 01:23:05 1.263 +++ MITgcm/model/inc/PARAMS.h 2016/02/15 17:59:02 1.282 @@ -1,4 +1,4 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.263 2012/06/30 01:23:05 gforget Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.282 2016/02/15 17:59:02 jmc Exp $ C $Name: $ C @@ -14,9 +14,6 @@ CEOP -C Macros for special grid options -#include "PARAMS_MACROS.h" - C-- Contants C Useful physical values Real*8 PI @@ -41,6 +38,7 @@ 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) @@ -52,6 +50,9 @@ 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) @@ -71,23 +72,23 @@ C (old version, kept for backward compatibility) C surfQnetFile :: File containing surface net heat flux 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 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, + & tRefFile, sRefFile, rhoRefFile, gravityFile, & delRFile, delRcFile, hybSigmFile, & delXFile, delYFile, horizGridFile, - & bathyFile, topoFile, + & bathyFile, topoFile, addWwallFile, addSwallFile, & viscAhDfile, viscAhZfile, & viscA4Dfile, viscA4Zfile, & hydrogThetaFile, hydrogSaltFile, diffKrFile, @@ -97,8 +98,8 @@ & surfQfile, surfQnetFile, surfQswFile, & lambdaThetaFile, lambdaSaltFile, & uVelInitFile, vVelInitFile, pSurfInitFile, - & dQdTfile, ploadFile, - & eddyPsiXFile, eddyPsiYFile, + & pLoadFile, addMassFile, + & eddyPsiXFile, eddyPsiYFile, geothermalFile, & the_run_name CHARACTER*(MAX_LEN_FNAM) buoyancyRelation CHARACTER*(6) eosType @@ -108,6 +109,7 @@ 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 @@ -115,6 +117,7 @@ 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 @@ -133,10 +136,11 @@ CHARACTER*(MAX_LEN_FNAM) uVelInitFile CHARACTER*(MAX_LEN_FNAM) vVelInitFile CHARACTER*(MAX_LEN_FNAM) pSurfInitFile - CHARACTER*(MAX_LEN_FNAM) dQdTfile - CHARACTER*(MAX_LEN_FNAM) ploadFile + 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 @@ -148,6 +152,8 @@ 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 @@ -155,6 +161,7 @@ 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 writeStatePrec :: Precision used for writing model state. C writeBinaryPrec :: Precision used for writing binary files C readBinaryPrec :: Precision used for reading binary files @@ -170,6 +177,11 @@ 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) @@ -183,36 +195,44 @@ 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 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 COMMON /PARM_I/ - & cg2dMaxIters, cg2dChkResFreq, cg2dPreCondFreq, + & cg2dMaxIters, cg2dChkResFreq, + & cg2dPreCondFreq, cg2dUseMinResSol, & cg3dMaxIters, cg3dChkResFreq, & printResidualFreq, - & nIter0, nTimeSteps, nEndIter, + & nIter0, nTimeSteps, nTimeSteps_l2, nEndIter, & writeStatePrec, & writeBinaryPrec, readBinaryPrec, & selectCoriMap, & selectSigmaCoord, & nonlinFreeSurf, select_rStar, - & selectNHfreeSurf, + & selectNHfreeSurf, selectP_inEOS_Zc, & selectAddFluid, & momForcingOutAB, tracForcingOutAB, & tempAdvScheme, tempVertAdvScheme, & saltAdvScheme, saltVertAdvScheme, & selectKEscheme, selectVortScheme, + & selectBotDragQuadr, & monitorSelect, debugLevel INTEGER cg2dMaxIters INTEGER cg2dChkResFreq INTEGER cg2dPreCondFreq + INTEGER cg2dUseMinResSol INTEGER cg3dMaxIters INTEGER cg3dChkResFreq INTEGER printResidualFreq INTEGER nIter0 INTEGER nTimeSteps + INTEGER nTimeSteps_l2 INTEGER nEndIter INTEGER writeStatePrec INTEGER writeBinaryPrec @@ -222,12 +242,14 @@ INTEGER nonlinFreeSurf INTEGER select_rStar INTEGER selectNHfreeSurf + INTEGER selectP_inEOS_Zc INTEGER selectAddFluid INTEGER momForcingOutAB, tracForcingOutAB INTEGER tempAdvScheme, tempVertAdvScheme INTEGER saltAdvScheme, saltVertAdvScheme INTEGER selectKEscheme INTEGER selectVortScheme + INTEGER selectBotDragQuadr INTEGER monitorSelect INTEGER debugLevel @@ -241,22 +263,23 @@ 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 useDynP_inEos_Zc :: use the dynamical pressure in EOS (with Z-coord.) -C this requires specific code for restart & exchange 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 usingCurvilinearGrid :: If TRUE, use a curvilinear grid (to be provided) 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 @@ -280,22 +303,21 @@ 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 upwindShear :: use 1rst order upwind interp. (V.I., vertical advection) C momStepping :: Turns momentum equation time-stepping off -C calc_wVelocity :: Turns of vertical velocity calculation off +C calc_wVelocity :: Turns vertical velocity calculation off C- Temp. & Salt params: -C tempStepping :: Turns temperature equation time-stepping off -C saltStepping :: Turns salinity equation time-stepping off +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 -C and off. +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 -C and off. +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. @@ -316,17 +338,21 @@ 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 implBottomFriction :: Turns on implicit bottom friction (drag & no-slip BC) +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 @@ -344,7 +370,6 @@ 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 useOldFreezing :: use the old version (before checkpoint52a_pre, 2003-11-12) C periodicExternalForcing :: Set true if forcing is time-dependant C- I/O parameters - C globalFiles :: Selects between "global" and "tiled" files. @@ -368,11 +393,11 @@ COMMON /PARM_L/ & fluidIsAir, fluidIsWater, - & usingPCoords, usingZCoords, useDynP_inEos_Zc, + & usingPCoords, usingZCoords, & usingCartesianGrid, usingSphericalPolarGrid, rotateGrid, - & usingCurvilinearGrid, usingCylindricalGrid, + & usingCylindricalGrid, usingCurvilinearGrid, hasWetCSCorners, & deepAtmosphere, setInterFDr, setCenterDr, - & no_slip_sides, no_slip_bottom, + & no_slip_sides, no_slip_bottom, bottomVisc_pCell, useSmag3D, & useFullLeith, useStrainTensionVisc, useAreaViscLength, & momViscosity, momAdvection, momForcing, & momPressureForcing, metricTerms, useNHMTerms, @@ -382,6 +407,7 @@ & upwindVorticity, highOrderVorticity, & useAbsVorticity, upwindShear, & momStepping, calc_wVelocity, tempStepping, saltStepping, + & addFrictionHeating, & tempAdvection, tempVertDiff4, tempIsActiveTr, tempForcing, & saltAdvection, saltVertDiff4, saltIsActiveTr, saltForcing, & maskIniTemp, maskIniSalt, checkIniTemp, checkIniSalt, @@ -389,16 +415,17 @@ & rigidLid, implicitFreeSurface, & uniformLin_PhiSurf, uniformFreeSurfLev, & exactConserv, linFSConserveTr, useRealFreshWaterFlux, - & quasiHydrostatic, nonHydrostatic, use3Dsolver, - & implicitIntGravWave, staggerTimeStep, doResetHFactors, - & implicitDiffusion, implicitViscosity, + & storePhiHyd4Phys, quasiHydrostatic, nonHydrostatic, + & use3Dsolver, implicitIntGravWave, staggerTimeStep, + & applyExchUV_early, doResetHFactors, + & implicitDiffusion, implicitViscosity, implBottomFriction, & tempImplVertAdv, saltImplVertAdv, momImplVertAdv, & multiDimAdvection, useMultiDimAdvec, & momDissip_In_AB, doAB_onGtGs, & balanceEmPmR, balanceQnet, balancePrintMean, & balanceThetaClimRelax, balanceSaltClimRelax, & doThetaClimRelax, doSaltClimRelax, - & allowFreezing, useOldFreezing, + & allowFreezing, & periodicExternalForcing, & globalFiles, & pickupStrictlyMatch, usePickupBeforeC54, startFromPickupAB2, @@ -406,24 +433,24 @@ & writePickupAtEnd, & timeave_mdsio, snapshot_mdsio, monitor_stdio, & outputTypesInclusive, dumpInitAndLast, - & printDomain, - & inAdMode, inAdTrue, inAdFalse, inAdExact + & printDomain LOGICAL fluidIsAir LOGICAL fluidIsWater LOGICAL usingPCoords LOGICAL usingZCoords - LOGICAL useDynP_inEos_Zc LOGICAL usingCartesianGrid LOGICAL usingSphericalPolarGrid, rotateGrid LOGICAL usingCylindricalGrid - LOGICAL usingCurvilinearGrid + LOGICAL usingCurvilinearGrid, hasWetCSCorners LOGICAL deepAtmosphere LOGICAL setInterFDr LOGICAL setCenterDr - LOGICAL useNHMTerms + LOGICAL no_slip_sides LOGICAL no_slip_bottom + LOGICAL bottomVisc_pCell + LOGICAL useSmag3D LOGICAL useFullLeith LOGICAL useStrainTensionVisc LOGICAL useAreaViscLength @@ -431,8 +458,25 @@ LOGICAL momAdvection LOGICAL momForcing LOGICAL momPressureForcing + LOGICAL metricTerms + LOGICAL useNHMTerms + LOGICAL useCoriolis + 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 @@ -453,28 +497,17 @@ LOGICAL exactConserv LOGICAL linFSConserveTr LOGICAL useRealFreshWaterFlux + LOGICAL storePhiHyd4Phys LOGICAL quasiHydrostatic LOGICAL nonHydrostatic LOGICAL use3Dsolver LOGICAL implicitIntGravWave LOGICAL staggerTimeStep + LOGICAL applyExchUV_early LOGICAL doResetHFactors - LOGICAL momStepping - LOGICAL calc_wVelocity - LOGICAL tempStepping - LOGICAL saltStepping - LOGICAL metricTerms - LOGICAL use3dCoriolis - LOGICAL useCDscheme - LOGICAL useEnergyConservingCoriolis - LOGICAL useJamartWetPoints - LOGICAL useJamartMomAdv - LOGICAL upwindVorticity - LOGICAL highOrderVorticity - LOGICAL useAbsVorticity - LOGICAL upwindShear LOGICAL implicitDiffusion LOGICAL implicitViscosity + LOGICAL implBottomFriction LOGICAL tempImplVertAdv LOGICAL saltImplVertAdv LOGICAL momImplVertAdv @@ -490,7 +523,6 @@ LOGICAL balanceThetaClimRelax LOGICAL balanceSaltClimRelax LOGICAL allowFreezing - LOGICAL useOldFreezing LOGICAL periodicExternalForcing LOGICAL globalFiles LOGICAL pickupStrictlyMatch @@ -502,7 +534,6 @@ LOGICAL outputTypesInclusive LOGICAL dumpInitAndLast LOGICAL printDomain - LOGICAL inAdMode, inAdTrue, inAdFalse, inAdExact C-- COMMON /PARM_R/ "Real" valued parameters used by the model. C cg2dTargetResidual @@ -534,21 +565,29 @@ 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 gravity :: Accel. due to gravity ( m/s^2 ) -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 (Boussinesq) -C rhoFacC :: normalized (by rhoConst) reference density at cell-Center -C rhoFacF :: normalized (by rhoConst) reference density at cell-interFace +C Ro_SeaLevel :: Origin of the vertical R-coords axis (often at sea-level) +C :: corresponding to rF(k=1) +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 rho1Ref :: reference vertical profile for density -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 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 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 phi0Ref :: reference [pressure/geo] potential at origin r = rF(1) +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 @@ -564,7 +603,7 @@ C :: z-coord: = rhoConst ( [m] * rho = [kg/m2] ) ; C :: p-coord: = 1/gravity ( [Pa] / g = [kg/m2] ) ; 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^-1 ). C radius_fromHorizGrid :: sphere Radius of input horiz. grid (Curvilinear Grid) C f0 :: Reference coriolis parameter ( 1/s ) C ( Southern edge f for beta plane ) @@ -579,13 +618,13 @@ 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 viscAh if unset ( m^2/s ) +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 viscA4 if unset ( m^2/s ) +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 ) @@ -595,6 +634,7 @@ 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)) @@ -650,7 +690,7 @@ 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 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 @@ -716,9 +756,6 @@ 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 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 rSigmaBnd :: vertical position (in r-unit) of r/sigma transition (Hybrid-Sigma) 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) @@ -729,18 +766,20 @@ 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, - & deltaT, deltaTmom, dTtracerLev, deltaTfreesurf, deltaTClock, + & delR, delRc, xgOrigin, ygOrigin, Ro_SeaLevel, rSigmaBnd, + & deltaT, deltaTMom, dTtracerLev, deltaTFreeSurf, deltaTClock, & abEps, alph_AB, beta_AB, & rSphere, recip_rSphere, radius_fromHorizGrid, & f0, beta, fPrime, omega, rotationPeriod, - & viscFacAdj, viscAh, viscAhW, viscAhMax, - & viscAhGrid, viscAhGridMax, viscAhGridMin, + & viscFacAdj, viscAh, viscAhW, smag3D_coeff, + & viscAhMax, viscAhGrid, viscAhGridMax, viscAhGridMin, & viscC2leith, viscC2leithD, & viscC2smag, viscC4smag, & viscAhD, viscAhZ, viscA4D, viscA4Z, @@ -757,9 +796,10 @@ & freeSurfFac, implicSurfPress, implicDiv2Dflow, implicitNHPress, & hFacMin, hFacMinDz, hFacInf, hFacSup, & gravity, recip_gravity, gBaro, - & rhoNil, rhoConst, recip_rhoConst, - & rhoFacC, recip_rhoFacC, rhoFacF, recip_rhoFacF, - & rhoConstFresh, rho1Ref, tRef, sRef, phiRef, dBdrRef, + & gravFacC, recip_gravFacC, gravFacF, recip_gravFacF, + & rhoNil, rhoConst, recip_rhoConst, rho1Ref, + & rhoFacC, recip_rhoFacC, rhoFacF, recip_rhoFacF, rhoConstFresh, + & thetaConst, tRef, sRef, pRef4EOS, phiRef, phi0Ref, dBdrRef, & rVel2wUnit, wUnit2rVel, mass2rUnit, rUnit2mass, & baseTime, startTime, endTime, & chkPtFreq, pChkPtFreq, dumpFreq, adjDumpFreq, @@ -771,7 +811,6 @@ & convertFW2Salt, temp_EvPrRn, salt_EvPrRn, & temp_addMass, salt_addMass, hFacMinDr, hFacMinDp, & ivdc_kappa, hMixCriteria, dRhoSmall, hMixSmooth, - & Ro_SeaLevel, rSigmaBnd, & sideDragFactor, bottomDragLinear, bottomDragQuadratic, nh_Am2, & smoothAbsFuncRange, & tCylIn, tCylOut, @@ -785,11 +824,13 @@ _RL delRc(Nr+1) _RL xgOrigin _RL ygOrigin + _RL Ro_SeaLevel + _RL rSigmaBnd _RL deltaT _RL deltaTClock - _RL deltaTmom + _RL deltaTMom _RL dTtracerLev(Nr) - _RL deltaTfreesurf + _RL deltaTFreeSurf _RL abEps, alph_AB, beta_AB _RL rSphere _RL recip_rSphere @@ -815,6 +856,7 @@ _RL viscAhW _RL viscAhD _RL viscAhZ + _RL smag3D_coeff _RL viscAhMax _RL viscAhReMax _RL viscAhGrid, viscAhGridMax, viscAhGridMin @@ -849,18 +891,22 @@ _RL diffKrBLEQscl _RL diffKrBLEQHo _RL tauCD, rCD, epsAB_CD - _RL gravity - _RL recip_gravity + _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 rho1Ref(Nr) + _RL thetaConst _RL tRef(Nr) _RL sRef(Nr) + _RL pRef4EOS(Nr) _RL phiRef(2*Nr+1) + _RL phi0Ref _RL dBdrRef(Nr) _RL rVel2wUnit(Nr+1), wUnit2rVel(Nr+1) _RL mass2rUnit, rUnit2mass @@ -898,21 +944,17 @@ _RL hMixCriteria _RL dRhoSmall _RL hMixSmooth - _RL Ro_SeaLevel - _RL rSigmaBnd _RL sideDragFactor _RL bottomDragLinear _RL bottomDragQuadratic _RL smoothAbsFuncRange _RL nh_Am2 - _RL tCylIn - _RL tCylOut + _RL tCylIn, tCylOut _RL phiEuler, thetaEuler, psiEuler C-- COMMON /PARM_A/ Thermodynamics constants ? - COMMON /PARM_A/ HeatCapacity_Cp,recip_Cp + COMMON /PARM_A/ HeatCapacity_Cp _RL HeatCapacity_Cp - _RL recip_Cp C-- COMMON /PARM_ATM/ Atmospheric physical parameters (Ideal Gas EOS, ...) C celsius2K :: convert centigrade (Celsius) degree to Kelvin @@ -941,6 +983,7 @@ LOGICAL useZONAL_FILT LOGICAL useOPPS LOGICAL usePP81 + LOGICAL useKL10 LOGICAL useMY82 LOGICAL useGGL90 LOGICAL useKPP @@ -952,10 +995,12 @@ LOGICAL useBulkForce LOGICAL useEBM LOGICAL useCheapAML + LOGICAL useAUTODIFF LOGICAL useGrdchk LOGICAL useSMOOTH LOGICAL usePROFILES LOGICAL useECCO + LOGICAL useCTRL LOGICAL useSBO LOGICAL useFLT LOGICAL usePTRACERS @@ -970,9 +1015,10 @@ LOGICAL useStreamIce LOGICAL useICEFRONT LOGICAL useThSIce + LOGICAL useLand LOGICAL useATM2d LOGICAL useAIM - LOGICAL useLand + LOGICAL useAtm_Phys LOGICAL useFizhi LOGICAL useGridAlt LOGICAL useDiagnostics @@ -984,27 +1030,19 @@ LOGICAL useMYPACKAGE COMMON /PARM_PACKAGES/ & useGAD, useOBCS, useSHAP_FILT, useZONAL_FILT, - & useOPPS, usePP81, useMY82, useGGL90, useKPP, + & useOPPS, usePP81, useKL10, useMY82, useGGL90, useKPP, & useGMRedi, useBBL, useDOWN_SLOPE, & useCAL, useEXF, useBulkForce, useEBM, useCheapAML, - & useGrdchk,useSMOOTH,usePROFILES,useECCO,useSBO, useFLT, + & useGrdchk, useSMOOTH, usePROFILES, useECCO, useCTRL, + & useSBO, useFLT, useAUTODIFF, & usePTRACERS, useGCHEM, useRBCS, useOffLine, useMATRIX, & useFRAZIL, useSEAICE, useSALT_PLUME, useShelfIce, - & useStreamIce, useICEFRONT, useThSIce, - & useATM2D, useAIM, useLand, useFizhi, useGridAlt, + & useStreamIce, useICEFRONT, useThSIce, useLand, + & useATM2D, useAIM, useAtm_Phys, useFizhi, useGridAlt, & useDiagnostics, useREGRID, useLayers, useMNC, & useRunClock, useEMBED_FILES, & useMYPACKAGE -C Logical flags for turning off parts of the code in adjoint mode - LOGICAL useKPPinAdMode, useKPPinFwdMode - LOGICAL useGMrediInAdMode, useGMrediInFwdMode - LOGICAL useSEAICEinAdMode, useSEAICEinFwdMode - COMMON /PARM_PACKAGES_ADJ/ - & useKPPinAdMode, useKPPinFwdMode, - & useGMrediInAdMode, useGMrediInFwdMode, - & useSEAICEinAdMode, useSEAICEinFwdMode - CEH3 ;;; Local Variables: *** CEH3 ;;; mode:fortran *** CEH3 ;;; End: ***