| 1 | C $Header: /u/gcmpack/MITgcm_contrib/osse/codemod/set_defaults.F,v 1.2 2004/06/23 19:56:48 afe Exp $ | 
| 2 | C $Name:  $ | 
| 3 |  | 
| 4 | #include "CPP_OPTIONS.h" | 
| 5 |  | 
| 6 | CBOP | 
| 7 | C     !ROUTINE: SET_DEFAULTS | 
| 8 | C     !INTERFACE: | 
| 9 | SUBROUTINE SET_DEFAULTS( | 
| 10 | O   viscArDefault, diffKrTDefault, diffKrSDefault, | 
| 11 | O   hFacMinDrDefault, delRdefault, rkFacDefault, | 
| 12 | I   myThid ) | 
| 13 |  | 
| 14 | C     !DESCRIPTION: \bv | 
| 15 | C     *==========================================================* | 
| 16 | C     | SUBROUTINE SET_DEFAULTS | 
| 17 | C     | o Routine to set model "parameters" | 
| 18 | C     *==========================================================* | 
| 19 | C     | Notes: | 
| 20 | C     | ====== | 
| 21 | C     | The present version of this routine is a place-holder. | 
| 22 | C     | A production version needs to handle parameters from an | 
| 23 | C     | external file and possibly reading in some initial field | 
| 24 | C     | values. | 
| 25 | C     *==========================================================* | 
| 26 | C     \ev | 
| 27 |  | 
| 28 | C     !USES: | 
| 29 | IMPLICIT NONE | 
| 30 | C     === Global variables === | 
| 31 | #include "SIZE.h" | 
| 32 | #include "EEPARAMS.h" | 
| 33 | #include "PARAMS.h" | 
| 34 | Cml#include "EOS.h" | 
| 35 | #include "GRID.h" | 
| 36 |  | 
| 37 | C     !INPUT/OUTPUT PARAMETERS: | 
| 38 | C     === Routine arguments === | 
| 39 | C     myThid - Number of this instance of INI_PARMS | 
| 40 | INTEGER myThid | 
| 41 | _RL viscArDefault | 
| 42 | _RL diffKrTDefault | 
| 43 | _RL diffKrSDefault | 
| 44 | _RL hFacMinDrDefault | 
| 45 | _RL delRDefault(Nr) | 
| 46 | _RS rkFacDefault | 
| 47 |  | 
| 48 | C     !LOCAL VARIABLES: | 
| 49 | C     === Local variables === | 
| 50 | C     K, I, J - Loop counters | 
| 51 | INTEGER K, I, J | 
| 52 | CEOP | 
| 53 |  | 
| 54 | C--   Grid parameters | 
| 55 | C     Vertical gridding | 
| 56 | rkFacDefault         = 1.D0 | 
| 57 | horiVertRatio        = 1.D0 | 
| 58 | Ro_SeaLevel = 0. | 
| 59 | DO k=1,Nr | 
| 60 | delRdefault(k) = 0. | 
| 61 | ENDDO | 
| 62 | DO k=1,Nr+1 | 
| 63 | delRc(k) = UNSET_RL | 
| 64 | ENDDO | 
| 65 |  | 
| 66 | C     Horizontal gridding | 
| 67 | C     In cartesian coords distances are in metres | 
| 68 | usingCartesianGrid = .FALSE. | 
| 69 | DO i=1,Nx | 
| 70 | delX(i) = UNSET_RL | 
| 71 | ENDDO | 
| 72 | DO j=1,Ny | 
| 73 | delY(j) = UNSET_RL | 
| 74 | ENDDO | 
| 75 | C     In spherical polar distances are in degrees | 
| 76 | usingSphericalPolarGrid = .FALSE. | 
| 77 | phiMin               = 0.0 | 
| 78 | thetaMin             = 0. | 
| 79 | rSphere              = 6370. * 1.D3 | 
| 80 | C     General curvilinear coordinate system | 
| 81 | usingCurvilinearGrid = .FALSE. | 
| 82 | C     General cylindrical coordinate system | 
| 83 | usingCylindricalGrid = .FALSE. | 
| 84 |  | 
| 85 |  | 
| 86 | C--   Set default "physical" parameters | 
| 87 | DO K =1,Nr | 
| 88 | tRef(K) = 30.D0 - FLOAT( K ) | 
| 89 | Cml       sRef(K) = 35.D0 | 
| 90 | ENDDO | 
| 91 | gravity             = 9.81D0 | 
| 92 | rhoNil              = 999.8D0 | 
| 93 | C-- jmc : the default is to set rhoConstFresh to rhoConst (=rhoNil by default) | 
| 94 | C         (so that the default produces same results as before) | 
| 95 | c     rhoConstFresh       = 999.8D0 | 
| 96 | f0                  = 1.D-4 | 
| 97 | beta                = 1.D-11 | 
| 98 | C-    Always use 1 day in the past but should be 86164 (=86400*365.25/366.25) | 
| 99 | rotationPeriod      = 86400. _d 0 | 
| 100 | viscAh              = 0.D3 | 
| 101 | viscAhGrid          = 0.D0 | 
| 102 | viscAhMax           = 1.D21 | 
| 103 | viscC2leith         = 0.D0 | 
| 104 | viscAstrain         = 0.D3 | 
| 105 | viscAtension        = 0.D3 | 
| 106 | diffKhT             = 0.D3 | 
| 107 | diffKhS             = 0.D3 | 
| 108 | viscArDefault       = 0.D-3 | 
| 109 | no_slip_sides       = .TRUE. | 
| 110 | no_slip_bottom      = .TRUE. | 
| 111 | diffKrTDefault      = 0.D-3 | 
| 112 | diffKrSDefault      = 0.D-3 | 
| 113 | diffKrBL79surf      = 0.D0 | 
| 114 | diffKrBL79deep      = 0.D0 | 
| 115 | diffKrBL79scl       = 200.D0 | 
| 116 | diffKrBL79Ho        = -2000.D0 | 
| 117 | viscA4              = 0.D11 | 
| 118 | viscA4Grid          = 0.D0 | 
| 119 | viscA4Max           = 1.D21 | 
| 120 | viscC4leith         = 0.D0 | 
| 121 | diffK4T             = 0.D11 | 
| 122 | diffK4S             = 0.D11 | 
| 123 | cosPower            = 0. | 
| 124 | HeatCapacity_Cp     = 3994.D0 | 
| 125 | Cml      tAlpha              = 2.D-4 | 
| 126 | Cml      sBeta               = 7.4D-4 | 
| 127 | eosType             = 'LINEAR' | 
| 128 | buoyancyRelation    = 'OCEANIC' | 
| 129 | hFacMin             = 1.D0 | 
| 130 | hFacMinDrDefault    = 0.D0 | 
| 131 | staggerTimeStep     = .FALSE. | 
| 132 | momViscosity        = .TRUE. | 
| 133 | momAdvection        = .TRUE. | 
| 134 | momForcing          = .TRUE. | 
| 135 | useCoriolis         = .TRUE. | 
| 136 | momPressureForcing  = .TRUE. | 
| 137 | momStepping         = .TRUE. | 
| 138 | vectorInvariantMomentum = .FALSE. | 
| 139 | tempStepping        = .TRUE. | 
| 140 | tempAdvection       = .TRUE. | 
| 141 | tempForcing         = .TRUE. | 
| 142 | saltStepping        = .TRUE. | 
| 143 | saltAdvection       = .TRUE. | 
| 144 | saltForcing         = .TRUE. | 
| 145 | tr1Stepping         = .FALSE. | 
| 146 | metricTerms         = .TRUE. | 
| 147 | useNHMTerms         = .FALSE. | 
| 148 | implicitDiffusion   = .FALSE. | 
| 149 | implicitViscosity   = .FALSE. | 
| 150 | momImplVertAdv      = .FALSE. | 
| 151 | tempImplVertAdv     = .FALSE. | 
| 152 | saltImplVertAdv     = .FALSE. | 
| 153 | nonHydrostatic      = .FALSE. | 
| 154 | quasiHydrostatic    = .FALSE. | 
| 155 | globalFiles         = .FALSE. | 
| 156 | useSingleCpuIO      = .FALSE. | 
| 157 | allowFreezing       = .FALSE. | 
| 158 | useOldFreezing      = .FALSE. | 
| 159 | ivdc_kappa          = 0.D0 | 
| 160 | groundAtK1          = .FALSE. | 
| 161 | bottomDragLinear    = 0. | 
| 162 | bottomDragQuadratic = 0. | 
| 163 | usePickupBeforeC35    = .FALSE. | 
| 164 | debugMode             = .FALSE. | 
| 165 | readPickupWithTracer  = .FALSE. | 
| 166 | writePickupWithTracer = .FALSE. | 
| 167 | tempAdvScheme       = 2 | 
| 168 | saltAdvScheme       = 2 | 
| 169 | tracerAdvScheme     = 2 | 
| 170 | multiDimAdvection   = .TRUE. | 
| 171 | useCDscheme         = .FALSE. | 
| 172 | useEnergyConservingCoriolis = .FALSE. | 
| 173 | useJamartWetPoints  = .FALSE. | 
| 174 | useJamartMomAdv     = .FALSE. | 
| 175 | SadournyCoriolis    = .FALSE. | 
| 176 | upwindVorticity     = .FALSE. | 
| 177 | highOrderVorticity  = .FALSE. | 
| 178 | useAbsVorticity     = .FALSE. | 
| 179 | debugLevel          = debLevA | 
| 180 |  | 
| 181 | C--   Set (free)surface-related parameters | 
| 182 | implicitFreeSurface = .TRUE. | 
| 183 | rigidLid            = .FALSE. | 
| 184 | implicSurfPress     = 1.D0 | 
| 185 | implicDiv2DFlow     = 1.D0 | 
| 186 | exactConserv        = .FALSE. | 
| 187 | uniformLin_PhiSurf  = .TRUE. | 
| 188 | nonlinFreeSurf      = 0 | 
| 189 | hFacInf             = 0.2 _d 0 | 
| 190 | hFacSup             = 2.0 _d 0 | 
| 191 | select_rStar        = 0 | 
| 192 | useRealFreshWaterFlux = .FALSE. | 
| 193 | temp_EvPrRn = UNSET_RL | 
| 194 | salt_EvPrRn = 0. | 
| 195 | trac_EvPrRn = UNSET_RL | 
| 196 |  | 
| 197 | C--   Atmospheric physical parameters (e.g.: EOS) | 
| 198 | celsius2K = 273.16 _d 0 | 
| 199 | atm_Po =  1. _d 5 | 
| 200 | atm_Cp = 1004. _d 0 | 
| 201 | atm_Rd = UNSET_RL | 
| 202 | atm_kappa = 2. _d 0 / 7. _d 0 | 
| 203 | atm_Rq = 0. _d 0 | 
| 204 | integr_GeoPot = 2 | 
| 205 | selectFindRoSurf = 0 | 
| 206 |  | 
| 207 | C--   Elliptic solver parameters | 
| 208 | cg2dMaxIters       = 150 | 
| 209 | cg2dTargetResidual = 1.D-7 | 
| 210 | cg2dTargetResWunit = -1. | 
| 211 | cg2dChkResFreq     = 1 | 
| 212 | cg2dpcOffDFac      = 0.51D0 | 
| 213 | cg3dMaxIters       = 150 | 
| 214 | cg3dTargetResidual = 1.D-7 | 
| 215 | cg3dChkResFreq     = 1 | 
| 216 |  | 
| 217 | C--   Time stepping parameters | 
| 218 | deltaT            = 0. | 
| 219 | nIter0            = 0 | 
| 220 | startTime         = deltaT*float(nIter0) | 
| 221 | pickupSuff        = ' ' | 
| 222 | nTimeSteps        = 0 | 
| 223 | nEndIter          = nIter0+nTimeSteps | 
| 224 | endTime           = deltaT*float(nEndIter) | 
| 225 | forcing_In_AB     = .TRUE. | 
| 226 | abEps             = 0.01 | 
| 227 | pchkPtFreq        = deltaT*0 | 
| 228 | chkPtFreq         = deltaT*0 | 
| 229 | dumpFreq          = deltaT*0 | 
| 230 | adjDumpFreq       = deltaT*0 | 
| 231 | diagFreq          = deltaT*0 | 
| 232 | monitorFreq       = -1. | 
| 233 | taveFreq          = deltaT*0 | 
| 234 | tave_lastIter     = 0.5 _d 0 | 
| 235 | writeStatePrec    = precFloat64 | 
| 236 | writeBinaryPrec   = precFloat32 | 
| 237 | readBinaryPrec    = precFloat32 | 
| 238 | nCheckLev         = 1 | 
| 239 | checkPtSuff(1)    = 'ckptA' | 
| 240 | checkPtSuff(2)    = 'ckptB' | 
| 241 | cAdjFreq          =  0.D0 | 
| 242 | tauCD             =  0.D0 | 
| 243 | tauThetaClimRelax =  0.D0 | 
| 244 | tauSaltClimRelax  =  0.D0 | 
| 245 | tauTr1ClimRelax   =  0.D0 | 
| 246 | periodicExternalForcing = .FALSE. | 
| 247 | externForcingPeriod     = 0. | 
| 248 | externForcingCycle      = 0. | 
| 249 | tCyl              = 0. | 
| 250 |  | 
| 251 |  | 
| 252 | C--   Input files | 
| 253 | bathyFile       = ' ' | 
| 254 | topoFile        = ' ' | 
| 255 | hydrogSaltFile  = ' ' | 
| 256 | hydrogThetaFile = ' ' | 
| 257 | zonalWindFile   = ' ' | 
| 258 | meridWindFile   = ' ' | 
| 259 | thetaClimFile   = ' ' | 
| 260 | saltClimFile    = ' ' | 
| 261 | EmPmRfile       = ' ' | 
| 262 | surfQfile       = ' ' | 
| 263 | surfQswfile     = ' ' | 
| 264 | uVelInitFile    = ' ' | 
| 265 | vVelInitFile    = ' ' | 
| 266 | pSurfInitFile   = ' ' | 
| 267 | dQdTFile        = ' ' | 
| 268 | ploadFile       = ' ' | 
| 269 | mdsioLocalDir   = ' ' | 
| 270 |  | 
| 271 | C | 
| 272 | RETURN | 
| 273 | END |