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

Contents 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 - (show annotations) (download)
Fri Jul 1 20:40:30 2016 UTC (7 years, 10 months ago) by dgoldberg
Branch: MAIN
test files for using cg3d with petsc

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