/[MITgcm]/MITgcm_contrib/dgoldberg/code_cg3d_petsc/set_defaults.F
ViewVC logotype

Annotation of /MITgcm_contrib/dgoldberg/code_cg3d_petsc/set_defaults.F

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


Revision 1.1 - (hide annotations) (download)
Fri Jul 1 20:40:30 2016 UTC (9 years ago) by dgoldberg
Branch: MAIN
test files for using cg3d with petsc

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

  ViewVC Help
Powered by ViewVC 1.1.22