Back to home page

MITgcm

 
 

    


File indexing completed on 2024-02-01 06:10:09 UTC

view on githubraw file Latest commit 427e24e1 on 2024-01-31 16:50:14 UTC
b9b591469d Jean*0001 #include "PACKAGES_CONFIG.h"
0127add478 Alis*0002 #include "CPP_OPTIONS.h"
                0003 
a30418b6b9 Ed H*0004 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
9366854e02 Chri*0005 CBOP
                0006 C     !ROUTINE: SET_DEFAULTS
                0007 C     !INTERFACE:
0127add478 Alis*0008       SUBROUTINE SET_DEFAULTS(
                0009      O   viscArDefault, diffKrTDefault, diffKrSDefault,
f15994caab Jean*0010      O   hFacMinDrDefault, delRdefault,
0127add478 Alis*0011      I   myThid )
                0012 
a30418b6b9 Ed H*0013 C     !DESCRIPTION:
                0014 C     Routine to set model "parameter defaults".
9366854e02 Chri*0015 
                0016 C     !USES:
                0017       IMPLICIT NONE
0127add478 Alis*0018 #include "SIZE.h"
                0019 #include "EEPARAMS.h"
                0020 #include "PARAMS.h"
b9b591469d Jean*0021 #ifdef ALLOW_EXCH2
                0022 # include "W2_EXCH2_SIZE.h"
                0023 #endif /* ALLOW_EXCH2 */
                0024 #include "SET_GRID.h"
0127add478 Alis*0025 
9366854e02 Chri*0026 C     !INPUT/OUTPUT PARAMETERS:
f15994caab Jean*0027 C     myThid :: my Thread Id. Number
0127add478 Alis*0028       INTEGER myThid
                0029       _RL viscArDefault
                0030       _RL diffKrTDefault
                0031       _RL diffKrSDefault
                0032       _RL hFacMinDrDefault
                0033       _RL delRDefault(Nr)
                0034 
9366854e02 Chri*0035 C     !LOCAL VARIABLES:
f15994caab Jean*0036 C     i, j, k :: Loop counters
                0037       INTEGER i, j, k
9366854e02 Chri*0038 CEOP
0127add478 Alis*0039 
                0040 C--   Grid parameters
b9306711eb Jean*0041 C-    Vertical gridding
                0042       delRFile            = ' '
                0043       delRcFile           = ' '
f15994caab Jean*0044       hybSigmFile         = ' '
2ad79bdf32 Jean*0045       seaLev_Z            = UNSET_RL
                0046       top_Pres            = UNSET_RL
f15994caab Jean*0047       rSigmaBnd           = UNSET_RL
                0048       selectSigmaCoord    = 0
0127add478 Alis*0049       DO k=1,Nr
14007c468a Jean*0050        delRdefault(k)     = 0.
0127add478 Alis*0051       ENDDO
c28ce1627a Jean*0052       DO k=1,Nr+1
14007c468a Jean*0053        delRc(k)           = UNSET_RL
c28ce1627a Jean*0054       ENDDO
dd9374dd6b Jean*0055       useMin4hFacEdges    = .FALSE.
b9306711eb Jean*0056 C-    vertical profile
                0057       tRefFile            = ' '
                0058       sRefFile            = ' '
                0059       rhoRefFile          = ' '
8122f6677e Jean*0060       gravityFile         = ' '
aad87ebb4c Jean*0061       thetaConst          = UNSET_RL
                0062       DO k=1,Nr
                0063        tRef(k)            = UNSET_RL
                0064        sRef(k)            = UNSET_RL
                0065       ENDDO
0127add478 Alis*0066 
b9306711eb Jean*0067 C-    Horizontal gridding
14007c468a Jean*0068       delXFile            = ' '
                0069       delYFile            = ' '
                0070       horizGridFile       = ' '
d97b9d52f5 Jean*0071       deepAtmosphere      = .FALSE.
9780090eaa Jean*0072       xgOrigin            = UNSET_RL
                0073       ygOrigin            = UNSET_RL
