--- MITgcm/model/inc/PARAMS.h 2012/07/13 20:34:31 1.265 +++ MITgcm/model/inc/PARAMS.h 2014/08/07 18:43:33 1.276 @@ -1,4 +1,4 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.265 2012/07/13 20:34:31 jmc Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.276 2014/08/07 18:43:33 heimbach 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 @@ -52,6 +49,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,13 +71,13 @@ 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" @@ -87,7 +87,7 @@ & tRefFile, sRefFile, rhoRefFile, & delRFile, delRcFile, hybSigmFile, & delXFile, delYFile, horizGridFile, - & bathyFile, topoFile, + & bathyFile, topoFile, addWwallFile, addSwallFile, & viscAhDfile, viscAhZfile, & viscA4Dfile, viscA4Zfile, & hydrogThetaFile, hydrogSaltFile, diffKrFile, @@ -97,8 +97,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 @@ -115,6 +115,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 +134,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 +150,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 @@ -189,7 +193,8 @@ C and statistics ; higher -> more writing COMMON /PARM_I/ - & cg2dMaxIters, cg2dChkResFreq, cg2dPreCondFreq, + & cg2dMaxIters, cg2dChkResFreq, + & cg2dPreCondFreq, cg2dUseMinResSol, & cg3dMaxIters, cg3dChkResFreq, & printResidualFreq, & nIter0, nTimeSteps, nEndIter, @@ -208,6 +213,7 @@ INTEGER cg2dMaxIters INTEGER cg2dChkResFreq INTEGER cg2dPreCondFreq + INTEGER cg2dUseMinResSol INTEGER cg3dMaxIters INTEGER cg3dChkResFreq INTEGER printResidualFreq @@ -258,6 +264,7 @@ C- Momentum params: C no_slip_sides :: Impose "no-slip" at lateral boundaries. C no_slip_bottom :: Impose "no-slip" at bottom boundary. +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 @@ -285,18 +292,17 @@ C momStepping :: Turns momentum equation time-stepping off C calc_wVelocity :: Turns of 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. @@ -345,7 +351,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. @@ -373,7 +378,7 @@ & usingCartesianGrid, usingSphericalPolarGrid, rotateGrid, & usingCylindricalGrid, usingCurvilinearGrid, hasWetCSCorners, & deepAtmosphere, setInterFDr, setCenterDr, - & no_slip_sides, no_slip_bottom, + & no_slip_sides, no_slip_bottom, useSmag3D, & useFullLeith, useStrainTensionVisc, useAreaViscLength, & momViscosity, momAdvection, momForcing, & momPressureForcing, metricTerms, useNHMTerms, @@ -383,6 +388,7 @@ & upwindVorticity, highOrderVorticity, & useAbsVorticity, upwindShear, & momStepping, calc_wVelocity, tempStepping, saltStepping, + & addFrictionHeating, & tempAdvection, tempVertDiff4, tempIsActiveTr, tempForcing, & saltAdvection, saltVertDiff4, saltIsActiveTr, saltForcing, & maskIniTemp, maskIniSalt, checkIniTemp, checkIniSalt, @@ -399,7 +405,7 @@ & balanceEmPmR, balanceQnet, balancePrintMean, & balanceThetaClimRelax, balanceSaltClimRelax, & doThetaClimRelax, doSaltClimRelax, - & allowFreezing, useOldFreezing, + & allowFreezing, & periodicExternalForcing, & globalFiles, & pickupStrictlyMatch, usePickupBeforeC54, startFromPickupAB2, @@ -421,9 +427,10 @@ LOGICAL deepAtmosphere LOGICAL setInterFDr LOGICAL setCenterDr - LOGICAL useNHMTerms + LOGICAL no_slip_sides LOGICAL no_slip_bottom + LOGICAL useSmag3D LOGICAL useFullLeith LOGICAL useStrainTensionVisc LOGICAL useAreaViscLength @@ -431,8 +438,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 @@ -459,20 +483,6 @@ LOGICAL implicitIntGravWave LOGICAL staggerTimeStep 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 tempImplVertAdv @@ -490,7 +500,6 @@ LOGICAL balanceThetaClimRelax LOGICAL balanceSaltClimRelax LOGICAL allowFreezing - LOGICAL useOldFreezing LOGICAL periodicExternalForcing LOGICAL globalFiles LOGICAL pickupStrictlyMatch @@ -533,21 +542,22 @@ 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 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 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 thetaConst :: Constant reference for potential temperature +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 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 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 @@ -578,13 +588,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 ) @@ -594,6 +604,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)) @@ -649,7 +660,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 @@ -728,18 +739,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, + & 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, @@ -756,7 +769,7 @@ & freeSurfFac, implicSurfPress, implicDiv2Dflow, implicitNHPress, & hFacMin, hFacMinDz, hFacInf, hFacSup, & gravity, recip_gravity, gBaro, - & rhoNil, rhoConst, recip_rhoConst, + & rhoNil, rhoConst, recip_rhoConst, thetaConst, & rhoFacC, recip_rhoFacC, rhoFacF, recip_rhoFacF, & rhoConstFresh, rho1Ref, tRef, sRef, phiRef, dBdrRef, & rVel2wUnit, wUnit2rVel, mass2rUnit, rUnit2mass, @@ -786,9 +799,9 @@ _RL ygOrigin _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 @@ -814,6 +827,7 @@ _RL viscAhW _RL viscAhD _RL viscAhZ + _RL smag3D_coeff _RL viscAhMax _RL viscAhReMax _RL viscAhGrid, viscAhGridMax, viscAhGridMin @@ -853,6 +867,7 @@ _RL gBaro _RL rhoNil _RL rhoConst, recip_rhoConst + _RL thetaConst _RL rhoFacC(Nr), recip_rhoFacC(Nr) _RL rhoFacF(Nr+1), recip_rhoFacF(Nr+1) _RL rhoConstFresh @@ -904,14 +919,12 @@ _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 @@ -940,6 +953,7 @@ LOGICAL useZONAL_FILT LOGICAL useOPPS LOGICAL usePP81 + LOGICAL useKL10 LOGICAL useMY82 LOGICAL useGGL90 LOGICAL useKPP @@ -969,9 +983,10 @@ LOGICAL useStreamIce LOGICAL useICEFRONT LOGICAL useThSIce + LOGICAL useLand LOGICAL useATM2d LOGICAL useAIM - LOGICAL useLand + LOGICAL useAtm_Phys LOGICAL useFizhi LOGICAL useGridAlt LOGICAL useDiagnostics @@ -983,14 +998,14 @@ 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, & 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