--- MITgcm/model/inc/PARAMS.h 2005/04/17 00:25:45 1.155 +++ MITgcm/model/inc/PARAMS.h 2006/02/23 16:43:52 1.179 @@ -1,4 +1,4 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.155 2005/04/17 00:25:45 edhill Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.179 2006/02/23 16:43:52 jmc Exp $ C $Name: $ C @@ -36,9 +36,9 @@ 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 ) @@ -49,10 +49,16 @@ C-- COMMON /PARM_C/ Character valued parameters used by the model. C checkPtSuff :: List of checkpoint file suffices +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 (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. @@ -78,7 +84,8 @@ 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, + & delXFile, delYFile, horizGridFile, + & bathyFile, topoFile, shelfIceFile, & hydrogThetaFile, hydrogSaltFile, & zonalWindFile, meridWindFile, thetaClimFile, & saltClimFile, buoyancyRelation, @@ -92,7 +99,10 @@ & mdsioLocalDir, & the_run_name CHARACTER*(5) checkPtSuff(maxNoChkptLev) - CHARACTER*(MAX_LEN_FNAM) bathyFile, topoFile + 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) zonalWindFile @@ -143,9 +153,10 @@ 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 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 debugLevel :: debug level selector: higher -> more writing COMMON /PARM_I/ @@ -160,6 +171,7 @@ & nonlinFreeSurf, select_rStar, & tempAdvScheme, tempVertAdvScheme, & saltAdvScheme, saltVertAdvScheme, + & selectKEscheme, & debugLevel INTEGER cg2dMaxIters INTEGER cg2dChkResFreq @@ -178,6 +190,7 @@ INTEGER select_rStar INTEGER tempAdvScheme, tempVertAdvScheme INTEGER saltAdvScheme, saltVertAdvScheme + INTEGER selectKEscheme INTEGER debugLevel C @@ -196,7 +209,6 @@ 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 C momViscosity :: Flag which turns momentum friction terms on and off. C momAdvection :: Flag which turns advection of momentum on and off. C momForcing :: Flag which turns external forcing of momentum on @@ -218,16 +230,19 @@ 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 +C useFullLeith :: Set to true to use full Leith viscosity(may be unstable C on irregular grids) -C useAnisotropicViscAGridMax :: Set to true to use Alistair's latest -C anisotropic length scale. It is used only for maximum viscosity -C calculations. Alistair recommends a value of viscA*GridMax=.25 +C useAreaViscLength :: Set to true to use old scaling for viscous +C lengths, e.g., L2=Raz. May be preferable for cube sphere. +C useStrainTensionVisc:: Set to true to use Strain-Tension viscous terms C rigidLid :: Set to true to use rigid lid -C implicitFreeSurface :: Set to true to use implcit free surface +C implicitFreeSurface :: Set to true to use implicit free surface C exactConserv :: Set to true to conserve exactly the total Volume 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 C tempStepping :: Turns temperature equation time-stepping off C saltStepping :: Turns salinity equation time-stepping off @@ -239,7 +254,8 @@ 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 highOrderVorticity :: use 3rd/4th order interp. of vorticity (V.I., advection) +C upwindShear :: use 1rst order upwind interp. (V.I., vertical advection) C useAbsVorticity :: work with f+zeta in Coriolis terms C implicitDiffusion :: Turns implicit vertical diffusion on C implicitViscosity :: Turns implicit vertical viscosity on @@ -248,8 +264,10 @@ 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 forcing_In_AB :: if False, put forcing (Temp,Salt,Tracers) 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 doThetaClimRelax :: Set true if relaxation to temperature C climatology is required. @@ -276,7 +294,6 @@ C outputs from master mpi process only. 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) @@ -287,39 +304,48 @@ 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 & 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 + COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid, & usingCurvilinearGrid, usingCylindricalGrid, & no_slip_sides,no_slip_bottom, - & staggerTimeStep, & momViscosity, momAdvection, momForcing, useCoriolis, & momPressureForcing, vectorInvariantMomentum, & tempAdvection, tempForcing, & saltAdvection, saltForcing, & useRealFreshWaterFlux, - & useFullLeith, useAnisotropicViscAGridMax, + & useFullLeith, useStrainTensionVisc, + & useAreaViscLength, & rigidLid, implicitFreeSurface, exactConserv, uniformLin_PhiSurf, + & use3Dsolver, implicitIntGravWave, staggerTimeStep, & momStepping, tempStepping, saltStepping, & metricTerms, usingSphericalPolarMTerms, useNHMTerms, & useConstantF, useBetaPlaneF, useSphereF, & useCDscheme, & useEnergyConservingCoriolis, useJamartWetPoints, useJamartMomAdv, & SadournyCoriolis, upwindVorticity, highOrderVorticity, - & useAbsVorticity, + & useAbsVorticity, upwindShear, & implicitDiffusion, implicitViscosity, & tempImplVertAdv, saltImplVertAdv, momImplVertAdv, - & multiDimAdvection, useMultiDimAdvec, forcing_In_AB, + & multiDimAdvection, useMultiDimAdvec, + & forcing_In_AB, doAB_onGtGs, & doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax, & periodicExternalForcing, & fluidIsAir, fluidIsWater, & usingPCoords, usingZCoords, useDynP_inEos_Zc, setCenterDr, & nonHydrostatic, quasiHydrostatic, globalFiles, useSingleCpuIO, - & allowFreezing, useOldFreezing, groundAtK1, + & allowFreezing, useOldFreezing, & usePickupBeforeC35, usePickupBeforeC54, startFromPickupAB2, & pickup_read_mdsio, pickup_write_mdsio, pickup_write_immed, & timeave_mdsio, snapshot_mdsio, monitor_stdio, - & outputTypesInclusive, debugMode, + & outputTypesInclusive, dumpInitAndLast, debugMode, & inAdMode, inAdTrue, inAdFalse, inAdExact, - & calendarDumps + & calendarDumps, + & balanceEmPmR, balanceQnet, balancePrintMean LOGICAL usingCartesianGrid LOGICAL usingSphericalPolarGrid @@ -329,7 +355,6 @@ LOGICAL useNHMTerms LOGICAL no_slip_sides LOGICAL no_slip_bottom - LOGICAL staggerTimeStep LOGICAL momViscosity LOGICAL momAdvection LOGICAL momForcing @@ -341,11 +366,16 @@ LOGICAL saltAdvection LOGICAL saltForcing LOGICAL useRealFreshWaterFlux - LOGICAL useFullLeith, useAnisotropicViscAGridMax + LOGICAL useFullLeith + LOGICAL useStrainTensionVisc + LOGICAL useAreaViscLength LOGICAL rigidLid LOGICAL implicitFreeSurface LOGICAL exactConserv LOGICAL uniformLin_PhiSurf + LOGICAL use3Dsolver + LOGICAL implicitIntGravWave + LOGICAL staggerTimeStep LOGICAL momStepping LOGICAL tempStepping LOGICAL saltStepping @@ -361,6 +391,7 @@ LOGICAL upwindVorticity LOGICAL highOrderVorticity LOGICAL useAbsVorticity + LOGICAL upwindShear LOGICAL implicitDiffusion LOGICAL implicitViscosity LOGICAL tempImplVertAdv @@ -369,6 +400,7 @@ LOGICAL multiDimAdvection LOGICAL useMultiDimAdvec LOGICAL forcing_In_AB + LOGICAL doAB_onGtGs LOGICAL doThetaClimRelax LOGICAL doSaltClimRelax LOGICAL doTr1ClimRelax @@ -385,10 +417,10 @@ LOGICAL useSingleCpuIO LOGICAL allowFreezing LOGICAL useOldFreezing - LOGICAL groundAtK1 LOGICAL usePickupBeforeC35 LOGICAL usePickupBeforeC54 LOGICAL startFromPickupAB2 + LOGICAL dumpInitAndLast LOGICAL debugMode LOGICAL pickup_read_mdsio, pickup_write_mdsio LOGICAL pickup_write_immed @@ -397,6 +429,10 @@ LOGICAL inAdMode, inAdTrue, inAdFalse, inAdExact LOGICAL calendarDumps + LOGICAL balanceEmPmR + LOGICAL balanceQnet + LOGICAL balancePrintMean + C-- COMMON /PARM_R/ "Real" valued parameters used by the model. C cg2dTargetResidual C :: Target residual for cg2d solver; no unit (RHS normalisation) @@ -430,6 +466,10 @@ 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 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 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 @@ -462,14 +502,19 @@ C viscA4Z :: Biharmonic viscosity coeff. for mixing of momentum laterally C (act on Vorticity part) ( m^4/s ) C viscC2leith :: Leith non-dimensional viscosity factor (grad(vort)) -C viscC2leithD :: Modified Leith non-dimensional viscosity factor (grad(div)) -C viscC2smag :: Smagorinsky non-dimensional viscosity factor +C viscC2leithD :: Modified Leith non-dimensional visc. factor (grad(div)) +C viscC2smag :: Smagorinsky non-dimensional viscosity factor (harmonic) +C viscC4smag :: Smagorinsky non-dimensional viscosity factor (biharmonic) C viscAhMax :: Maximum eddy viscosity coeff. for mixing of -C momentum laterally ( m^2/s ) +C momentum laterally ( m^2/s ) +C viscAhReMax :: Maximum gridscale Reynolds number for eddy viscosity +C coeff. for mixing of momentum laterally (non-dim) C viscAhGridMax:: maximum and minimum harmonic viscosity coefficients ... -C viscAhGridMin:: in terms of non-dimensional grid-size dependent viscosity +C viscAhGridMin:: in terms of non-dimensional grid-size dependent visc. C viscA4Max :: Maximum biharmonic viscosity coeff. for mixing of C momentum laterally ( m^4/s ) +C viscA4ReMax :: Maximum Gridscale Reynolds number for +C biharmonic viscosity coeff. momentum laterally (non-dim) C viscAhGrid:: non-dimensional grid-size dependent viscosity C viscA4Grid:: non-dimensional grid-size dependent bi-harmonic viscosity C viscA4GridMax:: maximum and minimum biharmonic viscosity coefficients ... @@ -563,8 +608,12 @@ 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 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 --"-"-- Quadratic ( linear: 1/s, quadratic: 1/m ) +C bottomDragQuadratic ( linear: 1/s, quadratic: 1/m ) +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, & cg2dpcOffDFac, cg3dTargetResidual, & delR, delRc, delX, delY, @@ -574,11 +623,12 @@ & viscAh, viscAhW, viscAhMax, & viscAhGrid, viscAhGridMax, viscAhGridMin, & viscC2leith, viscC2leithD, - & viscC2smag, + & viscC2smag, viscC4smag, & viscAhD, viscAhZ, viscA4D, viscA4Z, & viscA4, viscA4W, & viscA4Max, viscA4Grid, viscA4GridMax, viscA4GridMin, - & viscC4leith, viscC4leithD, viscAr, viscAstrain, viscAtension, + & viscAhRemax, viscA4Remax, + & viscC4leith, viscC4leithD, viscAr, & diffKhT, diffK4T, diffKrNrT, & diffKhS, diffK4S, diffKrNrS, & diffKrBL79surf, diffKrBL79deep, diffKrBL79scl, diffKrBL79Ho, @@ -586,21 +636,20 @@ & hFacMin, hFacMinDz, hFacInf, hFacSup, & gravity, recip_Gravity, gBaro, rhonil, recip_rhonil, & recip_rhoConst, rhoConst, - & rhoConstFresh, convertEmP2rUnit, tRef, sRef, + & rhoConstFresh, convertEmP2rUnit, tRef, sRef, phiRef, dBdrRef, & baseTime, startTime, endTime, & chkPtFreq, pchkPtFreq, dumpFreq, adjDumpFreq, & diagFreq, taveFreq, tave_lastIter, monitorFreq, adjMonitorFreq, & afFacMom, vfFacMom, pfFacMom, cfFacMom, foFacMom, mtFacMom, & cosPower, cAdjFreq, omega, rotationPeriod, - & tauThetaClimRelax, - & tauSaltClimRelax, + & tauThetaClimRelax, tauSaltClimRelax, & tauTr1ClimRelax, lambdaTr1ClimRelax, latBandClimRelax, & externForcingCycle, externForcingPeriod, & convertFW2Salt, temp_EvPrRn, salt_EvPrRn, & hFacMinDr, hFacMinDp, & horiVertRatio, recip_horiVertRatio, & ivdc_kappa, Ro_SeaLevel, - & bottomDragLinear,bottomDragQuadratic, + & sideDragFactor, bottomDragLinear, bottomDragQuadratic, nh_Am2, & tCylIn, tCylOut _RL cg2dTargetResidual @@ -637,20 +686,21 @@ _RL viscAhD _RL viscAhZ _RL viscAhMax + _RL viscAhReMax _RL viscAhGrid _RL viscAhGridMax _RL viscAhGridMin _RL viscC2leith _RL viscC2leithD _RL viscC2smag - _RL viscAstrain - _RL viscAtension + _RL viscC4smag _RL viscAr _RL viscA4 _RL viscA4W _RL viscA4D _RL viscA4Z _RL viscA4Max + _RL viscA4ReMax _RL viscA4Grid, viscA4GridMax, viscA4GridMin _RL viscC4leith _RL viscC4leithD @@ -678,6 +728,8 @@ _RL convertEmP2rUnit _RL tRef(Nr) _RL sRef(Nr) + _RL phiRef(2*Nr+1) + _RL dBdrRef(Nr) _RL baseTime _RL startTime _RL endTime @@ -714,8 +766,10 @@ _RL recip_horiVertRatio _RL ivdc_kappa _RL Ro_SeaLevel + _RL sideDragFactor _RL bottomDragLinear _RL bottomDragQuadratic + _RL nh_Am2 _RL tCylIn _RL tCylOut @@ -761,22 +815,28 @@ LOGICAL useFLT LOGICAL usePTRACERS LOGICAL useGCHEM + LOGICAL useRBCS LOGICAL useSBO LOGICAL useSEAICE + LOGICAL useShelfIce LOGICAL useBulkForce LOGICAL useThSIce LOGICAL usefizhi LOGICAL usegridalt - LOGICAL usediagnostics + LOGICAL useDiagnostics LOGICAL useEBM LOGICAL useMNC + LOGICAL useMATRIX + LOGICAL useRunClock + LOGICAL useEMBED_FILES COMMON /PARM_PACKAGES/ & useKPP, useGMRedi, useOBCS, useAIM, useLand, useECCO, & useSHAP_FILT, useZONAL_FILT, useGrdchk, useFLT, - & usePTRACERS, useGCHEM, - & useSBO, useSEAICE, useThSIce, useBulkForce, - & usefizhi, usegridalt, usediagnostics, useEBM, useMNC, - & usePP81, useMY82, useOPPS, useGGL90 + & usePTRACERS, useGCHEM, useRBCS, + & useSBO, useSEAICE, useShelfIce, useThSIce, useBulkForce, + & usefizhi, usegridalt, useDiagnostics, useEBM, useMNC, + & usePP81, useMY82, useOPPS, useGGL90, useMATRIX, + & useRunClock, useEMBED_FILES CEH3 ;;; Local Variables: *** CEH3 ;;; mode:fortran ***