b9b591469d Jean*0074       DO i=1,grid_maxNx
14007c468a Jean*0075        delX(i)            = UNSET_RL
0127add478 Alis*0076       ENDDO
b9b591469d Jean*0077       DO j=1,grid_maxNy
14007c468a Jean*0078        delY(j)            = UNSET_RL
0127add478 Alis*0079       ENDDO
9780090eaa Jean*0080 C     In cartesian coords distances are in metres
                0081       usingCartesianGrid  = .FALSE.
0127add478 Alis*0082 C     In spherical polar distances are in degrees
                0083       usingSphericalPolarGrid = .FALSE.
9744e36521 Jean*0084       rSphere             = UNSET_RL
aea29c8517 Alis*0085 C     General curvilinear coordinate system
14007c468a Jean*0086       usingCurvilinearGrid= .FALSE.
9744e36521 Jean*0087       radius_fromHorizGrid= UNSET_RL
33964d001d Jean*0088       hasWetCSCorners     = .FALSE.
0ac260a803 Andr*0089 C     General cylindrical coordinate system
14007c468a Jean*0090       usingCylindricalGrid= .FALSE.
36833802ad Jean*0091 C     Coriolis map:
c07cd3bfa8 Jean*0092       selectCoriMap       = -1
7514c1bd55 Mart*0093 C     grid rotation
                0094       rotateGrid          = .FALSE.
                0095       phiEuler            = 0. _d 0
                0096       thetaEuler          = 0. _d 0
                0097       psiEuler            = 0. _d 0
0ac260a803 Andr*0098 
0127add478 Alis*0099 C--   Set default "physical" parameters
14007c468a Jean*0100       nh_Am2              = 1. _d 0
                0101       gravity             = 9.81 _d 0
aad87ebb4c Jean*0102       gBaro               = UNSET_RL
9330bd8273 Jean*0103       surf_pRef           = 101325. _d 0
14007c468a Jean*0104       rhoNil              = 999.8 _d 0
aad87ebb4c Jean*0105       rhoConst            = UNSET_RL
01d019192b Jean*0106 C-- jmc : the default is to set rhoConstFresh to rhoConst (=rhoNil by default)
                0107 C         (so that the default produces same results as before)
14007c468a Jean*0108 c     rhoConstFresh       = 999.8 _d 0
aad87ebb4c Jean*0109       rhoConstFresh       = UNSET_RL
                0110       convertFW2Salt      = UNSET_RL
14007c468a Jean*0111       f0                  = 1. _d -4
                0112       beta                = 1. _d -11
c07cd3bfa8 Jean*0113       fPrime              = 0. _d 0
14007c468a Jean*0114 C-    Earth rotation period is 86400*365.25/366.25 (use to be 1.day)
                0115       rotationPeriod      = 86164. _d 0
aad87ebb4c Jean*0116       omega               = UNSET_RL
bf6138bedc Jean*0117 C-    viscosity and diffusivity default value:
14007c468a Jean*0118       viscAh              = 0. _d 3
dc3adfb09b Jean*0119       smag3D_coeff        = 1. _d -2
2d5bb917cc Jean*0120       smag3D_diffCoeff    = 0. _d 0
14007c468a Jean*0121       viscAhGrid          = 0. _d 0
                0122       viscAhGridMin       = 0. _d 0
                0123       viscAhGridMax       = 1. _d 21
                0124       viscAhMax           = 1. _d 21
                0125       viscAhReMax         = 0. _d 0
                0126       viscC2leith         = 0. _d 0
                0127       viscC2leithD        = 0. _d 0
f59d76b0dd Ed D*0128       viscC2LeithQG       = 0. _d 0
14007c468a Jean*0129       viscC2smag          = 0. _d 0
                0130       viscArDefault       = 0. _d -3
26e5f876a6 Gael*0131       viscFacAdj          = 1. _d 0
88830be691 Alis*0132       no_slip_sides       = .TRUE.
                0133       no_slip_bottom      = .TRUE.
f9ef55fa0c Jean*0134       bottomVisc_pCell    = .FALSE.
f4b9df5e2d Jean*0135       sideDragFactor      = 2. _d 0
                0136       bottomDragLinear    = 0.
                0137       bottomDragQuadratic = 0.
