C $Header: /u/gcmpack/MITgcm/model/src/set_defaults.F,v 1.183 2017/10/04 20:34:23 jmc Exp $
C $Name: $
#include "PACKAGES_CONFIG.h"
#include "CPP_OPTIONS.h"
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
CBOP
C !ROUTINE: SET_DEFAULTS
C !INTERFACE:
SUBROUTINE SET_DEFAULTS(
O viscArDefault, diffKrTDefault, diffKrSDefault,
O hFacMinDrDefault, delRdefault,
I myThid )
C !DESCRIPTION:
C Routine to set model "parameter defaults".
C !USES:
IMPLICIT NONE
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#ifdef ALLOW_EXCH2
# include "W2_EXCH2_SIZE.h"
#endif /* ALLOW_EXCH2 */
#include "SET_GRID.h"
C !INPUT/OUTPUT PARAMETERS:
C myThid :: my Thread Id. Number
INTEGER myThid
_RL viscArDefault
_RL diffKrTDefault
_RL diffKrSDefault
_RL hFacMinDrDefault
_RL delRDefault(Nr)
C !LOCAL VARIABLES:
C i, j, k :: Loop counters
INTEGER i, j, k
CEOP
C-- Grid parameters
C- Vertical gridding
delRFile = ' '
delRcFile = ' '
hybSigmFile = ' '
seaLev_Z = UNSET_RL
top_Pres = UNSET_RL
rSigmaBnd = UNSET_RL
selectSigmaCoord = 0
DO k=1,Nr
delRdefault(k) = 0.
ENDDO
DO k=1,Nr+1
delRc(k) = UNSET_RL
ENDDO
useMin4hFacEdges = .FALSE.
C- vertical profile
tRefFile = ' '
sRefFile = ' '
rhoRefFile = ' '
gravityFile = ' '
thetaConst = UNSET_RL
DO k=1,Nr
tRef(k) = UNSET_RL
sRef(k) = UNSET_RL
ENDDO
C- Horizontal gridding
delXFile = ' '
delYFile = ' '
horizGridFile = ' '
deepAtmosphere = .FALSE.
xgOrigin = UNSET_RL
ygOrigin = UNSET_RL
DO i=1,grid_maxNx
delX(i) = UNSET_RL
ENDDO
DO j=1,grid_maxNy
delY(j) = UNSET_RL
ENDDO
C In cartesian coords distances are in metres
usingCartesianGrid = .FALSE.
C In spherical polar distances are in degrees
usingSphericalPolarGrid = .FALSE.
rSphere = UNSET_RL
C General curvilinear coordinate system
usingCurvilinearGrid= .FALSE.
radius_fromHorizGrid= UNSET_RL
hasWetCSCorners = .FALSE.
C General cylindrical coordinate system
usingCylindricalGrid= .FALSE.
C Coriolis map:
selectCoriMap = -1
use3dCoriolis = .TRUE.
C grid rotation
rotateGrid = .FALSE.
phiEuler = 0. _d 0
thetaEuler = 0. _d 0
psiEuler = 0. _d 0
C-- Set default "physical" parameters
nh_Am2 = 1. _d 0
gravity = 9.81 _d 0
gBaro = UNSET_RL
rhoNil = 999.8 _d 0
rhoConst = UNSET_RL
C-- jmc : the default is to set rhoConstFresh to rhoConst (=rhoNil by default)
C (so that the default produces same results as before)
c rhoConstFresh = 999.8 _d 0
rhoConstFresh = UNSET_RL
convertFW2Salt = UNSET_RL
f0 = 1. _d -4
beta = 1. _d -11
fPrime = 0. _d 0
C- Earth rotation period is 86400*365.25/366.25 (use to be 1.day)
rotationPeriod = 86164. _d 0
omega = UNSET_RL
C- viscosity and diffusivity default value:
viscAh = 0. _d 3
smag3D_coeff = 1. _d -2
viscAhGrid = 0. _d 0
viscAhGridMin = 0. _d 0
viscAhGridMax = 1. _d 21
viscAhMax = 1. _d 21
viscAhReMax = 0. _d 0
viscC2leith = 0. _d 0
viscC2leithD = 0. _d 0
viscC2smag = 0. _d 0
viscArDefault = 0. _d -3
viscFacAdj = 1. _d 0
no_slip_sides = .TRUE.
no_slip_bottom = .TRUE.
bottomVisc_pCell = .FALSE.
sideDragFactor = 2. _d 0
bottomDragLinear = 0.
bottomDragQuadratic = 0.
selectBotDragQuadr = -1
viscA4 = 0. _d 11
viscA4Grid = 0. _d 0
viscA4GridMax = 1. _d 21
viscA4GridMin = 0. _d 0
viscA4Max = 1. _d 21
viscA4ReMax = 0. _d 0
viscC4leith = 0. _d 0
viscC4leithD = 0. _d 0
viscC4smag = 0. _d 0
DO k=1,Nr
viscArNr(k) = UNSET_RL
ENDDO
cosPower = 0.
diffKhT = 0. _d 3
diffKhS = 0. _d 3
diffK4T = 0. _d 11
diffK4S = 0. _d 11
diffKrTDefault = 0. _d -3
diffKrSDefault = 0. _d -3
diffKrBL79surf = 0. _d 0
diffKrBL79deep = 0. _d 0
diffKrBL79scl = 200. _d 0
diffKrBL79Ho = -2000. _d 0
BL79LatVary = 30.
diffKrBLEQsurf = UNSET_RL
diffKrBLEQdeep = UNSET_RL
diffKrBLEQscl = UNSET_RL
diffKrBLEQHo = UNSET_RL
DO k=1,Nr
diffKrNrT(k) = UNSET_RL
diffKrNrS(k) = UNSET_RL
diffKr4T(k) = 0.
diffKr4S(k) = 0.
ENDDO
HeatCapacity_Cp = 3994. _d 0
eosType = 'LINEAR'
buoyancyRelation = 'OCEANIC'
selectP_inEOS_Zc = UNSET_I
smoothAbsFuncRange = 0. _d 0
hFacMin = 1. _d 0
hFacMinDrDefault = 0. _d 0
implicitIntGravWave = .FALSE.
staggerTimeStep = .FALSE.
applyExchUV_early = .FALSE.
doResetHFactors = .FALSE.
momViscosity = .TRUE.
momAdvection = .TRUE.
momForcing = .TRUE.
momTidalForcing = .TRUE.
useCoriolis = .TRUE.
momPressureForcing = .TRUE.
momStepping = .TRUE.
vectorInvariantMomentum = .FALSE.
tempStepping = .TRUE.
tempAdvection = .TRUE.
tempForcing = .TRUE.
saltStepping = .TRUE.
saltAdvection = .TRUE.
saltForcing = .TRUE.
addFrictionHeating = .FALSE.
metricTerms = .TRUE.
useNHMTerms = .FALSE.
useSmag3D = .FALSE.
useFullLeith = .FALSE.
useAreaViscLength = .FALSE.
useStrainTensionVisc= .FALSE.
implicitDiffusion = .FALSE.
implicitViscosity = .FALSE.
selectImplicitDrag = 0
momImplVertAdv = .FALSE.
tempImplVertAdv = .FALSE.
saltImplVertAdv = .FALSE.
nonHydrostatic = .FALSE.
quasiHydrostatic = .FALSE.
globalFiles = .FALSE.
useSingleCpuIO = .FALSE.
useSingleCpuInput = .FALSE.
allowFreezing = .FALSE.
ivdc_kappa = 0. _d 0
hMixCriteria = -.8 _d 0
dRhoSmall = 1. _d -6
hMixSmooth = 0. _d 0
usePickupBeforeC54 = .FALSE.
tempAdvScheme = 2
saltAdvScheme = 2
multiDimAdvection = .TRUE.
useMultiDimAdvec = .FALSE.
useCDscheme = .FALSE.
useEnergyConservingCoriolis = .FALSE.
useJamartWetPoints = .FALSE.
useJamartMomAdv = .FALSE.
selectVortScheme = UNSET_I
upwindVorticity = .FALSE.
highOrderVorticity = .FALSE.
useAbsVorticity = .FALSE.
upwindShear = .FALSE.
selectKEscheme = 0
IF ( debugMode ) THEN
debugLevel = debLevD
ELSE
debugLevel = debLevB
#ifdef ALLOW_AUTODIFF
debugLevel = debLevA
#endif
ENDIF
C-- Set (free)surface-related parameters
implicitFreeSurface = .FALSE.
rigidLid = .FALSE.
implicSurfPress = 1. _d 0
implicDiv2DFlow = 1. _d 0
exactConserv = .FALSE.
linFSConserveTr = .FALSE.
uniformLin_PhiSurf = .TRUE.
nonlinFreeSurf = 0
hFacInf = 0.2 _d 0
hFacSup = 2.0 _d 0
select_rStar = 0
selectNHfreeSurf = 0
selectAddFluid = 0
useRealFreshWaterFlux = .FALSE.
temp_EvPrRn = UNSET_RL
salt_EvPrRn = 0.
temp_addMass = UNSET_RL
salt_addMass = UNSET_RL
balanceEmPmR = .FALSE.
balanceQnet = .FALSE.
balancePrintMean = .FALSE.
balanceThetaClimRelax = .FALSE.
balanceSaltClimRelax = .FALSE.
C-- Atmospheric physical parameters (e.g.: EOS)
celsius2K = 273.15 _d 0
atm_Po = 1. _d 5
atm_Cp = 1004. _d 0
atm_Rd = UNSET_RL
atm_kappa = 2. _d 0 / 7. _d 0
atm_Rq = 0. _d 0
integr_GeoPot = 2
selectFindRoSurf = 0
C-- Elliptic solver parameters
cg2dMaxIters = 150
cg2dTargetResidual = 1. _d -7
cg2dTargetResWunit = -1.
cg2dChkResFreq = 1
cg2dUseMinResSol = UNSET_I
cg2dpcOffDFac = 0.51 _d 0
cg2dPreCondFreq = 1
cg3dMaxIters = 150
cg3dTargetResidual = 1. _d -7
cg3dChkResFreq = 1
useSRCGSolver = .FALSE.
C-- Time stepping parameters
deltaT = 0. _d 0
deltaTMom = 0. _d 0
deltaTFreeSurf = 0. _d 0
DO k=1,Nr
dTtracerLev(k) = 0. _d 0
ENDDO
baseTime = 0. _d 0
nIter0 = -1
startTime = UNSET_RL
nTimeSteps = 0
nTimeSteps_l2 = 0
nEndIter = 0
endTime = 0. _d 0
momForcingOutAB = UNSET_I
tracForcingOutAB = UNSET_I
momDissip_In_AB = .TRUE.
doAB_onGtGs = .TRUE.
abEps = 0.01 _d 0
#ifdef ALLOW_ADAMSBASHFORTH_3
alph_AB = 0.5 _d 0
beta_AB = 5. _d 0 / 12. _d 0
startFromPickupAB2= .FALSE.
#else
alph_AB = UNSET_RL
beta_AB = UNSET_RL
startFromPickupAB2= .TRUE.
#endif
cAdjFreq = 0. _d 0
tauCD = 0. _d 0
tauThetaClimRelax = 0. _d 0
tauSaltClimRelax = 0. _d 0
periodicExternalForcing = .FALSE.
externForcingPeriod = 0.
externForcingCycle = 0.
tCylIn = 0.
tCylOut = 20.
C- I/O params:
pickupSuff = ' '
pickupStrictlyMatch = .TRUE.
pChkPtFreq = deltaT*0
chkPtFreq = deltaT*0
outputTypesInclusive = .FALSE.
pickup_read_mdsio = .TRUE.
pickup_write_mdsio= .TRUE.
pickup_write_immed= .FALSE.
writePickupAtEnd = .TRUE.
dumpFreq = deltaT*0
adjDumpFreq = deltaT*0
diagFreq = deltaT*0
dumpInitAndLast = .TRUE.
snapshot_mdsio = .TRUE.
monitorFreq = -1.
adjMonitorFreq = 0.
monitorSelect = UNSET_I
monitor_stdio = .TRUE.
taveFreq = deltaT*0
timeave_mdsio = .TRUE.
tave_lastIter = 0.5 _d 0
readBinaryPrec = precFloat32
writeBinaryPrec = precFloat32
writeStatePrec = precFloat64
rwSuffixType = 0
C-- Input files
bathyFile = ' '
topoFile = ' '
addWwallFile = ' '
addSwallFile = ' '
hydrogSaltFile = ' '
hydrogThetaFile = ' '
maskIniTemp = .TRUE.
maskIniSalt = .TRUE.
checkIniTemp = .TRUE.
checkIniSalt = .TRUE.
diffKrFile = ' '
viscAhDfile = ' '
viscAhZfile = ' '
viscA4Dfile = ' '
viscA4Zfile = ' '
zonalWindFile = ' '
meridWindFile = ' '
thetaClimFile = ' '
saltClimFile = ' '
EmPmRfile = ' '
saltFluxFile = ' '
surfQfile = ' '
surfQnetFile = ' '
surfQswFile = ' '
uVelInitFile = ' '
vVelInitFile = ' '
pSurfInitFile = ' '
pLoadFile = ' '
addMassFile = ' '
eddyPsiXFile = ' '
eddyPsiYFile = ' '
geothermalFile = ' '
lambdaThetaFile = ' '
lambdaSaltFile = ' '
mdsioLocalDir = ' '
adTapeDir = ' '
the_run_name = ' '
RETURN
END