/[MITgcm]/MITgcm/model/src/set_defaults.F
ViewVC logotype

Diff of /MITgcm/model/src/set_defaults.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.4 by adcroft, Tue Jun 29 18:33:26 1999 UTC revision 1.167 by jmc, Tue Jul 30 18:51:01 2013 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2    C $Name$
3    
4    #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    
7    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
8    CBOP
9    C     !ROUTINE: SET_DEFAULTS
10    C     !INTERFACE:
11        SUBROUTINE SET_DEFAULTS(        SUBROUTINE SET_DEFAULTS(
12       O   viscArDefault, diffKrTDefault, diffKrSDefault,       O   viscArDefault, diffKrTDefault, diffKrSDefault,
13       O   hFacMinDrDefault, delRdefault, rkFacDefault,       O   hFacMinDrDefault, delRdefault,
14       I   myThid )       I   myThid )
 C     /==========================================================\  
 C     | SUBROUTINE SET_DEFAULTS                                  |  
 C     | o Routine to set model "parameters"                      |  
 C     |==========================================================|  
 C     | Notes:                                                   |  
 C     | ======                                                   |  
 C     | The present version of this routine is a place-holder.   |  
 C     | A production version needs to handle parameters from an  |  
 C     | external file and possibly reading in some initial field |  
 C     | values.                                                  |  
 C     \==========================================================/  
       IMPLICIT NONE  
15    
16  C     === Global variables ===  C     !DESCRIPTION:
17    C     Routine to set model "parameter defaults".
18    
19    C     !USES:
20          IMPLICIT NONE
21  #include "SIZE.h"  #include "SIZE.h"
22  #include "EEPARAMS.h"  #include "EEPARAMS.h"
23  #include "PARAMS.h"  #include "PARAMS.h"
24  #include "GRID.h"  #ifdef ALLOW_EXCH2
25  #include "CG2D.h"  # include "W2_EXCH2_SIZE.h"
26    #endif /* ALLOW_EXCH2 */
27    #include "SET_GRID.h"
28    
29  C     === Routine arguments ===  C     !INPUT/OUTPUT PARAMETERS:
30  C     myThid - Number of this instance of INI_PARMS  C     myThid :: my Thread Id. Number
31        INTEGER myThid        INTEGER myThid
32        _RL viscArDefault        _RL viscArDefault
33        _RL diffKrTDefault        _RL diffKrTDefault
34        _RL diffKrSDefault        _RL diffKrSDefault
35        _RL hFacMinDrDefault        _RL hFacMinDrDefault
36        _RL delRDefault(Nr)        _RL delRDefault(Nr)
       _RS rkFacDefault  