ab47de63dc Mart*0138       zRoughBot           = 0. _d 0
f9ef55fa0c Jean*0139       selectBotDragQuadr  = -1
14007c468a Jean*0140       viscA4              = 0. _d 11
                0141       viscA4Grid          = 0. _d 0
                0142       viscA4GridMax       = 1. _d 21
                0143       viscA4GridMin       = 0. _d 0
                0144       viscA4Max           = 1. _d 21
                0145       viscA4ReMax         = 0. _d 0
                0146       viscC4leith         = 0. _d 0
                0147       viscC4leithD        = 0. _d 0
                0148       viscC4smag          = 0. _d 0
bf6138bedc Jean*0149       DO k=1,Nr
                0150        viscArNr(k)        = UNSET_RL
                0151       ENDDO
                0152       cosPower            = 0.
                0153       diffKhT             = 0. _d 3
                0154       diffKhS             = 0. _d 3
14007c468a Jean*0155       diffK4T             = 0. _d 11
                0156       diffK4S             = 0. _d 11
bf6138bedc Jean*0157       diffKrTDefault      = 0. _d -3
                0158       diffKrSDefault      = 0. _d -3
                0159       diffKrBL79surf      = 0. _d 0
                0160       diffKrBL79deep      = 0. _d 0
                0161       diffKrBL79scl       = 200. _d 0
                0162       diffKrBL79Ho        = -2000. _d 0
                0163       BL79LatVary         = 30.
                0164       diffKrBLEQsurf      = UNSET_RL
                0165       diffKrBLEQdeep      = UNSET_RL
                0166       diffKrBLEQscl       = UNSET_RL
                0167       diffKrBLEQHo        = UNSET_RL
                0168       DO k=1,Nr
                0169        diffKrNrT(k)       = UNSET_RL
                0170        diffKrNrS(k)       = UNSET_RL
                0171        diffKr4T(k)        = 0.
                0172        diffKr4S(k)        = 0.
                0173       ENDDO
14007c468a Jean*0174       HeatCapacity_Cp     = 3994. _d 0
88830be691 Alis*0175       eosType             = 'LINEAR'
0127add478 Alis*0176       buoyancyRelation    = 'OCEANIC'
8122f6677e Jean*0177       selectP_inEOS_Zc    = UNSET_I
bf6138bedc Jean*0178       smoothAbsFuncRange  = 0. _d 0
0320e25227 Mart*0179       sIceLoadFac         = 1. _d 0
14007c468a Jean*0180       hFacMin             = 1. _d 0
                0181       hFacMinDrDefault    = 0. _d 0
01fa056cae Jean*0182       implicitIntGravWave = .FALSE.
fb481a83c2 Alis*0183       staggerTimeStep     = .FALSE.
35c76859f0 Jean*0184       applyExchUV_early   = .FALSE.
627a21a418 Jean*0185       doResetHFactors     = .FALSE.
0127add478 Alis*0186       momViscosity        = .TRUE.
                0187       momAdvection        = .TRUE.
                0188       momForcing          = .TRUE.
59b35dd864 Jean*0189       momTidalForcing     = .TRUE.
0127add478 Alis*0190       useCoriolis         = .TRUE.
                0191       momPressureForcing  = .TRUE.
                0192       momStepping         = .TRUE.
66d5e1666c Alis*0193       vectorInvariantMomentum = .FALSE.
0127add478 Alis*0194       tempStepping        = .TRUE.
e1c6dcc4ea Jean*0195       tempAdvection       = .TRUE.
                0196       tempForcing         = .TRUE.
46918f1b26 Jean*0197       temp_stayPositive   = .FALSE.
0127add478 Alis*0198       saltStepping        = .TRUE.
e1c6dcc4ea Jean*0199       saltAdvection       = .TRUE.
                0200       saltForcing         = .TRUE.
