--- MITgcm/model/inc/PARAMS.h 2003/10/29 00:17:44 1.96 +++ MITgcm/model/inc/PARAMS.h 2004/09/07 21:32:09 1.123 @@ -1,4 +1,4 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.96 2003/10/29 00:17:44 jmc Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.123 2004/09/07 21:32:09 edhill Exp $ C $Name: $ C CBOP @@ -65,8 +65,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 @@ -79,7 +81,7 @@ & hydrogThetaFile, hydrogSaltFile, & zonalWindFile, meridWindFile, thetaClimFile, & saltClimFile, buoyancyRelation, - & EmPmRfile, surfQfile, surfQswfile, + & EmPmRfile, surfQfile, surfQnetFile, surfQswFile, & uVelInitFile, vVelInitFile, pSurfInitFile, & dQdTfile, ploadFile, & eosType, pickupSuff, @@ -93,7 +95,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 @@ -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,16 @@ 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 +C mon_iotype :: flag for monitor output (MNC vs. STDOUT) COMMON /PARM_I/ & cg2dMaxIters, - & cg2dChkResFreq, + & cg2dChkResFreq, cg2dPreCondFreq, & cg3dMaxIters, & cg3dChkResFreq, & nIter0, nTimeSteps, nEndIter, @@ -137,10 +148,14 @@ & writeStatePrec, nCheckLev, & writeBinaryPrec, readBinaryPrec, & nonlinFreeSurf, select_rStar, - & tempAdvScheme, saltAdvScheme, tracerAdvScheme, - & debugLevel + & tempAdvScheme, tempVertAdvScheme, + & saltAdvScheme, saltVertAdvScheme, + & tracerAdvScheme, + & debugLevel, + & mon_iotype INTEGER cg2dMaxIters INTEGER cg2dChkResFreq + INTEGER cg2dPreCondFreq INTEGER cg3dMaxIters INTEGER cg3dChkResFreq INTEGER nIter0 @@ -153,10 +168,11 @@ INTEGER nCheckLev INTEGER nonlinFreeSurf INTEGER select_rStar - INTEGER tempAdvScheme - INTEGER saltAdvScheme + INTEGER tempAdvScheme, tempVertAdvScheme + INTEGER saltAdvScheme, saltVertAdvScheme INTEGER tracerAdvScheme INTEGER debugLevel + INTEGER mon_iotype C INTEGER debLevZero @@ -171,6 +187,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 @@ -213,9 +230,18 @@ 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 @@ -237,10 +263,11 @@ C slow (f77) or does not work (f90). When C useSingleCpuIO is set, mdsio_writefield.F C outputs from master mpi process only. -C allowFreezing :: Allows water to freeze and form ice +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) COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid, - & usingCurvilinearGrid, + & usingCurvilinearGrid, usingCylindricalGrid, & no_slip_sides,no_slip_bottom, & staggerTimeStep, & momViscosity, momAdvection, momForcing, useCoriolis, @@ -253,18 +280,22 @@ & metricTerms, usingSphericalPolarMTerms, useNHMTerms, & useConstantF, useBetaPlaneF, useSphereF, & useCDscheme, - & useEnergyConservingCoriolis, useJamartWetPoints, + & useEnergyConservingCoriolis, useJamartWetPoints, useJamartMomAdv, + & SadournyCoriolis, upwindVorticity, highOrderVorticity, + & useAbsVorticity, & implicitDiffusion, implicitViscosity, - & multiDimAdvection, forcing_In_AB, + & tempImplVertAdv, saltImplVertAdv, momImplVertAdv, + & multiDimAdvection, useMultiDimAdvec, forcing_In_AB, & doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax, & periodicExternalForcing, & usingPCoords, usingZCoords, useDynP_inEos_Zc, setCenterDr, & nonHydrostatic, quasiHydrostatic, globalFiles, useSingleCpuIO, - & allowFreezing, groundAtK1, - & usePickupBeforeC35, debugMode, + & allowFreezing, useOldFreezing, groundAtK1, + & usePickupBeforeC35, usePickupBeforeC54, debugMode, & readPickupWithTracer, writePickupWithTracer LOGICAL usingCartesianGrid LOGICAL usingSphericalPolarGrid + LOGICAL usingCylindricalGrid LOGICAL usingCurvilinearGrid LOGICAL usingSphericalPolarMTerms LOGICAL useNHMTerms @@ -299,9 +330,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 @@ -316,14 +356,16 @@ LOGICAL globalFiles LOGICAL useSingleCpuIO LOGICAL allowFreezing + LOGICAL useOldFreezing LOGICAL groundAtK1 LOGICAL usePickupBeforeC35 + LOGICAL usePickupBeforeC54 LOGICAL debugMode LOGICAL readPickupWithTracer LOGICAL writePickupWithTracer 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) @@ -371,6 +413,14 @@ 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 @@ -383,6 +433,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 @@ -462,15 +516,18 @@ & abeps, startTime, & phiMin, thetaMin, rSphere, recip_RSphere, f0, beta, & fCori, fCoriG, fCoriCos, - & viscAh, viscA4, viscAr, viscAstrain, viscAtension, + & viscAh, 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, & recip_rhoConst, rhoConst, & rhoConstFresh, convertEmP2rUnit, tRef, sRef, - & endTime, chkPtFreq, pchkPtFreq, dumpFreq, + & endTime, chkPtFreq, pchkPtFreq, dumpFreq, adjDumpFreq, & diagFreq, taveFreq, tave_lastIter, monitorFreq, & afFacMom, vfFacMom, pfFacMom, cfFacMom, foFacMom, mtFacMom, & cosPower, cAdjFreq, omega, rotationPeriod, @@ -482,7 +539,8 @@ & hFacMinDr, hFacMinDp, & horiVertRatio, recip_horiVertRatio, & ivdc_kappa, Ro_SeaLevel, - & bottomDragLinear,bottomDragQuadratic + & bottomDragLinear,bottomDragQuadratic, + & tCyl _RL cg2dTargetResidual _RL cg2dTargetResWunit @@ -514,16 +572,26 @@ _RL hFacSup _RL beta _RL viscAh + _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 @@ -546,6 +614,7 @@ _RL chkPtFreq _RL pChkPtFreq _RL dumpFreq + _RL adjDumpFreq _RL diagFreq _RL taveFreq _RL tave_lastIter @@ -579,6 +648,7 @@ _RL Ro_SeaLevel _RL bottomDragLinear _RL bottomDragQuadratic + _RL tCyl C-- COMMON /PARM_A/ Thermodynamics constants ? COMMON /PARM_A/ HeatCapacity_Cp,recip_Cp @@ -606,6 +676,8 @@ INTEGER integr_GeoPot, selectFindRoSurf C Logical flags for selecting packages + LOGICAL usePP81 + LOGICAL useMY82 LOGICAL useKPP LOGICAL useGMRedi LOGICAL useOBCS @@ -619,10 +691,37 @@ LOGICAL usePTRACERS LOGICAL useSBO LOGICAL useSEAICE - LOGICAL useBulkforce - LOGICAL useThermSEAICE + LOGICAL useBulkForce + LOGICAL useThSIce + 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, - & useThermSEAICE, useBulkforce + & usePTRACERS, useSBO, useSEAICE, useThSIce, useBulkForce, + & usefizhi, usegridalt, usediagnostics, useEBM, + & usePP81, useMY82 + +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 + CHARACTER*(MAX_LEN_FNAM) the_run_name + COMMON /PARM_MNC/ + & useMNC, + & mnc_use_indir, mnc_use_outdir, mnc_outdir_date, + & mnc_echo_gvtypes, mnc_pickup_write, mnc_pickup_read, + & mnc_use_for_mon, + & mnc_outdir_str, mnc_indir_str, + & the_run_name + + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: ***