37    
38  C     === Local variables ===  C     !LOCAL VARIABLES:
39  C     K, I, J - Loop counters  C     i, j, k :: Loop counters
40        INTEGER K, I, J        INTEGER i, j, k
41    CEOP
42    
43  C--   Grid parameters  C--   Grid parameters
44  C     Vertical gridding  C-    Vertical gridding
45        rkFacDefault         = 1.D0        delRFile            = ' '
46        horiVertRatio        = 1.D0        delRcFile           = ' '
47          hybSigmFile         = ' '
48          Ro_SeaLevel         = 0.
49          rSigmaBnd           = UNSET_RL
50          selectSigmaCoord    = 0
51        DO k=1,Nr        DO k=1,Nr
52         delRdefault(k) = 0.         delRdefault(k)     = 0.
53        ENDDO        ENDDO
54          DO k=1,Nr+1
55  C     Horizontal gridding         delRc(k)           = UNSET_RL
56  C     In cartesian coords distances are in metres        ENDDO
57        usingCartesianGrid = .TRUE.  C-    vertical profile
58        DO i=1,Nx        tRefFile            = ' '
59         delX(i) = 0.        sRefFile            = ' '
60          rhoRefFile          = ' '
61    
62    C-    Horizontal gridding
63          delXFile            = ' '
64          delYFile            = ' '
65          horizGridFile       = ' '
66          deepAtmosphere      = .FALSE.
67          xgOrigin            = UNSET_RL
68          ygOrigin            = UNSET_RL
69          DO i=1,grid_maxNx
70           delX(i)            = UNSET_RL
71        ENDDO        ENDDO
72        DO j=1,Ny        DO j=1,grid_maxNy
73         delY(j) = 0.         delY(j)            = UNSET_RL
74        ENDDO        ENDDO
75    C     In cartesian coords distances are in metres
76          usingCartesianGrid  = .FALSE.
77  C     In spherical polar distances are in degrees  C     In spherical polar distances are in degrees
78        usingSphericalPolarGrid = .FALSE.        usingSphericalPolarGrid = .FALSE.
79        phiMin               = 0.0        rSphere             = UNSET_RL
80        thetaMin             = 0.  C     General curvilinear coordinate system
81        rSphere              = 6370. * 1.D3        usingCurvilinearGrid= .FALSE.
82          radius_fromHorizGrid= UNSET_RL
83          hasWetCSCorners     = .FALSE.
84    C     General cylindrical coordinate system
85          usingCylindricalGrid= .FALSE.
86    C     Coriolis map:
87          selectCoriMap       = -1
88          use3dCoriolis       = .TRUE.
89    C     grid rotation
90          rotateGrid          = .FALSE.
91          phiEuler            = 0. _d 0
92          thetaEuler          = 0. _d 0
93          psiEuler            = 0. _d 0
94    
95  C--   Set default "physical" parameters  C--   Set default "physical" parameters
96        DO K =1,Nr        nh_Am2              = 1. _d 0
97         tRef(K) = 30.D0 - FLOAT( K )        gravity             = 9.81 _d 0
98        ENDDO        rhoNil              = 999.8 _d 0
99        gravity             = 9.81D0  C-- jmc : the default is to set rhoConstFresh to rhoConst (=rhoNil by default)
100        rhoNil              = 999.8D0  C         (so that the default produces same results as before)
101        f0                  = 1.D-4  c     rhoConstFresh       = 999.8 _d 0
102        beta                = 1.D-11        f0                  = 1. _d -4
103        viscAh              = 0.D3        beta                = 1. _d -11
104        diffKhT             = 0.D3        fPrime              = 0. _d 0
105        diffKhS             = 0.D3  C-    Earth rotation period is 86400*365.25/366.25 (use to be 1.day)
106        viscArDefault       = 0.D-3        rotationPeriod      = 86164. _d 0
107    C-    viscosity and diffusivity default value:
108          viscAh              = 0. _d 3
109          smag3D_coeff        = 1. _d -2
110          viscAhGrid          = 0. _d 0
111          viscAhGridMin       = 0. _d 0
112          viscAhGridMax       = 1. _d 21
113          viscAhMax           = 1. _d 21
114          viscAhReMax         = 0. _d 0
115          viscC2leith         = 0. _d 0
116          viscC2leithD        = 0. _d 0
117          viscC2smag          = 0. _d 0
118          viscArDefault       = 0. _d -3
119        no_slip_sides       = .TRUE.        no_slip_sides       = .TRUE.
120        no_slip_bottom      = .TRUE.        no_slip_bottom      = .TRUE.
121        diffKrTDefault      = 0.D-3        sideDragFactor      = 2. _d 0
122        diffKrSDefault      = 0.D-3        bottomDragLinear    = 0.
123        viscA4              = 0.D11        bottomDragQuadratic = 0.
124        diffK4T             = 0.D11        viscA4              = 0. _d 11
125        diffK4S             = 0.D11        viscA4Grid          = 0. _d 0
126          viscA4GridMax       = 1. _d 21
127          viscA4GridMin       = 0. _d 0
128          viscA4Max           = 1. _d 21
129          viscA4ReMax         = 0. _d 0
130          viscC4leith         = 0. _d 0
131          viscC4leithD        = 0. _d 0
132          viscC4smag          = 0. _d 0
133          DO k=1,Nr
134           viscArNr(k)        = UNSET_RL
135          ENDDO
136        cosPower            = 0.        cosPower            = 0.
137        GMmaxslope          = 1.D-2        diffKhT             = 0. _d 3
138        GMlength            = 200.D3        diffKhS             = 0. _d 3
139        GMalpha             = 0.D0        diffK4T             = 0. _d 11
140        GMdepth             = 1000.D0        diffK4S             = 0. _d 11
141        GMkbackground       = 0.D0        diffKrTDefault      = 0. _d -3
142        GMmaxval            = 2500.D0        diffKrSDefault      = 0. _d -3
143        HeatCapacity_Cp     = 3994.D0        diffKrBL79surf      = 0. _d 0
144        tAlpha              = 2.D-4        diffKrBL79deep      = 0. _d 0
145        sBeta               = 7.4D-4        diffKrBL79scl       = 200. _d 0
146          diffKrBL79Ho        = -2000. _d 0
147          BL79LatVary         = 30.
148          diffKrBLEQsurf      = UNSET_RL
149          diffKrBLEQdeep      = UNSET_RL
150          diffKrBLEQscl       = UNSET_RL
151          diffKrBLEQHo        = UNSET_RL
152          DO k=1,Nr
153           diffKrNrT(k)       = UNSET_RL
154           diffKrNrS(k)       = UNSET_RL
155           diffKr4T(k)        = 0.
156           diffKr4S(k)        = 0.
157          ENDDO
158          HeatCapacity_Cp     = 3994. _d 0
159    Cml      tAlpha              = 2. _d -4
160    Cml      sBeta               = 7.4 _d -4
161        eosType             = 'LINEAR'        eosType             = 'LINEAR'
162        buoyancyRelation    = 'OCEANIC'        buoyancyRelation    = 'OCEANIC'
163        implicitFreeSurface = .TRUE.        smoothAbsFuncRange  = 0. _d 0
164        rigidLid            = .FALSE.        hFacMin             = 1. _d 0
165        hFacMin             = 1.D0        hFacMinDrDefault    = 0. _d 0
166        hFacMinDrDefault    = 0.D0        implicitIntGravWave = .FALSE.
167          staggerTimeStep     = .FALSE.
168          doResetHFactors     = .FALSE.
169        momViscosity        = .TRUE.        momViscosity        = .TRUE.
170        momAdvection        = .TRUE.        momAdvection        = .TRUE.
171        momForcing          = .TRUE.        momForcing          = .TRUE.
172        useCoriolis         = .TRUE.        useCoriolis         = .TRUE.
173        momPressureForcing  = .TRUE.        momPressureForcing  = .TRUE.
174        momStepping         = .TRUE.        momStepping         = .TRUE.
175          vectorInvariantMomentum = .FALSE.
176        tempStepping        = .TRUE.        tempStepping        = .TRUE.
177          tempAdvection       = .TRUE.
178          tempForcing         = .TRUE.
179        saltStepping        = .TRUE.        saltStepping        = .TRUE.
180        metricTerms         = .FALSE.        saltAdvection       = .TRUE.
181          saltForcing         = .TRUE.
182          addFrictionHeating  = .FALSE.
183          metricTerms         = .TRUE.
184          useNHMTerms         = .FALSE.
185          useSmag3D           = .FALSE.
186          useFullLeith        = .FALSE.
187          useAreaViscLength   = .FALSE.
188          useStrainTensionVisc= .FALSE.
189        implicitDiffusion   = .FALSE.        implicitDiffusion   = .FALSE.
190        openBoundaries      = .FALSE.        implicitViscosity   = .FALSE.
191          momImplVertAdv      = .FALSE.
192          tempImplVertAdv     = .FALSE.
193          saltImplVertAdv     = .FALSE.
194        nonHydrostatic      = .FALSE.        nonHydrostatic      = .FALSE.
195          quasiHydrostatic    = .FALSE.
196        globalFiles         = .FALSE.        globalFiles         = .FALSE.
197          useSingleCpuIO      = .FALSE.
198        allowFreezing       = .FALSE.        allowFreezing       = .FALSE.
199          useOldFreezing      = .FALSE.
200          ivdc_kappa          = 0. _d 0
201          hMixCriteria        = -.8 _d 0
202          dRhoSmall           = 1. _d -6
203          hMixSmooth          = 0. _d 0
204          usePickupBeforeC54    = .FALSE.
205          tempAdvScheme       = 2
206          saltAdvScheme       = 2
207          multiDimAdvection   = .TRUE.
208          useMultiDimAdvec    = .FALSE.
209          useCDscheme         = .FALSE.
210          useEnergyConservingCoriolis = .FALSE.
211          useJamartWetPoints  = .FALSE.
212          useJamartMomAdv     = .FALSE.
213          selectVortScheme    = UNSET_I
214          upwindVorticity     = .FALSE.
215          highOrderVorticity  = .FALSE.
216          useAbsVorticity     = .FALSE.
217          upwindShear         = .FALSE.
218          selectKEscheme      = 0
219          IF ( debugMode ) THEN
220            debugLevel        = debLevD
221          ELSE
222            debugLevel        = debLevB
223    #ifdef ALLOW_AUTODIFF
224            debugLevel        = debLevA
225    #endif
226          ENDIF
227    
228    C--   Set (free)surface-related parameters
229          implicitFreeSurface = .FALSE.
230          rigidLid            = .FALSE.
231          implicSurfPress     = 1. _d 0
232          implicDiv2Dflow     = 1. _d 0
233          exactConserv        = .FALSE.
234          linFSConserveTr     = .FALSE.
235          uniformLin_PhiSurf  = .TRUE.
236          nonlinFreeSurf      = 0
237          hFacInf             = 0.2 _d 0
238          hFacSup             = 2.0 _d 0
239          select_rStar        = 0
240          selectNHfreeSurf    = 0
241          selectAddFluid      = 0
242          useRealFreshWaterFlux = .FALSE.
243          temp_EvPrRn = UNSET_RL
244          salt_EvPrRn = 0.
245          temp_addMass = UNSET_RL
246          salt_addMass = UNSET_RL
247          balanceEmPmR        = .FALSE.
248          balanceQnet         = .FALSE.
249          balancePrintMean    = .FALSE.
250          balanceThetaClimRelax = .FALSE.
251          balanceSaltClimRelax  = .FALSE.
252    
253    C--   Atmospheric physical parameters (e.g.: EOS)
254          celsius2K = 273.15 _d 0
255          atm_Po =  1. _d 5
256          atm_Cp = 1004. _d 0
257          atm_Rd = UNSET_RL
258          atm_kappa = 2. _d 0 / 7. _d 0
259          atm_Rq = 0. _d 0
260          integr_GeoPot = 2
261          selectFindRoSurf = 0
262    
263  C--   Elliptic solver parameters  C--   Elliptic solver parameters
264        cg2dMaxIters       = 150        cg2dMaxIters       = 150
265        cg2dTargetResidual = 1.D-7        cg2dTargetResidual = 1. _d -7
266          cg2dTargetResWunit = -1.
267        cg2dChkResFreq     = 1        cg2dChkResFreq     = 1
268        cg2dpcOffDFac      = 0.51D0        cg2dUseMinResSol   = UNSET_I
269          cg2dpcOffDFac      = 0.51 _d 0
270          cg2dPreCondFreq    = 1
271        cg3dMaxIters       = 150        cg3dMaxIters       = 150
272        cg3dTargetResidual = 1.D-7        cg3dTargetResidual = 1. _d -7
273        cg3dChkResFreq     = 1        cg3dChkResFreq     = 1
274          useSRCGSolver      = .FALSE.
275    
276  C--   Time stepping parameters  C--   Time stepping parameters
277        deltaT            = 0.        deltaT            = 0. _d 0
278        nIter0            = 0        deltaTMom         = 0. _d 0
279        startTime         = deltaT*float(nIter0)        deltaTFreeSurf    = 0. _d 0
280          DO k=1,Nr
281            dTtracerLev(k)  = 0. _d 0
282          ENDDO
283          baseTime          = 0. _d 0
284          nIter0            = -1
285          startTime         = UNSET_RL
286          pickupSuff        = ' '
287          pickupStrictlyMatch = .TRUE.
288        nTimeSteps        = 0        nTimeSteps        = 0
289        endTime           = deltaT*float(nTimeSteps)        nEndIter          = 0
290        abEps             = 0.01        endTime           = 0. _d 0
291        pchkPtFreq        = deltaT*0        momForcingOutAB   = UNSET_I
292          tracForcingOutAB  = UNSET_I
293          momDissip_In_AB   = .TRUE.
294          doAB_onGtGs       = .TRUE.
295          abEps             = 0.01 _d 0
296    #ifdef ALLOW_ADAMSBASHFORTH_3
297          alph_AB           = 0.5 _d 0
298          beta_AB           = 5. _d 0 / 12. _d 0
299          startFromPickupAB2= .FALSE.
300    #else
301          alph_AB           = UNSET_RL
302          beta_AB           = UNSET_RL
303          startFromPickupAB2= .TRUE.
304    #endif
305          pChkPtFreq        = deltaT*0
306        chkPtFreq         = deltaT*0        chkPtFreq         = deltaT*0
307          outputTypesInclusive = .FALSE.
308          pickup_read_mdsio = .TRUE.
309          pickup_write_mdsio= .TRUE.
310          pickup_write_immed= .FALSE.
311          writePickupAtEnd  = .TRUE.
312        dumpFreq          = deltaT*0        dumpFreq          = deltaT*0
313          adjDumpFreq       = deltaT*0
314          diagFreq          = deltaT*0
315          dumpInitAndLast   = .TRUE.
316          snapshot_mdsio    = .TRUE.
317          monitorFreq       = -1.
318          adjMonitorFreq    = 0.
319          monitorSelect     = UNSET_I
320          monitor_stdio     = .TRUE.
321        taveFreq          = deltaT*0        taveFreq          = deltaT*0
322          timeave_mdsio     = .TRUE.
323          tave_lastIter     = 0.5 _d 0
324        writeStatePrec    = precFloat64        writeStatePrec    = precFloat64
325        writeBinaryPrec   = precFloat32        writeBinaryPrec   = precFloat32
326        readBinaryPrec    = precFloat32        readBinaryPrec    = precFloat32
327        nCheckLev         = 1        cAdjFreq          =  0. _d 0
328        checkPtSuff(1)    = 'ckptA'        tauCD             =  0. _d 0
329        checkPtSuff(2)    = 'ckptB'        tauThetaClimRelax =  0. _d 0
330        cAdjFreq          = -1.D0        tauSaltClimRelax  =  0. _d 0
       tauCD             =  0.D0  
       tauThetaClimRelax =  0.D0  
       tauSaltClimRelax  =  0.D0  