46918f1b26 Jean*0201       salt_stayPositive   = .FALSE.
db8d49beca Jean*0202       addFrictionHeating  = .FALSE.
8d793cca80 Jean*0203       useNHMTerms         = .FALSE.
427e24e121 Jean*0204       selectMetricTerms   = UNSET_I
dc3adfb09b Jean*0205       useSmag3D           = .FALSE.
8f106aecfd Bayl*0206       useFullLeith        = .FALSE.
cef83a8f90 Bayl*0207       useAreaViscLength   = .FALSE.
14007c468a Jean*0208       useStrainTensionVisc= .FALSE.
0127add478 Alis*0209       implicitDiffusion   = .FALSE.
ababcf8304 Alis*0210       implicitViscosity   = .FALSE.
9e44938df7 Jean*0211       selectImplicitDrag  = 0
b9d351b225 Jean*0212       momImplVertAdv      = .FALSE.
                0213       tempImplVertAdv     = .FALSE.
                0214       saltImplVertAdv     = .FALSE.
88830be691 Alis*0215       nonHydrostatic      = .FALSE.
775ad00e06 Alis*0216       quasiHydrostatic    = .FALSE.
ab42872a05 Alis*0217       globalFiles         = .FALSE.
6060ec2938 Dimi*0218       useSingleCpuIO      = .FALSE.
631fe75038 Dimi*0219       useSingleCpuInput   = .FALSE.
ab42872a05 Alis*0220       allowFreezing       = .FALSE.
14007c468a Jean*0221       ivdc_kappa          = 0. _d 0
385f8651c3 Jean*0222       hMixCriteria        = -.8 _d 0
7c01d59526 Davi*0223       dRhoSmall           = 1. _d -6
d1b0368d70 Davi*0224       hMixSmooth          = 0. _d 0
a1bffd2f2d Jean*0225       usePickupBeforeC54    = .FALSE.
0cc2b10d6d Alis*0226       tempAdvScheme       = 2
                0227       saltAdvScheme       = 2
24016b3859 Alis*0228       multiDimAdvection   = .TRUE.
855e7aca52 Jean*0229       useMultiDimAdvec    = .FALSE.
a97467b673 Jean*0230       useCDscheme         = .FALSE.
427e24e121 Jean*0231       select3dCoriScheme  = UNSET_I
7843dde2de jm-c 0232       selectCoriScheme    = UNSET_I
e35a804907 Jean*0233       selectVortScheme    = UNSET_I
7843dde2de jm-c 0234       useJamartMomAdv     = .FALSE.
5d5fff3a81 Alis*0235       upwindVorticity     = .FALSE.
                0236       highOrderVorticity  = .FALSE.
                0237       useAbsVorticity     = .FALSE.
33d790539c Jean*0238       upwindShear         = .FALSE.
502d36da05 Jean*0239       selectKEscheme      = 0
83513ae28b Jean*0240       IF ( debugMode ) THEN
                0241         debugLevel        = debLevD
                0242       ELSE
                0243         debugLevel        = debLevB
                0244 #ifdef ALLOW_AUTODIFF
                0245         debugLevel        = debLevA
                0246 #endif
                0247       ENDIF
0127add478 Alis*0248 
745a0098ab Jean*0249 C--   Set (free)surface-related parameters
f615684c22 Jean*0250       implicitFreeSurface = .FALSE.
745a0098ab Jean*0251       rigidLid            = .FALSE.
14007c468a Jean*0252       implicSurfPress     = 1. _d 0
9e44938df7 Jean*0253       implicDiv2DFlow     = 1. _d 0
745a0098ab Jean*0254       exactConserv        = .FALSE.
1e6181f584 Davi*0255       linFSConserveTr     = .FALSE.
745a0098ab Jean*0256       uniformLin_PhiSurf  = .TRUE.
                0257       nonlinFreeSurf      = 0
81a2602dac Jean*0258       hFacInf             = 0.2 _d 0
                0259       hFacSup             = 2.0 _d 0
0870c568ac Jean*0260       select_rStar        = 0
f15994caab Jean*0261       selectNHfreeSurf    = 0
d18df35fee Jean*0262       selectAddFluid      = 0
745a0098ab Jean*0263       useRealFreshWaterFlux = .FALSE.
                0264       temp_EvPrRn = UNSET_RL
                0265       salt_EvPrRn = 0.
80d98e0151 Dimi*0266       temp_addMass = UNSET_RL
                0267       salt_addMass = UNSET_RL
