--- MITgcm/model/inc/PARAMS.h 2008/02/05 13:32:18 1.212 +++ MITgcm/model/inc/PARAMS.h 2009/01/27 15:35:27 1.227 @@ -1,4 +1,4 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.212 2008/02/05 13:32:18 mlosch Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/inc/PARAMS.h,v 1.227 2009/01/27 15:35:27 jmc Exp $ C $Name: $ C @@ -24,25 +24,6 @@ Real*8 deg2rad PARAMETER ( deg2rad = 2.D0*PI/360.D0 ) -C Symbolic values -C precXXXX :: Used to indicate what precision to use for -C dumping model state. - INTEGER precFloat32 - PARAMETER ( precFloat32 = 32 ) - INTEGER precFloat64 - PARAMETER ( precFloat64 = 64 ) -C UNSET_xxx :: Used to indicate variables that have not been given a value - Real*8 UNSET_FLOAT8 - PARAMETER ( UNSET_FLOAT8 = 1.234567D5 ) - Real*4 UNSET_FLOAT4 - PARAMETER ( UNSET_FLOAT4 = 1.234567E5 ) - _RL UNSET_RL - PARAMETER ( UNSET_RL = 1.234567D5 ) - _RS UNSET_RS - PARAMETER ( UNSET_RS = 1.234567E5 ) - INTEGER UNSET_I - PARAMETER ( UNSET_I = 123456789 ) - C-- COMMON /PARM_C/ Character valued parameters used by the model. C buoyancyRelation :: Flag used to indicate which relation to use to C get buoyancy. @@ -65,8 +46,6 @@ 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 (3-D) C for potential temperature. C hydrogSaltFile :: File containing initial hydrographic data (3-D) @@ -89,8 +68,8 @@ C to kg/m2/s by multiplying by rhoConstFresh. C saltFluxFile :: File containing surface salt flux C pLoadFile :: File containing pressure loading -C eddyTauxFile :: File containing zonal Eddy stress data -C eddyTauyFile :: File containing meridional Eddy stress data +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" COMMON /PARM_C/ & buoyancyRelation, eosType, @@ -98,7 +77,7 @@ & tRefFile, sRefFile, rhoRefFile, & delRFile, delRcFile, & delXFile, delYFile, horizGridFile, - & bathyFile, topoFile, shelfIceFile, + & bathyFile, topoFile, & hydrogThetaFile, hydrogSaltFile, diffKrFile, & zonalWindFile, meridWindFile, thetaClimFile, & saltClimFile, @@ -107,7 +86,7 @@ & lambdaThetaFile, lambdaSaltFile, & uVelInitFile, vVelInitFile, pSurfInitFile, & dQdTfile, ploadFile, - & eddyTauxFile, eddyTauyFile, + & eddyPsiXFile, eddyPsiYFile, & the_run_name CHARACTER*(MAX_LEN_FNAM) buoyancyRelation CHARACTER*(6) eosType @@ -121,7 +100,7 @@ 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) bathyFile, topoFile CHARACTER*(MAX_LEN_FNAM) hydrogThetaFile, hydrogSaltFile CHARACTER*(MAX_LEN_FNAM) diffKrFile CHARACTER*(MAX_LEN_FNAM) zonalWindFile @@ -138,8 +117,8 @@ CHARACTER*(MAX_LEN_FNAM) pSurfInitFile CHARACTER*(MAX_LEN_FNAM) dQdTfile CHARACTER*(MAX_LEN_FNAM) ploadFile - CHARACTER*(MAX_LEN_FNAM) eddyTauxFile - CHARACTER*(MAX_LEN_FNAM) eddyTauyFile + CHARACTER*(MAX_LEN_FNAM) eddyPsiXFile + CHARACTER*(MAX_LEN_FNAM) eddyPsiYFile CHARACTER*(MAX_LEN_FNAM) lambdaThetaFile CHARACTER*(MAX_LEN_FNAM) lambdaSaltFile CHARACTER*(MAX_LEN_PREC/2) the_run_name @@ -164,6 +143,9 @@ 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 selectAddFluid :: option to add mass source/sink of fluid in the interior +C (3-D generalisation of oceanic real-fresh water flux) +C =0 off ; =1 add fluid ; =-1 virtual flux (no mass added) C momForcingOutAB :: =1: take momentum forcing contribution C out of (=0: in) Adams-Bashforth time stepping. C tracForcingOutAB :: =1: take tracer (Temp,Salt,pTracers) forcing contribution @@ -173,6 +155,7 @@ C saltAdvScheme :: Salt. Horiz.advection scheme selector C saltVertAdvScheme :: Salt. Vert. Advection scheme selector C selectKEscheme :: Kinetic Energy scheme selector (Vector Inv.) +C selectVortScheme :: Scheme selector for Vorticity term (Vector Inv.) C monitorSelect :: select group of variables to monitor C =1 : dynvars ; =2 : + vort ; =3 : + surface C debugLevel :: debug level selector: higher -> more writing @@ -186,10 +169,11 @@ & writeStatePrec, & writeBinaryPrec, readBinaryPrec, & nonlinFreeSurf, select_rStar, + & selectAddFluid, & momForcingOutAB, tracForcingOutAB, & tempAdvScheme, tempVertAdvScheme, & saltAdvScheme, saltVertAdvScheme, - & selectKEscheme, + & selectKEscheme, selectVortScheme, & monitorSelect, debugLevel INTEGER cg2dMaxIters INTEGER cg2dChkResFreq @@ -204,81 +188,96 @@ INTEGER readBinaryPrec INTEGER nonlinFreeSurf INTEGER select_rStar + INTEGER selectAddFluid INTEGER momForcingOutAB, tracForcingOutAB INTEGER tempAdvScheme, tempVertAdvScheme INTEGER saltAdvScheme, saltVertAdvScheme INTEGER selectKEscheme + INTEGER selectVortScheme INTEGER monitorSelect INTEGER debugLevel -C - INTEGER debLevZero - PARAMETER(debLevZero=0) - INTEGER debLevA - PARAMETER(debLevA=1) - INTEGER debLevB - PARAMETER(debLevB=2) - C-- COMMON /PARM_L/ Logical valued parameters used by the model. +C- Coordinate + Grid params: +C fluidIsAir :: Set to indicate that the fluid major constituent +C is air +C fluidIsWater :: Set to indicate that the fluid major constituent +C is water +C usingPCoords :: Set to indicate that we are working in a pressure +C type coordinate (p or p*). +C usingZCoords :: Set to indicate that we are working in a height +C type coordinate (z or z*) +C useDynP_inEos_Zc :: use the dynamical pressure in EOS (with Z-coord.) +C this requires specific code for restart & exchange C usingCartesianGrid :: If TRUE grid generation will be in a cartesian 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 rotateGrid :: rotate grid coordinates to geographical coordinates +C according to Euler angles phiEuler, thetaEuler, psiEuler C usingCurvilinearGrid :: If TRUE, use a curvilinear grid (to be provided) +C usingCylindricalGrid :: If TRUE grid generation will be Cylindrical C deepAtmosphere :: deep model (drop the shallow-atmosphere approximation) -C no_slip_sides :: Impose "no-slip" at lateral boundaries. +C setInterFDr :: set Interface depth (put cell-Center at the middle) +C setCenterDr :: set cell-Center depth (put Interface at the middle) +C- Momentum params: +C no_slip_sides :: Impose "no-slip" at lateral boundaries. C no_slip_bottom :: Impose "no-slip" at bottom boundary. +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 +C useAreaViscLength :: Set to true to use old scaling for viscous lengths, +C e.g., L2=Raz. May be preferable for cube sphere. 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 -C and off. +C and off. C momPressureForcing :: Flag which turns pressure term in momentum equation C on and off. C metricTerms :: Flag which turns metric terms on or off. C useNHMTerms :: If TRUE use non-hydrostatic metric terms. C useCoriolis :: Flag which turns the coriolis terms on and off. -C tempAdvection :: Flag which turns advection of temperature on -C and off. -C tempForcing :: Flag which turns external forcing of temperature on -C and off. -C saltAdvection :: Flag which turns advection of salinity on -C and off. -C saltForcing :: Flag which turns external forcing of salinity on -C and off. +C use3dCoriolis :: Turns the 3-D coriolis terms (in Omega.cos Phi) 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 vectorInvariantMomentum :: use Vector-Invariant form (mom_vecinv package) +C (default = F = use mom_fluxform package) +C useJamartWetPoints :: Use wet-point method for Coriolis (Jamart & Ozer 1986) +C useJamartMomAdv :: Use wet-point method for V.I. non-linear term +C upwindVorticity :: bias interpolation of vorticity in the Coriolis term +C highOrderVorticity :: use 3rd/4th order interp. of vorticity (V.I., advection) +C useAbsVorticity :: work with f+zeta in Coriolis terms +C upwindShear :: use 1rst order upwind interp. (V.I., vertical advection) +C momStepping :: Turns momentum equation time-stepping off +C- Temp. & Salt params: +C tempStepping :: Turns temperature equation time-stepping off +C saltStepping :: Turns salinity equation time-stepping off +C tempAdvection :: Flag which turns advection of temperature on and off. +C tempIsActiveTr :: Pot.Temp. is a dynamically active tracer +C tempForcing :: Flag which turns external forcing of temperature on +C and off. +C saltAdvection :: Flag which turns advection of salinity on and off. +C saltIsActiveTr :: Salinity is a dynamically active tracer +C saltForcing :: Flag which turns external forcing of salinity on +C and off. 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 on irregular grids) -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- Time-stepping params: 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 +C linear relation Phi_surf = Bo_surf*eta +C quasiHydrostatic :: Using non-hydrostatic terms in hydrostatic algorithm +C nonHydrostatic :: Using non-hydrostatic algorithm +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 -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 -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 (V.I., advection) -C upwindShear :: use 1rst order upwind interp. (V.I., vertical advection) -C useAbsVorticity :: work with f+zeta in Coriolis terms +C staggerTimeStep :: enable a Stagger time stepping U,V (& W) then T,S C implicitDiffusion :: Turns implicit vertical diffusion on C implicitViscosity :: Turns implicit vertical viscosity on C tempImplVertAdv :: Turns on implicit vertical advection for Temperature @@ -290,91 +289,84 @@ 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 pickupStrictlyMatch :: check and stop if pickup-file do not stricly match -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- Other forcing params - +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 C doThetaClimRelax :: Set true if relaxation to temperature C climatology is required. C doSaltClimRelax :: Set true if relaxation to salinity C climatology is required. +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 usingPCoords :: Set to indicate that we are working in a pressure -C type coordinate (p or p*). -C usingZCoords :: Set to indicate that we are working in a height -C type coordinate (z or z*) -C fluidIsAir :: Set to indicate that the fluid major constituent -C is air -C fluidIsWater :: Set to indicate that the fluid major constituent -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 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- I/O parameters - C globalFiles :: Selects between "global" and "tiled" files C useSingleCpuIO :: On SGI platforms, option globalFiles is either 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 surface water to freeze and form ice -C useOldFreezing :: use the old version (before checkpoint52a_pre, 2003-11-12) +C pickupStrictlyMatch :: check and stop if pickup-file do not stricly match +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 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 writePickupAtEnd :: write pickup at the last timestep 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 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 -C rotateGrid :: rotate grid coordinates to geographical coordinates -C according to Euler angles phiEuler, thetaEuler, psiEuler - COMMON /PARM_L/ usingCartesianGrid, usingSphericalPolarGrid, + COMMON /PARM_L/ + & fluidIsAir, fluidIsWater, + & usingPCoords, usingZCoords, useDynP_inEos_Zc, + & usingCartesianGrid, usingSphericalPolarGrid, rotateGrid, & usingCurvilinearGrid, usingCylindricalGrid, & deepAtmosphere, setInterFDr, setCenterDr, - & no_slip_sides,no_slip_bottom, - & momViscosity, momAdvection, momForcing, useCoriolis, - & momPressureForcing, vectorInvariantMomentum, - & tempAdvection, tempForcing, - & saltAdvection, saltForcing, + & no_slip_sides, no_slip_bottom, + & useFullLeith, useStrainTensionVisc, useAreaViscLength, + & momViscosity, momAdvection, momForcing, + & momPressureForcing, metricTerms, useNHMTerms, + & useCoriolis, use3dCoriolis, + & useConstantF, useBetaPlaneF, useSphereF, + & useCDscheme, vectorInvariantMomentum, + & useEnergyConservingCoriolis, useJamartWetPoints, useJamartMomAdv, + & upwindVorticity, highOrderVorticity, + & useAbsVorticity, upwindShear, + & momStepping, tempStepping, saltStepping, + & tempAdvection, tempIsActiveTr, tempForcing, + & saltAdvection, saltIsActiveTr, saltForcing, & useRealFreshWaterFlux, - & useFullLeith, useStrainTensionVisc, - & useAreaViscLength, & rigidLid, implicitFreeSurface, exactConserv, linFSConserveTr, & uniformLin_PhiSurf, + & quasiHydrostatic, nonHydrostatic, & use3Dsolver, implicitIntGravWave, staggerTimeStep, - & momStepping, tempStepping, saltStepping, - & metricTerms, useNHMTerms, - & useConstantF, useBetaPlaneF, useSphereF, use3dCoriolis, - & useCDscheme, - & useEnergyConservingCoriolis, useJamartWetPoints, useJamartMomAdv, - & SadournyCoriolis, upwindVorticity, highOrderVorticity, - & useAbsVorticity, upwindShear, & implicitDiffusion, implicitViscosity, & tempImplVertAdv, saltImplVertAdv, momImplVertAdv, & multiDimAdvection, useMultiDimAdvec, & momDissip_In_AB, doAB_onGtGs, - & doThetaClimRelax, doSaltClimRelax, doTr1ClimRelax, - & periodicExternalForcing, - & fluidIsAir, fluidIsWater, - & usingPCoords, usingZCoords, useDynP_inEos_Zc, - & nonHydrostatic, quasiHydrostatic, globalFiles, useSingleCpuIO, + & balanceEmPmR, balanceQnet, balancePrintMean, + & doThetaClimRelax, doSaltClimRelax, & allowFreezing, useOldFreezing, + & periodicExternalForcing, + & globalFiles, useSingleCpuIO, & pickupStrictlyMatch, usePickupBeforeC54, startFromPickupAB2, & pickup_read_mdsio, pickup_write_mdsio, pickup_write_immed, + & writePickupAtEnd, & timeave_mdsio, snapshot_mdsio, monitor_stdio, & outputTypesInclusive, dumpInitAndLast, debugMode, - & inAdMode, inAdTrue, inAdFalse, inAdExact, - & balanceEmPmR, balanceQnet, balancePrintMean, - & rotateGrid + & inAdMode, inAdTrue, inAdFalse, inAdExact + LOGICAL fluidIsAir + LOGICAL fluidIsWater + LOGICAL usingPCoords + LOGICAL usingZCoords + LOGICAL useDynP_inEos_Zc LOGICAL usingCartesianGrid - LOGICAL usingSphericalPolarGrid + LOGICAL usingSphericalPolarGrid, rotateGrid LOGICAL usingCylindricalGrid LOGICAL usingCurvilinearGrid LOGICAL deepAtmosphere @@ -390,8 +382,10 @@ LOGICAL useCoriolis LOGICAL vectorInvariantMomentum LOGICAL tempAdvection + LOGICAL tempIsActiveTr LOGICAL tempForcing LOGICAL saltAdvection + LOGICAL saltIsActiveTr LOGICAL saltForcing LOGICAL useRealFreshWaterFlux LOGICAL useFullLeith @@ -402,6 +396,8 @@ LOGICAL exactConserv LOGICAL linFSConserveTr LOGICAL uniformLin_PhiSurf + LOGICAL quasiHydrostatic + LOGICAL nonHydrostatic LOGICAL use3Dsolver LOGICAL implicitIntGravWave LOGICAL staggerTimeStep @@ -417,7 +413,6 @@ LOGICAL useEnergyConservingCoriolis LOGICAL useJamartWetPoints LOGICAL useJamartMomAdv - LOGICAL SadournyCoriolis LOGICAL upwindVorticity LOGICAL highOrderVorticity LOGICAL useAbsVorticity @@ -431,38 +426,27 @@ LOGICAL useMultiDimAdvec LOGICAL momDissip_In_AB LOGICAL doAB_onGtGs + LOGICAL balanceEmPmR + LOGICAL balanceQnet + LOGICAL balancePrintMean LOGICAL doThetaClimRelax LOGICAL doSaltClimRelax - LOGICAL doTr1ClimRelax + LOGICAL allowFreezing + LOGICAL useOldFreezing LOGICAL periodicExternalForcing - LOGICAL fluidIsAir - LOGICAL fluidIsWater - LOGICAL usingPCoords - LOGICAL usingZCoords - LOGICAL useDynP_inEos_Zc - LOGICAL nonHydrostatic - LOGICAL quasiHydrostatic LOGICAL globalFiles LOGICAL useSingleCpuIO - LOGICAL allowFreezing - LOGICAL useOldFreezing LOGICAL pickupStrictlyMatch LOGICAL usePickupBeforeC54 LOGICAL startFromPickupAB2 - LOGICAL dumpInitAndLast - LOGICAL debugMode LOGICAL pickup_read_mdsio, pickup_write_mdsio - LOGICAL pickup_write_immed + LOGICAL pickup_write_immed, writePickupAtEnd LOGICAL timeave_mdsio, snapshot_mdsio, monitor_stdio LOGICAL outputTypesInclusive + LOGICAL dumpInitAndLast + LOGICAL debugMode LOGICAL inAdMode, inAdTrue, inAdFalse, inAdExact - LOGICAL balanceEmPmR - LOGICAL balanceQnet - LOGICAL balancePrintMean - - LOGICAL rotateGrid - C-- COMMON /PARM_R/ "Real" valued parameters used by the model. C cg2dTargetResidual C :: Target residual for cg2d solver; no unit (RHS normalisation) @@ -496,6 +480,7 @@ 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 @@ -516,69 +501,70 @@ C :: from vertical r-coordinate unit to mass per unit area [kg/m2]. C :: z-coord: = rhoConst ( [m] * rho = [kg/m2] ) ; C :: p-coord: = 1/gravity ( [Pa] / g = [kg/m2] ) ; -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 xgOrigin :: Origin of the X-axis (Cartesian Grid) / Longitude of Western +C :: most cell face (Lat-Lon grid) (Note: this is an "inert" +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 rSphere :: Radius of sphere for a spherical polar grid ( 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 ) -C omega :: Angular velocity ( rad/s ) +C f0 :: Reference coriolis parameter ( 1/s ) +C ( Southern edge f for beta plane ) +C beta :: df/dy ( s^-1.m^-1 ) +C omega :: Angular velocity ( rad/s ) 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 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 -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 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 -C (act on Vorticity part) ( m^2/s ) -C viscA4D :: Biharmonic viscosity coeff. for mixing of momentum laterally -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 viscC2leith :: Leith non-dimensional viscosity factor (grad(vort)) -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 viscAr :: Eddy viscosity coeff. for mixing of +C momentum vertically ( units of r^2/s ) +C viscAh :: Eddy viscosity coeff. for mixing of 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 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 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 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 +C (act on Vorticity part) ( m^2/s ) +C viscA4D :: Biharmonic viscosity coeff. for mixing of momentum laterally +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 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)) +C viscC4leithD :: Modified Leith non-dimensional viscosity 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 viscAhReMax :: Maximum gridscale Reynolds number for eddy viscosity +C coeff. for mixing of momentum laterally (non-dim) +C viscAhGrid :: non-dimensional grid-size dependent viscosity C viscAhGridMax:: maximum and minimum harmonic viscosity coefficients ... 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 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 viscA4Grid :: non-dimensional grid-size dependent bi-harmonic viscosity C viscA4GridMax:: maximum and minimum biharmonic viscosity coefficients ... C viscA4GridMin:: in terms of non-dimensional grid-size dependent viscosity -C viscC4leith :: Leith non-dimensional viscosity factor (grad(vort)) -C viscC4leithD :: Modified Leith non-dimensional viscosity factor (grad(div)) C diffKhT :: Laplacian diffusion coeff. for mixing of C heat laterally ( m^2/s ) -C diffKrNrT :: vertical profile of Laplacian diffusion coeff. +C diffKrNrT :: vertical profile of Laplacian diffusion coeff. C for mixing of heat vertically ( units of r^2/s ) C diffK4T :: Biharmonic diffusion coeff. for mixing of C heat laterally ( m^4/s ) C diffKhS :: Laplacian diffusion coeff. for mixing of C salt laterally ( m^2/s ) -C diffKrNrS :: vertical profile of Laplacian diffusion coeff. -C for mixing of salt vertically ( units of r^2/s ), +C diffKrNrS :: vertical profile of Laplacian diffusion coeff. +C for mixing of 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 @@ -637,10 +623,10 @@ C cosPower :: Power of cosine of latitude to multiply viscosity C cAdjFreq :: Frequency of convective adjustment C -C taveFreq :: Frequency with which time-averaged model state +C taveFreq :: Frequency with which time-averaged model state C is written to post-processing files ( s ). -C tave_lastIter :: (for state variable only) fraction of the last time -C step (of each taveFreq period) put in the time average. +C tave_lastIter :: (for state variable only) fraction of the last time +C step (of each taveFreq period) put in the time average. C (fraction for 1rst iter = 1 - tave_lastIter) C tauThetaClimRelax :: Relaxation to climatology time scale ( s ). C tauSaltClimRelax :: Relaxation to climatology time scale ( s ). @@ -652,16 +638,18 @@ C number times externForcingPeriod) C convertFW2Salt :: salinity, used to convert Fresh-Water Flux to Salt Flux C (use model surface (local) value if set to -1) -C temp_EvPrRn :: temperature of Rain & Evap. +C temp_EvPrRn :: temperature of Rain & Evap. C salt_EvPrRn :: salinity of Rain & Evap. -C (notes: a) tracer content of Rain/Evap only used if both +C (notes: a) tracer content of Rain/Evap only used if both C NonLin_FrSurf & useRealFreshWater are set. C b) use model surface (local) value if set to UNSET_RL) -C hMixCrit :: criteria for mixed-layer diagnostic +C hMixCriteria:: criteria for mixed-layer diagnostic +C dRhoSmall :: parameter for mixed-layer diagnostic +C hMixSmooth :: Smoothing parameter for mixed-layer diag (default=0=no smoothing) C ivdc_kappa :: implicit vertical diffusivity for convection [m^2/s] 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 sideDragFactor :: side-drag scaling factor (used only if no_slip_sides) C (default=2: full drag ; =1: gives half-slip BC) C bottomDragLinear :: Linear bottom-drag coefficient (units of [r]/s) C bottomDragQuadratic :: Quadratic bottom-drag coefficient (units of [r]/m) @@ -679,15 +667,15 @@ & delR, delRc, delX, delY, & deltaT, deltaTmom, dTtracerLev, deltaTfreesurf, deltaTClock, & abEps, alph_AB, beta_AB, - & phiMin, thetaMin, rSphere, recip_RSphere, f0, beta, + & xgOrigin, ygOrigin, rSphere, recip_RSphere, f0, beta, & viscAh, viscAhW, viscAhMax, & viscAhGrid, viscAhGridMax, viscAhGridMin, & viscC2leith, viscC2leithD, & viscC2smag, viscC4smag, & viscAhD, viscAhZ, viscA4D, viscA4Z, - & viscA4, viscA4W, - & viscA4Max, viscA4Grid, viscA4GridMax, viscA4GridMin, - & viscAhRemax, viscA4Remax, + & viscA4, viscA4W, viscA4Max, + & viscA4Grid, viscA4GridMax, viscA4GridMin, + & viscAhReMax, viscA4ReMax, & viscC4leith, viscC4leithD, viscAr, & diffKhT, diffK4T, diffKrNrT, & diffKhS, diffK4S, diffKrNrS, @@ -699,19 +687,18 @@ & gravity, recip_gravity, gBaro, & rhonil, recip_rhonil, rhoConst, recip_rhoConst, & rhoFacC, recip_rhoFacC, rhoFacF, recip_rhoFacF, - & rhoConstFresh, tRef, sRef, phiRef, dBdrRef, + & rhoConstFresh, rho1Ref, tRef, sRef, phiRef, dBdrRef, & rVel2wUnit, wUnit2rVel, mass2rUnit, rUnit2mass, & 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, - & tauTr1ClimRelax, lambdaTr1ClimRelax, latBandClimRelax, + & tauThetaClimRelax, tauSaltClimRelax, latBandClimRelax, & externForcingCycle, externForcingPeriod, & convertFW2Salt, temp_EvPrRn, salt_EvPrRn, & hFacMinDr, hFacMinDp, - & ivdc_kappa, hMixCriteria, Ro_SeaLevel, + & ivdc_kappa, hMixCriteria, dRhoSmall, hMixSmooth, Ro_SeaLevel, & sideDragFactor, bottomDragLinear, bottomDragQuadratic, nh_Am2, & smoothAbsFuncRange, & tCylIn, tCylOut, @@ -731,8 +718,8 @@ _RL dTtracerLev(Nr) _RL deltaTfreesurf _RL abEps, alph_AB, beta_AB - _RL phiMin - _RL thetaMin + _RL xgOrigin + _RL ygOrigin _RL rSphere _RL recip_rSphere _RL f0 @@ -746,20 +733,17 @@ _RL hFacInf _RL hFacSup _RL beta + _RL viscAr _RL viscAh _RL viscAhW _RL viscAhD _RL viscAhZ _RL viscAhMax _RL viscAhReMax - _RL viscAhGrid - _RL viscAhGridMax - _RL viscAhGridMin + _RL viscAhGrid, viscAhGridMax, viscAhGridMin _RL viscC2leith _RL viscC2leithD _RL viscC2smag - _RL viscC4smag - _RL viscAr _RL viscA4 _RL viscA4W _RL viscA4D @@ -769,6 +753,7 @@ _RL viscA4Grid, viscA4GridMax, viscA4GridMin _RL viscC4leith _RL viscC4leithD + _RL viscC4smag _RL diffKhT _RL diffKrNrT(Nr) _RL diffK4T @@ -795,6 +780,7 @@ _RL rhoFacC(Nr), recip_rhoFacC(Nr) _RL rhoFacF(Nr+1), recip_rhoFacF(Nr+1) _RL rhoConstFresh + _RL rho1Ref(Nr) _RL tRef(Nr) _RL sRef(Nr) _RL phiRef(2*Nr+1) @@ -825,8 +811,6 @@ _RL rotationPeriod _RL tauThetaClimRelax _RL tauSaltClimRelax - _RL tauTr1ClimRelax - _RL lambdaTr1ClimRelax _RL latBandClimRelax _RL externForcingCycle _RL externForcingPeriod @@ -835,6 +819,8 @@ _RL salt_EvPrRn _RL ivdc_kappa _RL hMixCriteria + _RL dRhoSmall + _RL hMixSmooth _RL Ro_SeaLevel _RL sideDragFactor _RL bottomDragLinear @@ -859,7 +845,7 @@ C atm_Rq :: water vapour specific volume anomaly relative to dry air C (e.g. typical value = (29/18 -1) 10^-3 with q [g/kg]) C integr_GeoPot :: option to select the way we integrate the geopotential -C (still a subject of discussions ...) +C (still a subject of discussions ...) C selectFindRoSurf :: select the way surf. ref. pressure (=Ro_surf) is C derived from the orography. Implemented: 0,1 (see INI_P_GROUND) COMMON /PARM_ATM/ @@ -871,55 +857,58 @@ INTEGER integr_GeoPot, selectFindRoSurf C Logical flags for selecting packages + LOGICAL useGAD + LOGICAL useOBCS + LOGICAL useSHAP_FILT + LOGICAL useZONAL_FILT LOGICAL useOPPS LOGICAL usePP81 LOGICAL useMY82 LOGICAL useGGL90 LOGICAL useKPP - LOGICAL useGAD LOGICAL useGMRedi - LOGICAL useOBCS - LOGICAL useAIM - LOGICAL useLand + LOGICAL useDOWN_SLOPE LOGICAL useCAL LOGICAL useEXF + LOGICAL useBulkForce LOGICAL useEBM + LOGICAL useCheapAML LOGICAL useGrdchk LOGICAL useECCO - LOGICAL useSHAP_FILT - LOGICAL useZONAL_FILT + LOGICAL useSBO LOGICAL useFLT LOGICAL usePTRACERS LOGICAL useGCHEM LOGICAL useRBCS LOGICAL useOffLine LOGICAL useMATRIX - LOGICAL useSBO LOGICAL useSEAICE + LOGICAL useSALT_PLUME LOGICAL useShelfIce LOGICAL useThSIce LOGICAL useATM2d - LOGICAL useBulkForce - LOGICAL usefizhi - LOGICAL usegridalt + LOGICAL useAIM + LOGICAL useLand + LOGICAL useFizhi + LOGICAL useGridAlt LOGICAL useDiagnostics - LOGICAL useMNC LOGICAL useREGRID + LOGICAL useMNC LOGICAL useRunClock LOGICAL useEMBED_FILES LOGICAL useMYPACKAGE - LOGICAL useSALT_PLUME COMMON /PARM_PACKAGES/ + & useGAD, useOBCS, useSHAP_FILT, useZONAL_FILT, & useOPPS, usePP81, useMY82, useGGL90, useKPP, - & useGAD, useGMRedi, useOBCS, useAIM, useLand, - & useCAL, useEXF, useEBM, useGrdchk, useECCO, - & useSHAP_FILT, useZONAL_FILT, useFLT, + & useGMRedi, useDOWN_SLOPE, + & useCAL, useEXF, useBulkForce, useEBM, useCheapAML, + & useGrdchk, useECCO, useSBO, useFLT, & usePTRACERS, useGCHEM, useRBCS, useOffLine, useMATRIX, - & useSBO, useSEAICE, useShelfIce, - & useThSIce, useATM2D, useBulkForce, - & usefizhi, usegridalt, useDiagnostics, useMNC, useREGRID, - & useRunClock, useEMBED_FILES, useMYPACKAGE, useSALT_PLUME - + & useSEAICE, useSALT_PLUME, useShelfIce, useThSIce, + & useATM2D, useAIM, useLand, useFizhi, useGridAlt, + & useDiagnostics, useREGRID, useMNC, + & useRunClock, useEMBED_FILES, + & useMYPACKAGE CEH3 ;;; Local Variables: *** CEH3 ;;; mode:fortran *** CEH3 ;;; End: ***