--- MITgcm/model/inc/PARAMS.h 2006/03/20 15:10:24 1.183 +++ MITgcm/model/inc/PARAMS.h 2007/04/14 18:32:32 1.201 @@ -1,4 +1,4 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.183 2006/03/20 15:10:24 jmc Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.201 2007/04/14 18:32:32 dimitri Exp $ C $Name: $ C @@ -49,9 +49,14 @@ C-- COMMON /PARM_C/ Character valued parameters used by the model. C checkPtSuff :: List of checkpoint file suffices +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 delRFile :: File containing vertical grid spacing delR (1.D array) +C delRcFile :: File containing vertical grid spacing delRc (1.D array) 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 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. @@ -62,6 +67,7 @@ C hydrogThetaFile :: File containing initial hydrographic data for potential C temperature. C hydrogSaltFile :: File containing initial hydrographic data for salinity. +C diffKrFile :: File containing 3D specification of vertical diffusivity C zonalWindFile :: File containing zonal wind data C meridWindFile :: File containing meridional wind data C thetaClimFile :: File containing theta climataology used @@ -84,9 +90,11 @@ C LINEAR, POLY3, UNESCO, JMD95Z, JMD95P, MDJWF, IDEALGAS C the_run_name :: string identifying the name of the model "run" COMMON /PARM_C/ checkPtSuff, + & tRefFile, sRefFile, rhoRefFile, + & delRFile, delRcFile, & delXFile, delYFile, horizGridFile, & bathyFile, topoFile, shelfIceFile, - & hydrogThetaFile, hydrogSaltFile, + & hydrogThetaFile, hydrogSaltFile, diffKrFile, & zonalWindFile, meridWindFile, thetaClimFile, & saltClimFile, buoyancyRelation, & EmPmRfile, saltFluxFile, @@ -99,12 +107,17 @@ & mdsioLocalDir, & the_run_name CHARACTER*(5) checkPtSuff(maxNoChkptLev) + CHARACTER*(MAX_LEN_FNAM) tRefFile + CHARACTER*(MAX_LEN_FNAM) sRefFile + CHARACTER*(MAX_LEN_FNAM) rhoRefFile + CHARACTER*(MAX_LEN_FNAM) delRFile + CHARACTER*(MAX_LEN_FNAM) delRcFile 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) hydrogThetaFile, hydrogSaltFile + CHARACTER*(MAX_LEN_FNAM) diffKrFile CHARACTER*(MAX_LEN_FNAM) zonalWindFile CHARACTER*(MAX_LEN_FNAM) meridWindFile CHARACTER*(MAX_LEN_FNAM) thetaClimFile @@ -125,7 +138,7 @@ CHARACTER*(MAX_LEN_FNAM) lambdaThetaFile CHARACTER*(MAX_LEN_FNAM) lambdaSaltFile CHARACTER*(MAX_LEN_FNAM) mdsioLocalDir - CHARACTER*(MAX_LEN_FNAM) the_run_name + CHARACTER*(MAX_LEN_PREC/2) the_run_name CHARACTER*(6) eosType CHARACTER*(10) pickupSuff @@ -213,6 +226,8 @@ C usingSphericalPolarGrid :: If TRUE grid generation will be in a C spherical polar frame. C usingCylindricalGrid :: If TRUE grid generation will be Cylindrical +C usingCurvilinearGrid :: If TRUE, use a curvilinear grid (to be provided) +C deepAtmosphere :: deep model (drop the shallow-atmosphere approximation) C no_slip_sides :: Impose "no-slip" at lateral boundaries. C no_slip_bottom :: Impose "no-slip" at bottom boundary. C momViscosity :: Flag which turns momentum friction terms on and off. @@ -243,6 +258,8 @@ C rigidLid :: Set to true to use rigid lid C implicitFreeSurface :: Set to true to use implicit free surface C exactConserv :: Set to true to conserve exactly the total Volume +C linFSConserveTr :: Set to true to correct source/sink of tracer +C at the surface due to Linear Free Surface 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 @@ -254,6 +271,7 @@ 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 use3dCoriolis :: Turns the 3-D coriolis terms (in Omega.cos Phi) on - off 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 @@ -272,8 +290,10 @@ C momDissip_In_AB :: if False, put Dissipation tendency 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 apply AB on tracer tendencies (rather than on Tracer) +C startFromPickupAB2 :: with AB-3 code, start from an AB-2 pickup +C usePickupBeforeC54 :: start from old-pickup files, generated with code from +C before checkpoint-54a, Jul 06, 2004. C doThetaClimRelax :: Set true if relaxation to temperature C climatology is required. C doSaltClimRelax :: Set true if relaxation to salinity @@ -289,7 +309,8 @@ C is water C useDynP_inEos_Zc :: use the dynamical pressure in EOS (with Z-coord.) C this requires specific code for restart & exchange -C setCenterDr :: set cell Center depth and put Interface at the middle +C setInterFDr :: set Interface depth (put cell-Center at the middle) +C setCenterDr :: set cell-Center depth (put Interface at the middle) C nonHydrostatic :: Using non-hydrostatic terms C quasiHydrostatic :: Using non-hydrostatic terms in hydrostatic algorithm C globalFiles :: Selects between "global" and "tiled" files @@ -313,6 +334,7 @@ COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid, & usingCurvilinearGrid, usingCylindricalGrid, + & deepAtmosphere, setInterFDr, setCenterDr, & no_slip_sides,no_slip_bottom, & momViscosity, momAdvection, momForcing, useCoriolis, & momPressureForcing, vectorInvariantMomentum, @@ -321,11 +343,12 @@ & useRealFreshWaterFlux, & useFullLeith, useStrainTensionVisc, & useAreaViscLength, - & rigidLid, implicitFreeSurface, exactConserv, uniformLin_PhiSurf, + & rigidLid, implicitFreeSurface, exactConserv, linFSConserveTr, + & uniformLin_PhiSurf, & use3Dsolver, implicitIntGravWave, staggerTimeStep, & momStepping, tempStepping, saltStepping, & metricTerms, useNHMTerms, - & useConstantF, useBetaPlaneF, useSphereF, + & useConstantF, useBetaPlaneF, useSphereF, use3dCoriolis, & useCDscheme, & useEnergyConservingCoriolis, useJamartWetPoints, useJamartMomAdv, & SadournyCoriolis, upwindVorticity, highOrderVorticity, @@ -337,10 +360,10 @@ & doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax, & periodicExternalForcing, & fluidIsAir, fluidIsWater, - & usingPCoords, usingZCoords, useDynP_inEos_Zc, setCenterDr, + & usingPCoords, usingZCoords, useDynP_inEos_Zc, & nonHydrostatic, quasiHydrostatic, globalFiles, useSingleCpuIO, & allowFreezing, useOldFreezing, - & usePickupBeforeC35, usePickupBeforeC54, startFromPickupAB2, + & usePickupBeforeC54, startFromPickupAB2, & pickup_read_mdsio, pickup_write_mdsio, pickup_write_immed, & timeave_mdsio, snapshot_mdsio, monitor_stdio, & outputTypesInclusive, dumpInitAndLast, debugMode, @@ -351,6 +374,9 @@ LOGICAL usingSphericalPolarGrid LOGICAL usingCylindricalGrid LOGICAL usingCurvilinearGrid + LOGICAL deepAtmosphere + LOGICAL setInterFDr + LOGICAL setCenterDr LOGICAL useNHMTerms LOGICAL no_slip_sides LOGICAL no_slip_bottom @@ -371,6 +397,7 @@ LOGICAL rigidLid LOGICAL implicitFreeSurface LOGICAL exactConserv + LOGICAL linFSConserveTr LOGICAL uniformLin_PhiSurf LOGICAL use3Dsolver LOGICAL implicitIntGravWave @@ -382,6 +409,7 @@ LOGICAL useConstantF LOGICAL useBetaPlaneF LOGICAL useSphereF + LOGICAL use3dCoriolis LOGICAL useCDscheme LOGICAL useEnergyConservingCoriolis LOGICAL useJamartWetPoints @@ -409,14 +437,12 @@ LOGICAL usingPCoords LOGICAL usingZCoords LOGICAL useDynP_inEos_Zc - LOGICAL setCenterDr LOGICAL nonHydrostatic LOGICAL quasiHydrostatic LOGICAL globalFiles LOGICAL useSingleCpuIO LOGICAL allowFreezing LOGICAL useOldFreezing - LOGICAL usePickupBeforeC35 LOGICAL usePickupBeforeC54 LOGICAL startFromPickupAB2 LOGICAL dumpInitAndLast @@ -460,20 +486,28 @@ 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 +C rhoConst :: Vertically constant reference density +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 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 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 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 +C wUnit2rVel :: units conversion factor (Non-Hydrostatic code), +C :: from vertical velocity [m/s] to r-coordinate vertical velocity. +C :: z-coord: = 1 ; p-coord: rVel [Pa/s] = wSpeed [m/s] * wUnit2rVel 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 C to make geographical references simple.) 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 ). C f0 :: Reference coriolis parameter ( 1/s ) C ( Southern edge f for beta plane ) C beta :: df/dy ( s^-1.m^-1 ) @@ -484,6 +518,7 @@ 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 Not used if variable horiz. viscosity is used. C viscAr :: Eddy viscosity coeff. for mixing of C momentum vertically ( units of r^2/s ) C viscA4 :: Biharmonic viscosity coeff. for mixing of @@ -491,6 +526,7 @@ 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 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 ) C viscAhZ :: Eddy viscosity coeff. for mixing of momentum laterally @@ -535,6 +571,12 @@ 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 BL79LatVary :: polarwise of this latitude diffKrBL79 is applied with +C gradual transition to diffKrBLEQ towards Equator +C diffKrBLEQsurf :: same as diffKrBL79surf but at Equator +C diffKrBLEQdeep :: same as diffKrBL79deep but at Equator +C diffKrBLEQscl :: same as diffKrBL79scl but at Equator +C diffKrBLEQHo :: same as diffKrBL79Ho but at Equator 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 @@ -608,8 +650,12 @@ 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 bottomDragQuadratic ( linear: 1/s, quadratic: 1/m ) +C bottomDragLinear :: Linear bottom-drag coefficient (units of [r]/s) +C bottomDragQuadratic :: Quadratic bottom-drag coefficient (units of [r]/m) +C (if using zcoordinate, units becomes linear: m/s, quadratic: [-]) +C smoothAbsFuncRange :: 1/2 of interval around zero, for which FORTRAN ABS +C is to be replace by a smoother function +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) COMMON /PARM_R/ cg2dTargetResidual, cg2dTargetResWunit, @@ -630,11 +676,15 @@ & diffKhT, diffK4T, diffKrNrT, & diffKhS, diffK4S, diffKrNrS, & diffKrBL79surf, diffKrBL79deep, diffKrBL79scl, diffKrBL79Ho, + & BL79LatVary, + & diffKrBLEQsurf, diffKrBLEQdeep, diffKrBLEQscl, diffKrBLEQHo, & delT, tauCD, rCD, freeSurfFac, implicSurfPress, implicDiv2Dflow, & hFacMin, hFacMinDz, hFacInf, hFacSup, - & gravity, recip_Gravity, gBaro, rhonil, recip_rhonil, - & recip_rhoConst, rhoConst, + & gravity, recip_Gravity, gBaro, + & rhonil, recip_rhonil, rhoConst, recip_rhoConst, + & rhoFacC, recip_rhoFacC, rhoFacF, recip_rhoFacF, & rhoConstFresh, convertEmP2rUnit, tRef, sRef, phiRef, dBdrRef, + & rVel2wUnit, wUnit2rVel, & baseTime, startTime, endTime, & chkPtFreq, pChkPtFreq, dumpFreq, adjDumpFreq, & diagFreq, taveFreq, tave_lastIter, monitorFreq, adjMonitorFreq, @@ -648,6 +698,7 @@ & horiVertRatio, recip_horiVertRatio, & ivdc_kappa, Ro_SeaLevel, & sideDragFactor, bottomDragLinear, bottomDragQuadratic, nh_Am2, + & smoothAbsFuncRange, & tCylIn, tCylOut _RL cg2dTargetResidual @@ -667,7 +718,7 @@ _RL phiMin _RL thetaMin _RL rSphere - _RL recip_RSphere + _RL recip_rSphere _RL f0 _RL freeSurfFac _RL implicSurfPress @@ -712,22 +763,28 @@ _RL diffKrBL79deep _RL diffKrBL79scl _RL diffKrBL79Ho + _RL BL79LatVary + _RL diffKrBLEQsurf + _RL diffKrBLEQdeep + _RL diffKrBLEQscl + _RL diffKrBLEQHo _RL delt _RL tauCD _RL rCD _RL gravity _RL recip_gravity _RL gBaro - _RL rhonil - _RL recip_rhonil - _RL rhoConst - _RL recip_rhoConst + _RL rhonil, recip_rhonil + _RL rhoConst, recip_rhoConst + _RL rhoFacC(Nr), recip_rhoFacC(Nr) + _RL rhoFacF(Nr+1), recip_rhoFacF(Nr+1) _RL rhoConstFresh _RL convertEmP2rUnit _RL tRef(Nr) _RL sRef(Nr) _RL phiRef(2*Nr+1) _RL dBdrRef(Nr) + _RL rVel2wUnit(Nr+1), wUnit2rVel(Nr+1) _RL baseTime _RL startTime _RL endTime @@ -767,6 +824,7 @@ _RL sideDragFactor _RL bottomDragLinear _RL bottomDragQuadratic + _RL smoothAbsFuncRange _RL nh_Am2 _RL tCylIn _RL tCylOut @@ -802,6 +860,7 @@ LOGICAL useMY82 LOGICAL useGGL90 LOGICAL useKPP + LOGICAL useGAD LOGICAL useGMRedi LOGICAL useOBCS LOGICAL useAIM @@ -823,22 +882,26 @@ LOGICAL useSEAICE LOGICAL useShelfIce LOGICAL useThSIce + LOGICAL useATM2d LOGICAL useBulkForce LOGICAL usefizhi LOGICAL usegridalt LOGICAL useDiagnostics LOGICAL useMNC + LOGICAL useREGRID LOGICAL useRunClock LOGICAL useEMBED_FILES + LOGICAL useMYPACKAGE COMMON /PARM_PACKAGES/ & useOPPS, usePP81, useMY82, useGGL90, useKPP, - & useGMRedi, useOBCS, useAIM, useLand, + & useGAD, useGMRedi, useOBCS, useAIM, useLand, & useCAL, useEXF, useEBM, useGrdchk, useECCO, & useSHAP_FILT, useZONAL_FILT, useFLT, & usePTRACERS, useGCHEM, useRBCS, useOffLine, useMATRIX, - & useSBO, useSEAICE, useShelfIce, useThSIce, useBulkForce, - & usefizhi, usegridalt, useDiagnostics, useMNC, - & useRunClock, useEMBED_FILES + & useSBO, useSEAICE, useShelfIce, + & useThSIce, useATM2D, useBulkForce, + & usefizhi, usegridalt, useDiagnostics, useMNC, useREGRID, + & useRunClock, useEMBED_FILES, useMYPACKAGE CEH3 ;;; Local Variables: *** CEH3 ;;; mode:fortran ***