7e00d7e8f9 Jean*0268       selectBalanceEmPmR  = UNSET_I
2e21c62c84 Mart*0269       balanceQnet         = .FALSE.
                0270       balancePrintMean    = .FALSE.
9e3a303fa3 Gael*0271       balanceThetaClimRelax = .FALSE.
                0272       balanceSaltClimRelax  = .FALSE.
745a0098ab Jean*0273 
dcccd57cb2 Jean*0274 C--   Atmospheric physical parameters (e.g.: EOS)
8a0dea9684 Jean*0275       celsius2K = 273.15 _d 0
5f008e2fec Jean*0276       atm_Po =  1. _d 5
                0277       atm_Cp = 1004. _d 0
                0278       atm_Rd = UNSET_RL
                0279       atm_kappa = 2. _d 0 / 7. _d 0
1aedd07e9b Jean*0280       atm_Rq = 0. _d 0
463053c692 Jean*0281       integr_GeoPot = 2
                0282       selectFindRoSurf = 0
dcccd57cb2 Jean*0283 
0127add478 Alis*0284 C--   Elliptic solver parameters
                0285       cg2dMaxIters       = 150
aecc8b0f47 Mart*0286       cg2dMinItersNSA    = 0
14007c468a Jean*0287       cg2dTargetResidual = 1. _d -7
aea29c8517 Alis*0288       cg2dTargetResWunit = -1.
b46f9da188 Jean*0289       cg2dUseMinResSol   = UNSET_I
14007c468a Jean*0290       cg2dpcOffDFac      = 0.51 _d 0
fe587f155a Jean*0291       cg2dPreCondFreq    = 1
0127add478 Alis*0292       cg3dMaxIters       = 150
14007c468a Jean*0293       cg3dTargetResidual = 1. _d -7
aecc8b0f47 Mart*0294       useNSACGSolver     = .FALSE.
23bce0bbb8 Mart*0295       useSRCGSolver      = .FALSE.
0127add478 Alis*0296 
                0297 C--   Time stepping parameters
062a876ce5 Jean*0298       deltaT            = 0. _d 0
db8d49beca Jean*0299       deltaTMom         = 0. _d 0
                0300       deltaTFreeSurf    = 0. _d 0
062a876ce5 Jean*0301       DO k=1,Nr
                0302         dTtracerLev(k)  = 0. _d 0
                0303       ENDDO
16c445e700 Jean*0304       baseTime          = 0. _d 0
19eda8b250 Jean*0305       nIter0            = -1
                0306       startTime         = UNSET_RL
88830be691 Alis*0307       nTimeSteps        = 0
6e6f314aa7 Patr*0308       nTimeSteps_l2     = 0
19eda8b250 Jean*0309       nEndIter          = 0
                0310       endTime           = 0. _d 0
c2b6ed6bfd Jean*0311       momForcingOutAB   = UNSET_I
                0312       tracForcingOutAB  = UNSET_I
                0313       momDissip_In_AB   = .TRUE.
52242443f2 Jean*0314       doAB_onGtGs       = .TRUE.
14007c468a Jean*0315       abEps             = 0.01 _d 0
92aa7be6ff Jean*0316 #ifdef ALLOW_ADAMSBASHFORTH_3
                0317       alph_AB           = 0.5 _d 0
                0318       beta_AB           = 5. _d 0 / 12. _d 0
                0319       startFromPickupAB2= .FALSE.
                0320 #else
                0321       alph_AB           = UNSET_RL
                0322       beta_AB           = UNSET_RL
                0323       startFromPickupAB2= .TRUE.
                0324 #endif
2e3729af6b Jean*0325       cAdjFreq          =  0. _d 0
                0326       tauCD             =  0. _d 0
                0327       tauThetaClimRelax =  0. _d 0
                0328       tauSaltClimRelax  =  0. _d 0
                0329       periodicExternalForcing = .FALSE.
                0330       externForcingPeriod     = 0.
                0331       externForcingCycle      = 0.
                0332       tCylIn            = 0.
                0333       tCylOut           = 20.
                0334 C-    I/O params:
                0335       pickupSuff        = ' '
                0336       pickupStrictlyMatch = .TRUE.
