--- MITgcm/model/inc/PARAMS.h 2004/04/06 01:44:25 1.108 +++ MITgcm/model/inc/PARAMS.h 2004/10/10 06:08:47 1.129 @@ -1,20 +1,17 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.108 2004/04/06 01:44:25 edhill Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.129 2004/10/10 06:08:47 edhill Exp $ C $Name: $ C + CBOP -C !ROUTINE: PARAMS.h -C !INTERFACE: -C include PARAMS.h -C !DESCRIPTION: \bv -C *==========================================================* -C | PARAMS.h -C | o Header file defining model "parameters". -C *==========================================================* -C | The values from the model standard input file are -C | stored into the variables held here. Notes describing -C | the parameters can also be found here. -C *==========================================================* -C \ev +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 Macros for special grid options @@ -65,8 +62,10 @@ C in relaxation term -lambda(theta-theta*) C saltClimFile :: File containing salt climataology used C in relaxation term -lambda(salt-salt*) -C surfQfile :: File containing surface heat flux -C surfQswfile :: File containing surface shortwave radiation +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 dQdTfile :: File containing thermal relaxation coefficient C EmPmRfile :: File containing surface fresh water flux C pLoadFile :: File containing pressure loading @@ -74,16 +73,18 @@ 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, & bathyFile, topoFile, & hydrogThetaFile, hydrogSaltFile, & zonalWindFile, meridWindFile, thetaClimFile, & saltClimFile, buoyancyRelation, - & EmPmRfile, surfQfile, surfQswfile, + & EmPmRfile, surfQfile, surfQnetFile, surfQswFile, & uVelInitFile, vVelInitFile, pSurfInitFile, & dQdTfile, ploadFile, & eosType, pickupSuff, - & mdsioLocalDir + & mdsioLocalDir, + & the_run_name CHARACTER*(5) checkPtSuff(maxNoChkptLev) CHARACTER*(MAX_LEN_FNAM) bathyFile, topoFile CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile @@ -93,7 +94,8 @@ CHARACTER*(MAX_LEN_FNAM) thetaClimFile CHARACTER*(MAX_LEN_FNAM) saltClimFile CHARACTER*(MAX_LEN_FNAM) surfQfile - CHARACTER*(MAX_LEN_FNAM) surfQswfile + CHARACTER*(MAX_LEN_FNAM) surfQnetFile + CHARACTER*(MAX_LEN_FNAM) surfQswFile CHARACTER*(MAX_LEN_FNAM) EmPmRfile CHARACTER*(MAX_LEN_FNAM) buoyancyRelation CHARACTER*(MAX_LEN_FNAM) uVelInitFile @@ -102,6 +104,7 @@ CHARACTER*(MAX_LEN_FNAM) dQdTfile CHARACTER*(MAX_LEN_FNAM) ploadFile CHARACTER*(MAX_LEN_FNAM) mdsioLocalDir + CHARACTER*(MAX_LEN_FNAM) the_run_name CHARACTER*(6) eosType CHARACTER*(10) pickupSuff @@ -110,6 +113,8 @@ 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 cg3dMaxIters :: Maximum number of iterations in the C three-dimensional con. grad solver. C cg3dChkResFreq :: Frequency with which to check residual @@ -126,10 +131,15 @@ 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 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 debugLevel :: debug level selector: higher -> more writing COMMON /PARM_I/ & cg2dMaxIters, - & cg2dChkResFreq, + & cg2dChkResFreq, cg2dPreCondFreq, & cg3dMaxIters, & cg3dChkResFreq, & nIter0, nTimeSteps, nEndIter, @@ -137,10 +147,13 @@ & writeStatePrec, nCheckLev, & writeBinaryPrec, readBinaryPrec, & nonlinFreeSurf, select_rStar, - & tempAdvScheme, saltAdvScheme, tracerAdvScheme, + & tempAdvScheme, tempVertAdvScheme, + & saltAdvScheme, saltVertAdvScheme, + & tracerAdvScheme, & debugLevel INTEGER cg2dMaxIters INTEGER cg2dChkResFreq + INTEGER cg2dPreCondFreq INTEGER cg3dMaxIters INTEGER cg3dChkResFreq INTEGER nIter0 @@ -153,8 +166,8 @@ INTEGER nCheckLev INTEGER nonlinFreeSurf INTEGER select_rStar - INTEGER tempAdvScheme - INTEGER saltAdvScheme + INTEGER tempAdvScheme, tempVertAdvScheme + INTEGER saltAdvScheme, saltVertAdvScheme INTEGER tracerAdvScheme INTEGER debugLevel @@ -171,6 +184,7 @@ C coordinate frame. C usingSphericalPolarGrid :: If TRUE grid generation will be in a C spherical polar frame. +C usingCylindricalGrid :: If TRUE grid generation will be Cylindrical C no_slip_sides :: Impose "no-slip" at lateral boundaries. C no_slip_bottom :: Impose "no-slip" at bottom boundary. C staggerTimeStep :: enable a Stagger time stepping T,S Rho then U,V @@ -207,18 +221,23 @@ C momStepping :: Turns momentum equation time-stepping off C tempStepping :: Turns temperature equation time-stepping off C saltStepping :: Turns salinity equation time-stepping off -C tr1Stepping :: Turns passive tracer 1 time-stepping on/off 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 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 +C SadournyCoriolis :: use the enstrophy conserving scheme by Sadourny +C upwindVorticity :: bias interpolation of vorticity in the Coriolis term +C highOrderVorticity :: use 3rd/4th order interp. of vorticity in Coriolis +C useAbsVorticity :: work with f+zeta in Coriolis terms 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 forcing_In_AB :: if False, put forcing (Temp,Salt,Tracers) contribution C out off Adams-Bashforth time stepping. C doThetaClimRelax :: Set true if relaxation to temperature @@ -243,8 +262,22 @@ C allowFreezing :: Allows surface water to freeze and form ice C useOldFreezing :: use the old version (before checkpoint52a_pre, 2003-11-12) C groundAtK1 :: put the surface(k=1) at the Lower Boundary (=ground) +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 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 useMNC :: overall package run-time flag +C mnc_use_indir :: use "mnc_indir_str" as input filename prefix +C mnc_use_outdir :: use "mnc_outdir_str" as output filename prefix +C mnc_outdir_date :: use a date string within the output dir name +C mnc_echo_gvtypes :: echo type names (fails on many platforms) +C pickup_write_mnc :: use mnc to write pickups +C pickup_read_mnc :: use mnc to read pickups +C mon_write_mnc :: use mnc to write monitor output COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid, - & usingCurvilinearGrid, + & usingCurvilinearGrid, usingCylindricalGrid, & no_slip_sides,no_slip_bottom, & staggerTimeStep, & momViscosity, momAdvection, momForcing, useCoriolis, @@ -253,23 +286,33 @@ & saltDiffusion, saltAdvection, saltForcing, & useRealFreshWaterFlux, & rigidLid, implicitFreeSurface, exactConserv, uniformLin_PhiSurf, - & momStepping, tempStepping, saltStepping, tr1Stepping, + & momStepping, tempStepping, saltStepping, & metricTerms, usingSphericalPolarMTerms, useNHMTerms, & useConstantF, useBetaPlaneF, useSphereF, & useCDscheme, - & useEnergyConservingCoriolis, useJamartWetPoints, + & useEnergyConservingCoriolis, useJamartWetPoints, useJamartMomAdv, + & SadournyCoriolis, upwindVorticity, highOrderVorticity, + & useAbsVorticity, & implicitDiffusion, implicitViscosity, & tempImplVertAdv, saltImplVertAdv, momImplVertAdv, - & multiDimAdvection, forcing_In_AB, + & multiDimAdvection, useMultiDimAdvec, forcing_In_AB, & doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax, & periodicExternalForcing, & usingPCoords, usingZCoords, useDynP_inEos_Zc, setCenterDr, & nonHydrostatic, quasiHydrostatic, globalFiles, useSingleCpuIO, & allowFreezing, useOldFreezing, groundAtK1, - & usePickupBeforeC35, debugMode, - & readPickupWithTracer, writePickupWithTracer + & usePickupBeforeC35, usePickupBeforeC54, debugMode, + & readPickupWithTracer, writePickupWithTracer, + & useMNC, + & mnc_use_indir, mnc_use_outdir, mnc_outdir_date, + & mnc_echo_gvtypes, + & pickup_write_mnc, pickup_read_mnc, + & timeave_mnc, snapshot_mnc, monitor_mnc, autodiff_mnc, + & pickup_read_mdsio, pickup_write_mdsio, pickup_write_immed, + & timeave_mdsio, snapshot_mdsio, monitor_stdio LOGICAL usingCartesianGrid LOGICAL usingSphericalPolarGrid + LOGICAL usingCylindricalGrid LOGICAL usingCurvilinearGrid LOGICAL usingSphericalPolarMTerms LOGICAL useNHMTerms @@ -296,7 +339,6 @@ LOGICAL momStepping LOGICAL tempStepping LOGICAL saltStepping - LOGICAL tr1Stepping LOGICAL metricTerms LOGICAL useConstantF LOGICAL useBetaPlaneF @@ -304,12 +346,18 @@ LOGICAL useCDscheme LOGICAL useEnergyConservingCoriolis LOGICAL useJamartWetPoints + LOGICAL useJamartMomAdv + LOGICAL SadournyCoriolis + LOGICAL upwindVorticity + LOGICAL highOrderVorticity + LOGICAL useAbsVorticity LOGICAL implicitDiffusion LOGICAL implicitViscosity LOGICAL tempImplVertAdv LOGICAL saltImplVertAdv LOGICAL momImplVertAdv LOGICAL multiDimAdvection + LOGICAL useMultiDimAdvec LOGICAL forcing_In_AB LOGICAL doThetaClimRelax LOGICAL doSaltClimRelax @@ -327,12 +375,22 @@ LOGICAL useOldFreezing LOGICAL groundAtK1 LOGICAL usePickupBeforeC35 + LOGICAL usePickupBeforeC54 LOGICAL debugMode LOGICAL readPickupWithTracer LOGICAL writePickupWithTracer + LOGICAL + & useMNC, + & mnc_use_indir, mnc_use_outdir, mnc_outdir_date, + & mnc_echo_gvtypes, + & pickup_write_mnc, pickup_read_mnc, + & timeave_mnc, snapshot_mnc, monitor_mnc, autodiff_mnc + LOGICAL pickup_read_mdsio, pickup_write_mdsio + LOGICAL pickup_write_immed + LOGICAL timeave_mdsio, snapshot_mdsio, monitor_stdio C-- COMMON /PARM_R/ "Real" valued parameters used by the model. -C gg2dTargetResidual +C cg2dTargetResidual C :: Target residual for cg2d solver; no unit (RHS normalisation) C cg2dTargetResWunit C :: Target residual for cg2d solver; W unit (No RHS normalisation) @@ -376,16 +434,21 @@ C rotationPeriod :: Rotation period (s) (= 2.pi/omega) 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 viscAh if unset ( m^2/s ) C viscAr :: Eddy viscosity coeff. for mixing of C momentum vertically ( units of r^2/s ) C viscA4 :: Biharmonic viscosity coeff. for mixing of C momentum laterally ( m^4/s ) +C viscC2leith :: Leith non-dimensional viscosity factor C viscAhMax :: Maximum eddy viscosity coeff. for mixing of C momentum laterally ( m^2/s ) C viscA4Max :: Maximum biharmonic viscosity coeff. for mixing of C momentum laterally ( m^4/s ) C viscAhGrid:: non-dimensional grid-size dependent viscosity C viscA4Grid:: non-dimensional grid-size dependent bi-harmonic viscosity +C viscC4leith :: Leith non-dimensional viscosity factor C diffKhT :: Laplacian diffusion coeff. for mixing of C heat laterally ( m^2/s ) C diffKrT :: Laplacian diffusion coeff. for mixing of @@ -398,6 +461,10 @@ C salt vertically ( units of r^2/s ) C diffK4S :: Biharmonic diffusion coeff. for mixing of C salt laterally ( m^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 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 @@ -477,11 +544,12 @@ & abeps, startTime, & phiMin, thetaMin, rSphere, recip_RSphere, f0, beta, & fCori, fCoriG, fCoriCos, - & viscAh, viscAhMax, viscAhGrid, - & viscA4, viscA4Max, viscA4Grid, + & viscAh, viscAhW, viscAhMax, viscAhGrid, viscC2leith, + & viscA4, viscA4Max, viscA4Grid, viscC4leith, & viscAr, viscAstrain, viscAtension, & diffKhT, diffK4T, diffKrT, & diffKhS, diffK4S, diffKrS, + & diffKrBL79surf, diffKrBL79deep, diffKrBL79scl, diffKrBL79Ho, & delT, tauCD, rCD, freeSurfFac, implicSurfPress, implicDiv2Dflow, & hFacMin, hFacMinDz, hFacInf, hFacSup, & gravity, recip_Gravity, gBaro, rhonil, recip_rhonil, @@ -499,7 +567,8 @@ & hFacMinDr, hFacMinDp, & horiVertRatio, recip_horiVertRatio, & ivdc_kappa, Ro_SeaLevel, - & bottomDragLinear,bottomDragQuadratic + & bottomDragLinear,bottomDragQuadratic, + & tCyl _RL cg2dTargetResidual _RL cg2dTargetResWunit @@ -531,20 +600,27 @@ _RL hFacSup _RL beta _RL viscAh + _RL viscAhW _RL viscAhMax _RL viscAhGrid + _RL viscC2leith _RL viscAstrain _RL viscAtension _RL viscAr _RL viscA4 _RL viscA4Max _RL viscA4Grid + _RL viscC4leith _RL diffKhT _RL diffKrT _RL diffK4T _RL diffKhS _RL diffKrS _RL diffK4S + _RL diffKrBL79surf + _RL diffKrBL79deep + _RL diffKrBL79scl + _RL diffKrBL79Ho _RL delt _RL tauCD _RL rCD @@ -601,6 +677,7 @@ _RL Ro_SeaLevel _RL bottomDragLinear _RL bottomDragQuadratic + _RL tCyl C-- COMMON /PARM_A/ Thermodynamics constants ? COMMON /PARM_A/ HeatCapacity_Cp,recip_Cp @@ -628,6 +705,10 @@ INTEGER integr_GeoPot, selectFindRoSurf C Logical flags for selecting packages + LOGICAL useOPPS + LOGICAL usePP81 + LOGICAL useMY82 + LOGICAL useGGL90 LOGICAL useKPP LOGICAL useGMRedi LOGICAL useOBCS @@ -646,27 +727,13 @@ LOGICAL usefizhi LOGICAL usegridalt LOGICAL usediagnostics + LOGICAL useEBM COMMON /PARM_PACKAGES/ & useKPP, useGMRedi, useOBCS, useAIM, useLand, useECCO, & useSHAP_FILT, useZONAL_FILT, useGrdchk, useFLT, & usePTRACERS, useSBO, useSEAICE, useThSIce, useBulkForce, - & usefizhi, usegridalt, usediagnostics - -C Run-time flags for early-initialization of MNC - LOGICAL - & useMNC, - & mnc_use_indir, mnc_use_outdir, mnc_outdir_date, - & mnc_echo_gvtypes, mnc_pickup_write, mnc_pickup_read, - & mnc_use_for_mon - CHARACTER*(MAX_LEN_FNAM) mnc_outdir_str - CHARACTER*(MAX_LEN_FNAM) mnc_indir_str - COMMON /PARM_MNC/ - & useMNC, - & mnc_use_indir, mnc_use_outdir, mnc_outdir_date, - & mnc_echo_gvtypes, mnc_pickup_write, mnc_pickup_read, - & mnc_outdir_str, mnc_indir_str, - & mnc_use_for_mon - + & usefizhi, usegridalt, usediagnostics, useEBM, + & usePP81, useMY82, useOPPS, useGGL90 CEH3 ;;; Local Variables: *** CEH3 ;;; mode:fortran ***