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

Legend:
Removed from v.1.52  
changed lines
  Added in v.1.155

  ViewVC Help
Powered by ViewVC 1.1.22