742cf4499c Jean*0337       pChkPtFreq        = deltaT*0
0127add478 Alis*0338       chkPtFreq         = deltaT*0
ff63a227b0 Ed H*0339       outputTypesInclusive = .FALSE.
a30418b6b9 Ed H*0340       pickup_read_mdsio = .TRUE.
                0341       pickup_write_mdsio= .TRUE.
                0342       pickup_write_immed= .FALSE.
8c73a5b228 Mart*0343       writePickupAtEnd  = .TRUE.
88830be691 Alis*0344       dumpFreq          = deltaT*0
ea0f79f160 Patr*0345       adjDumpFreq       = deltaT*0
3a279374db Alis*0346       diagFreq          = deltaT*0
82d0948361 Jean*0347       dumpInitAndLast   = .TRUE.
a30418b6b9 Ed H*0348       snapshot_mdsio    = .TRUE.
dc684458c1 Alis*0349       monitorFreq       = -1.
dd069a2c40 Patr*0350       adjMonitorFreq    = 0.
f804abbd25 Jean*0351       monitorSelect     = UNSET_I
b6356366ca Ed H*0352       monitor_stdio     = .TRUE.
0127add478 Alis*0353       taveFreq          = deltaT*0
a30418b6b9 Ed H*0354       timeave_mdsio     = .TRUE.
9800a0be87 Jean*0355       tave_lastIter     = 0.5 _d 0
0127add478 Alis*0356       readBinaryPrec    = precFloat32
2e3729af6b Jean*0357       writeBinaryPrec   = precFloat32
                0358       rwSuffixType      = 0
0ac260a803 Andr*0359 
0127add478 Alis*0360 C--   Input files
                0361       bathyFile       = ' '
dcccd57cb2 Jean*0362       topoFile        = ' '
26565fca80 Jean*0363       addWwallFile    = ' '
                0364       addSwallFile    = ' '
0127add478 Alis*0365       hydrogSaltFile  = ' '
                0366       hydrogThetaFile = ' '
4c5bb1c88e Jean*0367       maskIniTemp     = .TRUE.
                0368       maskIniSalt     = .TRUE.
                0369       checkIniTemp    = .TRUE.
                0370       checkIniSalt    = .TRUE.
a7c5f770ff Dimi*0371       diffKrFile      = ' '
d062b1342f Gael*0372       viscAhDfile     = ' '
                0373       viscAhZfile     = ' '
                0374       viscA4Dfile     = ' '
                0375       viscA4Zfile     = ' '
0127add478 Alis*0376       zonalWindFile   = ' '
                0377       meridWindFile   = ' '
                0378       thetaClimFile   = ' '
                0379       saltClimFile    = ' '
88830be691 Alis*0380       EmPmRfile       = ' '
1e273d1bf5 Jean*0381       saltFluxFile    = ' '
88830be691 Alis*0382       surfQfile       = ' '
2d2cc93d4f Jean*0383       surfQnetFile    = ' '
                0384       surfQswFile     = ' '
e5c33d9529 Alis*0385       uVelInitFile    = ' '
                0386       vVelInitFile    = ' '
c53bb77cb3 Alis*0387       pSurfInitFile   = ' '
db8d49beca Jean*0388       pLoadFile       = ' '
0320e25227 Mart*0389       geoPotAnomFile  = ' '
db8d49beca Jean*0390       addMassFile     = ' '
32a8696465 Chri*0391       eddyPsiXFile    = ' '
                0392       eddyPsiYFile    = ' '
bbb6ffc210 Jean*0393       geothermalFile  = ' '
28659cf1dc Patr*0394       lambdaThetaFile = ' '
                0395       lambdaSaltFile  = ' '
7e00d7e8f9 Jean*0396       wghtBalanceFile = ' '
494ad43bae Patr*0397       mdsioLocalDir   = ' '
cbc417d429 Mart*0398       adTapeDir       = ' '
e5ac5ab665 Jean*0399       the_run_name    = ' '
0127add478 Alis*0400 
                0401       RETURN
                0402       END