331        periodicExternalForcing = .FALSE.        periodicExternalForcing = .FALSE.
332        externForcingPeriod     = 0.        externForcingPeriod     = 0.
333        externForcingCycle      = 0.        externForcingCycle      = 0.
334          tCylIn             = 0.
335          tCylOut            = 20.
336    
337  C--   Input files  C--   Input files
338        bathyFile       = ' '        bathyFile       = ' '
339          topoFile        = ' '
340        hydrogSaltFile  = ' '        hydrogSaltFile  = ' '
341        hydrogThetaFile = ' '        hydrogThetaFile = ' '
342          maskIniTemp     = .TRUE.
343          maskIniSalt     = .TRUE.
344          checkIniTemp    = .TRUE.
345          checkIniSalt    = .TRUE.
346          diffKrFile      = ' '
347          viscAhDfile     = ' '
348          viscAhZfile     = ' '
349          viscA4Dfile     = ' '
350          viscA4Zfile     = ' '
351        zonalWindFile   = ' '        zonalWindFile   = ' '
352        meridWindFile   = ' '        meridWindFile   = ' '
353        thetaClimFile   = ' '        thetaClimFile   = ' '
354        saltClimFile    = ' '        saltClimFile    = ' '
355        EmPmRfile       = ' '        EmPmRfile       = ' '
356          saltFluxFile    = ' '
357        surfQfile       = ' '        surfQfile       = ' '
358          surfQnetFile    = ' '
359          surfQswFile     = ' '
360          uVelInitFile    = ' '
361          vVelInitFile    = ' '
362          pSurfInitFile   = ' '
363          pLoadFile       = ' '
364          addMassFile     = ' '
365          eddyPsiXFile    = ' '
366          eddyPsiYFile    = ' '
367          lambdaThetaFile = ' '
368          lambdaSaltFile  = ' '
369          mdsioLocalDir   = ' '
370          adTapeDir       = ' '
371          the_run_name    = ' '
372    
 C--   OBCS  
       DO I=1,Nx  
        OB_Jnorth(I)=0  
        OB_Jsouth(I)=0  
       ENDDO  
       DO J=1,Ny  
        OB_Ieast(J)=0  
        OB_Iwest(J)=0  
       ENDDO  
   
 C  
373        RETURN        RETURN
374        END        END
   

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.167

  ViewVC Help
Powered by ViewVC 1.1.22