forked from NOAA-GFDL/MOM6-examples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMOM_parameter_doc.all
More file actions
1836 lines (1781 loc) · 143 KB
/
MOM_parameter_doc.all
File metadata and controls
1836 lines (1781 loc) · 143 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
! This file was written by the model and records all non-layout or debugging parameters used at run-time.
! === module MOM ===
SPLIT = True ! [Boolean] default = True
! Use the split time stepping if true.
SPLIT_RK2B = False ! [Boolean] default = False
! If true, use a version of the split explicit time stepping scheme that
! exchanges velocities with step_MOM that have the average barotropic phase over
! a baroclinic timestep rather than the instantaneous barotropic phase.
CALC_RHO_FOR_SEA_LEVEL = False ! [Boolean] default = False
! If true, the in-situ density is used to calculate the effective sea level that
! is returned to the coupler. If false, the Boussinesq parameter RHO_0 is used.
ENABLE_THERMODYNAMICS = False ! [Boolean] default = True
! If true, Temperature and salinity are used as state variables.
USE_EOS = False ! [Boolean] default = False
! If true, density is calculated from temperature and salinity with an equation
! of state. If USE_EOS is true, ENABLE_THERMODYNAMICS must be true as well.
DIABATIC_FIRST = False ! [Boolean] default = False
! If true, apply diabatic and thermodynamic processes, including buoyancy
! forcing and mass gain or loss, before stepping the dynamics forward.
USE_CONTEMP_ABSSAL = False ! [Boolean] default = False
! If true, the prognostics T&S are the conservative temperature and absolute
! salinity. Care should be taken to convert them to potential temperature and
! practical salinity before exchanging them with the coupler and/or reporting
! T&S diagnostics.
ADIABATIC = False ! [Boolean] default = False
! There are no diapycnal mass fluxes if ADIABATIC is true. This assumes that KD
! = 0.0 and that there is no buoyancy forcing, but makes the model faster by
! eliminating subroutine calls.
DO_DYNAMICS = True ! [Boolean] default = True
! If False, skips the dynamics calls that update u & v, as well as the gravity
! wave adjustment to h. This may be a fragile feature, but can be useful during
! development
OFFLINE_TRACER_MODE = False ! [Boolean] default = False
! If true, barotropic and baroclinic dynamics, thermodynamics are all bypassed
! with all the fields necessary to integrate the tracer advection and diffusion
! equation are read in from files stored from a previous integration of the
! prognostic model. NOTE: This option only used in the ocean_solo_driver.
USE_REGRIDDING = False ! [Boolean] default = False
! If True, use the ALE algorithm (regridding/remapping). If False, use the
! layered isopycnal algorithm.
BULKMIXEDLAYER = False ! [Boolean] default = False
! If true, use a Kraus-Turner-like bulk mixed layer with transitional buffer
! layers. Layers 1 through NKML+NKBL have variable densities. There must be at
! least NKML+NKBL+1 layers if BULKMIXEDLAYER is true. BULKMIXEDLAYER can not be
! used with USE_REGRIDDING. The default is influenced by ENABLE_THERMODYNAMICS.
USE_POROUS_BARRIER = False ! [Boolean] default = False
! If true, use porous barrier to constrain the widths and face areas at the
! edges of the grid cells.
BATHYMETRY_AT_VEL = False ! [Boolean] default = False
! If true, there are separate values for the basin depths at velocity points.
! Otherwise the effects of topography are entirely determined from thickness
! points.
ENABLE_BUGS_BY_DEFAULT = True ! [Boolean] default = True
! If true, the defaults for certain recently added bug-fix flags are set to
! recreate the bugs so that the code can be moved forward without changing
! answers for existing configurations. The defaults for groups of bug-fix flags
! are periodically changed to correct the bugs, at which point this parameter
! will no longer be used to set their default. Setting this to false means that
! bugs are only used if they are actively selected, but it also means that
! answers may change when code is updated due to newly found bugs.
DT = 120.0 ! [s]
! The (baroclinic) dynamics time step. The time-step that is actually used will
! be an integer fraction of the forcing time-step (DT_FORCING in ocean-only mode
! or the coupling timestep in coupled mode.)
DT_THERM = 120.0 ! [s] default = 120.0
! The thermodynamic time step. Ideally DT_THERM should be an integer multiple of
! DT and of DT_TRACER_ADVECT and less than the forcing or coupling time-step.
! However, if THERMO_SPANS_COUPLING is true, DT_THERM can be an integer multiple
! of the coupling timestep. By default DT_THERM is set to DT.
THERMO_SPANS_COUPLING = False ! [Boolean] default = False
! If true, the MOM will take thermodynamic timesteps that can be longer than the
! coupling timestep. The actual thermodynamic timestep that is used in this case
! is the largest integer multiple of the coupling timestep that is less than or
! equal to DT_THERM.
DT_TRACER_ADVECT = 120.0 ! [s] default = 120.0
! The tracer advection time step. Ideally DT_TRACER_ADVECT should be an integer
! multiple of DT, less than DT_THERM, and less than the forcing or coupling
! time-step. However, if TRADV_SPANS_COUPLING is true, DT_TRACER_ADVECT can be
! longer than the coupling timestep. By default DT_TRACER_ADVECT is set to
! DT_THERM.
TRADV_SPANS_COUPLING = False ! [Boolean] default = False
! If true, the MOM will take tracer advection timesteps that can be longer than
! the coupling timestep. The actual tracer advection timestep that is used in
! this case is the largest integer multiple of the coupling timestep that is
! less than or equal to DT_TRACER_ADVECT.
THICKNESSDIFFUSE = False ! [Boolean] default = False
! If true, isopycnal surfaces are diffused with a Laplacian coefficient of KHTH.
APPLY_INTERFACE_FILTER = False ! [Boolean] default = False
! If true, model interface heights are subjected to a grid-scale dependent
! spatial smoothing, often with biharmonic filter.
HMIX_SFC_PROP = 1.0 ! [m] default = 1.0
! If BULKMIXEDLAYER is false, HMIX_SFC_PROP is the depth over which to average
! to find surface properties like SST and SSS or density (but not surface
! velocities).
HMIX_UV_SFC_PROP = 0.0 ! [m] default = 0.0
! If BULKMIXEDLAYER is false, HMIX_UV_SFC_PROP is the depth over which to
! average to find surface flow properties, SSU, SSV. A non-positive value
! indicates no averaging.
HFREEZE = -1.0 ! [m] default = -1.0
! If HFREEZE > 0, melt potential will be computed. The actual depth over which
! melt potential is computed will be min(HFREEZE, OBLD), where OBLD is the
! boundary layer depth. If HFREEZE <= 0 (default), melt potential will not be
! computed.
INTERPOLATE_P_SURF = False ! [Boolean] default = False
! If true, linearly interpolate the surface pressure over the coupling time
! step, using the specified value at the end of the step.
DTBT_RESET_PERIOD = -1.0 ! [s] default = 120.0
! The period between recalculations of DTBT (if DTBT <= 0). If DTBT_RESET_PERIOD
! is negative, DTBT is set based only on information available at
! initialization. If 0, DTBT will be set every dynamics time step. The default
! is set by DT_THERM. This is only used if SPLIT is true.
FIRST_DIRECTION = 0 ! default = 0
! An integer that indicates which direction goes first in parts of the code that
! use directionally split updates, with even numbers (or 0) used for x- first
! and odd numbers used for y-first.
ALTERNATE_FIRST_DIRECTION = False ! [Boolean] default = False
! If true, after every dynamic timestep alternate whether the x- or y- direction
! updates occur first in directionally split parts of the calculation. If this
! is true, FIRST_DIRECTION applies at the start of a new run or if the next
! first direction can not be found in the restart file.
CHECK_BAD_SURFACE_VALS = False ! [Boolean] default = False
! If true, check the surface state for ridiculous values.
DEFAULT_ANSWER_DATE = 99991231 ! default = 99991231
! This sets the default value for the various _ANSWER_DATE parameters.
SURFACE_ANSWER_DATE = 99991231 ! default = 99991231
! The vintage of the expressions for the surface properties. Values below
! 20190101 recover the answers from the end of 2018, while higher values use
! updated and more robust forms of the same expressions.
SAVE_INITIAL_CONDS = True ! [Boolean] default = False
! If true, write the initial conditions to a file given by IC_OUTPUT_FILE.
IC_OUTPUT_FILE = "GOLD_IC" ! default = "MOM_IC"
! The file into which to write the initial conditions.
WRITE_GEOM = 1 ! default = 1
! If =0, never write the geometry and vertical grid files. If =1, write the
! geometry and vertical grid files only for a new simulation. If =2, always
! write the geometry and vertical grid files. Other values are invalid.
GEOM_FILE = "ocean_geometry" ! default = "ocean_geometry"
! The file into which to write the ocean geometry.
USE_DBCLIENT = False ! [Boolean] default = False
! If true, initialize a client to a remote database that can be used for online
! analysis and machine-learning inference.
ICE_SHELF = False ! [Boolean] default = False
! If true, enables the ice shelf model.
USE_PARTICLES = False ! [Boolean] default = False
! If true, use the particles package.
ENSEMBLE_OCEAN = False ! [Boolean] default = False
! If False, The model is being run in serial mode as a single realization. If
! True, The current model realization is part of a larger ensemble and at the
! end of step MOM, we will perform a gather of the ensemble members for
! statistical evaluation and/or data assimilation.
HOMOGENIZE_FORCINGS = False ! [Boolean] default = False
! If True, homogenize the forces and fluxes.
! === module MOM_domains ===
REENTRANT_X = False ! [Boolean] default = True
! If true, the domain is zonally reentrant.
REENTRANT_Y = False ! [Boolean] default = False
! If true, the domain is meridionally reentrant.
TRIPOLAR_N = False ! [Boolean] default = False
! Use tripolar connectivity at the northern edge of the domain. With
! TRIPOLAR_N, NIGLOBAL must be even.
NIGLOBAL = 25 !
! The total number of thickness grid points in the x-direction in the physical
! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time.
NJGLOBAL = 25 !
! The total number of thickness grid points in the y-direction in the physical
! domain. With STATIC_MEMORY_ this is set in MOM_memory.h at compile time.
NIHALO = 4 ! default = 4
! The number of halo points on each side in the x-direction. How this is set
! varies with the calling component and static or dynamic memory configuration.
NJHALO = 4 ! default = 4
! The number of halo points on each side in the y-direction. How this is set
! varies with the calling component and static or dynamic memory configuration.
! === module MOM_hor_index ===
! Sets the horizontal array index types.
! === module MOM_grid ===
! Parameters providing information about the lateral grid.
REFERENCE_HEIGHT = 0.0 ! [m] default = 0.0
! A reference value for geometric height fields, such as bathyT.
! === module MOM_grid_init ===
GRID_CONFIG = "cartesian" !
! A character string that determines the method for defining the horizontal
! grid. Current options are:
! mosaic - read the grid from a mosaic (supergrid)
! file set by GRID_FILE.
! cartesian - use a (flat) Cartesian grid.
! spherical - use a simple spherical grid.
! mercator - use a Mercator spherical grid.
AXIS_UNITS = "k" ! default = "degrees"
! The units for the Cartesian axes. Valid entries are:
! degrees - degrees of latitude and longitude
! m or meter(s) - meters
! k or km or kilometer(s) - kilometers
SOUTHLAT = 0.0 ! [km]
! The southern latitude of the domain or the equivalent starting value for the
! y-axis.
LENLAT = 100.0 ! [km]
! The latitudinal or y-direction length of the domain.
WESTLON = 0.0 ! [km] default = 0.0
! The western longitude of the domain or the equivalent starting value for the
! x-axis.
LENLON = 100.0 ! [km]
! The longitudinal or x-direction length of the domain.
RAD_EARTH = 6.378E+06 ! [m] default = 6.378E+06
! The radius of the Earth.
READ_MEAN_SEA_LEVEL = False ! [Boolean] default = False
! If true, use a 2D map for time mean sea level, which is used to calculate time
! mean ocean total thickness.
TOPO_CONFIG = "flat" !
! This specifies how bathymetry is specified:
! file - read bathymetric information from the file
! specified by (TOPO_FILE).
! flat - flat bottom set to MAXIMUM_DEPTH.
! bowl - an analytically specified bowl-shaped basin
! ranging between MAXIMUM_DEPTH and MINIMUM_DEPTH.
! spoon - a similar shape to 'bowl', but with an vertical
! wall at the southern face.
! halfpipe - a zonally uniform channel with a half-sine
! profile in the meridional direction.
! bbuilder - build topography from list of functions.
! benchmark - use the benchmark test case topography.
! Neverworld - use the Neverworld test case topography.
! DOME - use a slope and channel configuration for the
! DOME sill-overflow test case.
! ISOMIP - use a slope and channel configuration for the
! ISOMIP test case.
! DOME2D - use a shelf and slope configuration for the
! DOME2D gravity current/overflow test case.
! Kelvin - flat but with rotated land mask.
! seamount - Gaussian bump for spontaneous motion test case.
! dumbbell - Sloshing channel with reservoirs on both ends.
! shelfwave - exponential slope for shelfwave test case.
! Phillips - ACC-like idealized topography used in the Phillips config.
! dense - Denmark Strait-like dense water formation and overflow.
! USER - call a user modified routine.
MINIMUM_DEPTH = 1.0 ! [m] default = 0.0
! The minimum depth of the ocean.
MAXIMUM_DEPTH = 600.0 ! [m]
! The maximum depth of the ocean.
! === module MOM_open_boundary ===
! Controls where open boundaries are located, what kind of boundary condition to impose, and what data to apply,
! if any.
OBC_NUMBER_OF_SEGMENTS = 4 ! default = 0
! The number of open boundary segments.
OBC_VORTICITY_CONFIG = "freeslip" ! default = "freeslip"
! Configuration for relative vorticity in momentum advection at open boundaries.
! Options are:
! none - No adjustment.
! zero - Sets relative vorticity to zero.
! freeslip - Sets the normal gradient of tangential velocity to zero.
! computed - Computes the normal gradient of tangential velocity using
! external values of tangential velocity.
! specified - Uses the external values of the normal gradient of
! tangential velocity.
OBC_STRAIN_CONFIG = "freeslip" ! default = "freeslip"
! Configuration for strain in horizontal viscosity at open boundaries. Options
! are:
! none - No adjustment.
! zero - Sets strain to zero.
! freeslip - Sets the normal gradient of tangential velocity to zero.
! computed - Computes the normal gradient of tangential velocity using
! external values of tangential velocity.
! specified - Uses the external values of the normal gradient of
! tangential velocity.
OBC_ZERO_BIHARMONIC = True ! [Boolean] default = False
! If true, zeros the Laplacian of flow on open boundaries in the biharmonic
! viscosity term.
MASK_OUTSIDE_OBCS = False ! [Boolean] default = False
! If true, set the areas outside open boundaries to be land.
RAMP_OBCS = False ! [Boolean] default = False
! If true, ramps from zero to the external values over time, with a ramping
! timescale given by RAMP_TIMESCALE. Ramping SSH only so far.
OBC_RAMP_TIMESCALE = 1.0 ! [days] default = 1.0
! If RAMP_OBCS is true, this sets the ramping timescale.
OBC_TIDE_N_CONSTITUENTS = 0 ! default = 0
! Number of tidal constituents being added to the open boundary.
EXTERIOR_OBC_BUG = True ! [Boolean] default = True
! If true, recover a bug in barotropic solver and other routines when boundary
! contitions interior to the domain are used.
OBC_HOR_INDEXING_BUG = True ! [Boolean] default = True
! If true, recover set of a horizontal indexing bugs in the OBC code.
OBC_TEMP_SALT_NEEDED_BUG = True ! [Boolean] default = True
! If true, recover a bug that OBC temperature and salinity can be ignored even
! if they are registered tracers in the rest of the model.
OBC_SEGMENT_001 = "J=N,I=N:0,FLATHER,ORLANSKI" !
! Documentation needs to be dynamic?????
OBC_SEGMENT_002 = "J=0,I=0:N,FLATHER,ORLANSKI" !
! Documentation needs to be dynamic?????
OBC_SEGMENT_003 = "I=N,J=0:N,FLATHER,ORLANSKI" !
! Documentation needs to be dynamic?????
OBC_SEGMENT_004 = "I=0,J=N:0,FLATHER,ORLANSKI" !
! Documentation needs to be dynamic?????
OBC_RADIATION_MAX = 10.0 ! [nondim] default = 1.0
! The maximum magnitude of the baroclinic radiation velocity (or speed of
! characteristics), in gridpoints per timestep. This is only used if one of the
! open boundary segments is using Orlanski.
OBC_RAD_VEL_WT = 0.3 ! [nondim] default = 0.3
! The relative weighting for the baroclinic radiation velocities (or speed of
! characteristics) at the new time level (1) or the running mean (0) for
! velocities. Valid values range from 0 to 1. This is only used if one of the
! open boundary segments is using Orlanski.
OBC_TRACER_RESERVOIR_LENGTH_SCALE_OUT = 0.0 ! [m] default = 0.0
! An effective length scale for restoring the tracer concentration at the
! boundaries to externally imposed values when the flow is exiting the domain.
OBC_TRACER_RESERVOIR_LENGTH_SCALE_IN = 0.0 ! [m] default = 0.0
! An effective length scale for restoring the tracer concentration at the
! boundaries to values from the interior when the flow is entering the domain.
OBC_THICKNESS_RESERVOIR_LENGTH_SCALE_OUT = 0.0 ! [m] default = 0.0
! An effective length scale for restoring the layer thickness at the boundaries
! to externally imposed values when the flow is exiting the domain.
OBC_THICKNESS_RESERVOIR_LENGTH_SCALE_IN = 0.0 ! [m] default = 0.0
! An effective length scale for restoring the layer thickness at the boundaries
! to values from the interior when the flow is entering the domain.
OBC_REMAPPING_SCHEME = "PLM" ! default = "PLM"
! This sets the reconstruction scheme used for OBC vertical remapping for all
! variables. It can be one of the following schemes:
! PCM (1st-order accurate)
! PLM (2nd-order accurate)
! PLM_HYBGEN (2nd-order accurate)
! PPM_H4 (3rd-order accurate)
! PPM_IH4 (3rd-order accurate)
! PPM_HYBGEN (3rd-order accurate)
! WENO_HYBGEN (3rd-order accurate)
! PQM_IH4IH3 (4th-order accurate)
! PQM_IH6IH5 (5th-order accurate)
BRUSHCUTTER_MODE = False ! [Boolean] default = False
! If true, read external OBC data on the supergrid.
REMAPPING_ANSWER_DATE = 99991231 ! default = 99991231
! The vintage of the expressions and order of arithmetic to use for remapping.
! Values below 20190101 result in the use of older, less accurate expressions
! that were in use at the end of 2018. Higher values result in the use of more
! robust and accurate forms of mathematically equivalent expressions.
OBC_REMAPPING_USE_OM4_SUBCELLS = True ! [Boolean] default = True
! If true, use the OM4 remapping-via-subcells algorithm for neutral diffusion.
! See REMAPPING_USE_OM4_SUBCELLS for more details. We recommend setting this
! option to false.
OBC_PROJECTION_BUG = True ! [Boolean] default = True
! If false, use only interior ocean points at OBCs to specify several
! calculations at OBC points, and it avoids applying a land mask at the bay-like
! intersection of orthogonal OBC segments. Otherwise the calculation of terms
! like the potential vorticity used in the barotropic solver relies on
! bathymetry or other fields being projected outward across OBCs. This option
! changes answers for some configurations that use OBCs.
MASKING_DEPTH = -9999.0 ! [m] default = -9999.0
! The depth below which to mask points as land points, for which all fluxes are
! zeroed out. MASKING_DEPTH is ignored if it has the special default value.
! === module MOM_fixed_initialization ===
CHANNEL_CONFIG = "none" ! default = "none"
! A parameter that determines which set of channels are
! restricted to specific widths. Options are:
! none - All channels have the grid width.
! global_1deg - Sets 16 specific channels appropriate
! for a 1-degree model, as used in CM2G.
! list - Read the channel locations and widths from a
! text file, like MOM_channel_list in the MOM_SIS
! test case.
! file - Read open face widths everywhere from a
! NetCDF file on the model grid.
SUBGRID_TOPO_AT_VEL = False ! [Boolean] default = False
! If true, use variables from TOPO_AT_VEL_FILE as parameters for porous barrier.
ROTATION = "beta" ! default = "2omegasinlat"
! This specifies how the Coriolis parameter is specified:
! 2omegasinlat - Use twice the planetary rotation rate
! times the sine of latitude.
! betaplane - Use a beta-plane or f-plane.
! USER - call a user modified routine.
F_0 = 0.0 ! [s-1] default = 0.0
! The reference value of the Coriolis parameter with the betaplane option.
BETA = 0.0 ! [m-1 s-1] default = 0.0
! The northward gradient of the Coriolis parameter with the betaplane option.
BETA_LAT_REF = 0.0 ! [kilometers] default = 0.0
! The reference latitude (origin) of the beta-plane
GRID_ROTATION_ANGLE_BUGS = False ! [Boolean] default = False
! If true, use an older algorithm to calculate the sine and cosines needed
! rotate between grid-oriented directions and true north and east. Differences
! arise at the tripolar fold.
! === module MOM_verticalGrid ===
! Parameters providing information about the vertical grid.
G_EARTH = 9.8 ! [m s-2] default = 9.8
! The gravitational acceleration of the Earth.
RHO_0 = 1031.0 ! [kg m-3] default = 1035.0
! The mean ocean density used with BOUSSINESQ true to calculate accelerations
! and the mass for conservation properties, or with BOUSSINESQ false to convert
! some parameters from vertical units of m to kg m-2.
BOUSSINESQ = True ! [Boolean] default = True
! If true, make the Boussinesq approximation.
ANGSTROM = 1.0E-10 ! [m] default = 1.0E-10
! The minimum layer thickness, usually one-Angstrom.
H_TO_M = 1.0 ! [m H-1] default = 1.0
! A constant that translates the model's internal units of thickness into m.
NK = 10 ! [nondim]
! The number of model layers.
! === module MOM_tracer_registry ===
! === module MOM_restart ===
PARALLEL_RESTARTFILES = False ! [Boolean] default = False
! If true, the IO layout is used to group processors that write to the same
! restart file or each processor writes its own (numbered) restart file. If
! false, a single restart file is generated combining output from all PEs.
RESTARTFILE = "MOM.res" ! default = "MOM.res"
! The name-root of the restart file.
MAX_FIELDS = 100 ! default = 100
! The maximum number of restart fields that can be used.
RESTART_CHECKSUMS_REQUIRED = True ! [Boolean] default = True
! If true, require the restart checksums to match and error out otherwise. Users
! may want to avoid this comparison if for example the restarts are made from a
! run with a different mask_table than the current run, in which case the
! checksums will not match and cause crash.
RESTART_SYMMETRIC_CHECKSUMS = False ! [Boolean] default = False
! If true, do the restart checksums on all the edge points for a non-reentrant
! grid. This requires that SYMMETRIC_MEMORY_ is defined at compile time.
RESTART_UNSIGNED_ZEROS = False ! [Boolean] default = False
! If true, convert any negative zeros that would be written to the restart file
! into ordinary unsigned zeros. This does not change answers, but it can be
! helpful in comparing restart files after grid rotation, for example.
USE_FILTER = False ! [Boolean] default = False
! If true, use streaming band-pass filters to detect the instantaneous tidal
! signals in the simulation.
! === module MOM_tracer_flow_control ===
USE_USER_TRACER_EXAMPLE = False ! [Boolean] default = False
! If true, use the USER_tracer_example tracer package.
USE_DOME_TRACER = True ! [Boolean] default = False
! If true, use the DOME_tracer tracer package.
USE_ISOMIP_TRACER = False ! [Boolean] default = False
! If true, use the ISOMIP_tracer tracer package.
USE_RGC_TRACER = False ! [Boolean] default = False
! If true, use the RGC_tracer tracer package.
USE_IDEAL_AGE_TRACER = False ! [Boolean] default = False
! If true, use the ideal_age_example tracer package.
USE_MARBL_TRACERS = False ! [Boolean] default = False
! If true, use the MARBL tracer package.
USE_REGIONAL_DYES = False ! [Boolean] default = False
! If true, use the regional_dyes tracer package.
USE_OIL_TRACER = False ! [Boolean] default = False
! If true, use the oil_tracer tracer package.
USE_ADVECTION_TEST_TRACER = False ! [Boolean] default = False
! If true, use the advection_test_tracer tracer package.
USE_OCMIP2_CFC = False ! [Boolean] default = False
! If true, use the MOM_OCMIP2_CFC tracer package.
USE_CFC_CAP = False ! [Boolean] default = False
! If true, use the MOM_CFC_cap tracer package.
USE_generic_tracer = False ! [Boolean] default = False
! If true and _USE_GENERIC_TRACER is defined as a preprocessor macro, use the
! MOM_generic_tracer packages.
USE_PSEUDO_SALT_TRACER = False ! [Boolean] default = False
! If true, use the pseudo salt tracer, typically run as a diagnostic.
USE_BOUNDARY_IMPULSE_TRACER = False ! [Boolean] default = False
! If true, use the boundary impulse tracer.
USE_DYED_OBC_TRACER = False ! [Boolean] default = False
! If true, use the dyed_obc_tracer tracer package.
USE_NW2_TRACERS = False ! [Boolean] default = False
! If true, use the NeverWorld2 tracers.
! === module DOME_tracer ===
DOME_TRACER_IC_FILE = "" ! default = ""
! The name of a file from which to read the initial conditions for the DOME
! tracers, or blank to initialize them internally.
DOME_TRACER_STRIPE_WIDTH = 50.0 ! [km] default = 50.0
! The meridional width of the vertical stripes in the initial condition for the
! DOME tracers.
DOME_TRACER_STRIPE_LAT = 350.0 ! [km] default = 350.0
! The southern latitude of the first vertical stripe in the initial condition
! for the DOME tracers.
DOME_TRACER_SHEET_SPACING = 600.0 ! [m] default = 600.0
! The vertical spacing between successive horizontal sheets of tracer in the
! initial conditions for the DOME tracers, and twice the thickness of these
! tracer sheets.
SPONGE = False ! [Boolean] default = False
! If true, sponges may be applied anywhere in the domain. The exact location and
! properties of those sponges are specified from MOM_initialization.F90.
! === module MOM_boundary_update ===
OBC_VALUE_UPDATE_BUG = True ! [Boolean] default = True
! If true, recover a bug that OBC segment data does not update if all segments
! use 'value' and none uses 'file'.
USE_FILE_OBC = False ! [Boolean] default = False
! If true, use external files for the open boundary.
USE_TIDAL_BAY_OBC = False ! [Boolean] default = False
! If true, use the tidal_bay open boundary.
USE_KELVIN_WAVE_OBC = False ! [Boolean] default = False
! If true, use the Kelvin wave open boundary.
USE_SHELFWAVE_OBC = False ! [Boolean] default = False
! If true, use the shelfwave open boundary.
USE_DYED_CHANNEL_OBC = False ! [Boolean] default = False
! If true, use the dyed channel open boundary.
OBC_SEGMENT_001_DATA = "U=value:0.0,V=value:0.0,SSH=value:0.0" !
! OBC segment docs
OBC_SEGMENT_002_DATA = "U=value:0.0,V=value:0.0,SSH=value:0.0" !
! OBC segment docs
OBC_SEGMENT_003_DATA = "U=value:0.0,V=value:0.0,SSH=value:0.0" !
! OBC segment docs
OBC_SEGMENT_004_DATA = "U=value:0.0,V=value:0.0,SSH=value:0.0" !
! OBC segment docs
! === module MOM_coord_initialization ===
COORD_CONFIG = "layer_ref" ! default = "none"
! This specifies how layers are to be defined:
! ALE or none - used to avoid defining layers in ALE mode
! file - read coordinate information from the file
! specified by (COORD_FILE).
! BFB - Custom coords for buoyancy-forced basin case
! based on SST_S, T_BOT and DRHO_DT.
! linear - linear based on interfaces not layers
! layer_ref - linear based on layer densities
! ts_ref - use reference temperature and salinity
! ts_range - use range of temperature and salinity
! (T_REF and S_REF) to determine surface density
! and GINT calculate internal densities.
! gprime - use reference density (RHO_0) for surface
! density and GINT calculate internal densities.
! ts_profile - use temperature and salinity profiles
! (read from COORD_FILE) to set layer densities.
! USER - call a user modified routine.
GFS = 9.8 ! [m s-2] default = 9.8
! The reduced gravity at the free surface.
LIGHTEST_DENSITY = 1030.0 ! [kg m-3] default = 1031.0
! The reference potential density used for layer 1.
DENSITY_RANGE = 2.0 ! [kg m-3] default = 2.0
! The range of reference potential densities in the layers.
! === module MOM_state_initialization ===
INPUTDIR = "INPUT" ! default = "."
! The directory in which input files are found.
FATAL_INCONSISTENT_RESTART_TIME = False ! [Boolean] default = False
! If true and a time_in value is provided to MOM_initialize_state, verify that
! the time read from a restart file is the same as time_in, and issue a fatal
! error if it is not. Otherwise, simply set the time to time_in if present.
INIT_LAYERS_FROM_Z_FILE = False ! [Boolean] default = False
! If true, initialize the layer thicknesses, temperatures, and salinities from a
! Z-space file on a latitude-longitude grid.
THICKNESS_CONFIG = "circle_obcs" ! default = "uniform"
! A string that determines how the initial layer thicknesses are specified for a
! new run:
! file - read interface heights from the file specified
! by (THICKNESS_FILE).
! thickness_file - read thicknesses from the file specified
! by (THICKNESS_FILE).
! mass_file - read thicknesses in units of mass per unit area from the file
! specified by (THICKNESS_FILE).
! coord - determined by ALE coordinate.
! uniform - uniform thickness layers evenly distributed
! between the surface and MAXIMUM_DEPTH.
! list - read a list of positive interface depths.
! param - use thicknesses from parameter THICKNESS_INIT_VALUES.
! DOME - use a slope and channel configuration for the
! DOME sill-overflow test case.
! ISOMIP - use a configuration for the
! ISOMIP test case.
! benchmark - use the benchmark test case thicknesses.
! Neverworld - use the Neverworld test case thicknesses.
! search - search a density profile for the interface
! densities. This is not yet implemented.
! circle_obcs - the circle_obcs test case is used.
! DOME2D - 2D version of DOME initialization.
! adjustment2d - 2D lock exchange thickness ICs.
! sloshing - sloshing gravity thickness ICs.
! seamount - no motion test with seamount ICs.
! dumbbell - sloshing channel ICs.
! soliton - Equatorial Rossby soliton.
! rossby_front - a mixed layer front in thermal wind balance.
! USER - call a user modified routine.
! === module circle_obcs_initialization ===
DISK_RADIUS = 24.0 ! [km]
! The radius of the initially elevated disk in the circle_obcs test case.
DISK_X_OFFSET = 0.0 ! [km] default = 0.0
! The x-offset of the initially elevated disk in the circle_obcs test case.
DISK_IC_AMPLITUDE = 5.0 ! [m] default = 5.0
! Initial amplitude of interface height displacements in the circle_obcs test
! case.
DEPRESS_INITIAL_SURFACE = False ! [Boolean] default = False
! If true, depress the initial surface to avoid huge tsunamis when a large
! surface pressure is applied.
TRIM_IC_FOR_P_SURF = False ! [Boolean] default = False
! If true, cuts way the top of the column for initial conditions at the depth
! where the hydrostatic pressure matches the imposed surface pressure which is
! read from file.
VELOCITY_CONFIG = "zero" ! default = "zero"
! A string that determines how the initial velocities are specified for a new
! run:
! file - read velocities from the file specified
! by (VELOCITY_FILE).
! zero - the fluid is initially at rest.
! uniform - the flow is uniform (determined by
! parameters INITIAL_U_CONST and INITIAL_V_CONST).
! rossby_front - a mixed layer front in thermal wind balance.
! soliton - Equatorial Rossby soliton.
! USER - call a user modified routine.
ODA_INCUPD = False ! [Boolean] default = False
! If true, oda incremental updates will be applied everywhere in the domain.
OBC_RESERVOIR_INIT_BUG = True ! [Boolean] default = True
! If true, set the OBC tracer reservoirs at the startup of a new run from the
! interior tracer concentrations regardless of properties that may be explicitly
! specified for the reservoir concentrations.
OBC_USER_CONFIG = "none" ! default = "none"
! A string that sets how the user code is invoked to set open boundary data:
! DOME - specified inflow on northern boundary
! dyed_channel - supercritical with dye on the inflow boundary
! dyed_obcs - circle_obcs with dyes on the open boundaries
! Kelvin - barotropic Kelvin wave forcing on the western boundary
! shelfwave - Flather with shelf wave forcing on western boundary
! supercritical - now only needed here for the allocations
! tidal_bay - Flather with tidal forcing on eastern boundary
! USER - user specified
! === module MOM_diag_mediator ===
NUM_DIAG_COORDS = 1 ! default = 1
! The number of diagnostic vertical coordinates to use. For each coordinate, an
! entry in DIAG_COORDS must be provided.
DIAG_REMAPPING_USE_OM4_SUBCELLS = True ! [Boolean] default = True
! If true, use the OM4 remapping-via-subcells algorithm for diagnostics. See
! REMAPPING_USE_OM4_SUBCELLS for details. We recommend setting this option to
! false.
USE_INDEX_DIAGNOSTIC_AXES = False ! [Boolean] default = False
! If true, use a grid index coordinate convention for diagnostic axes.
DIAG_COORDS = "z Z ZSTAR" ! default = "z Z ZSTAR"
! A list of string tuples associating diag_table modules to a coordinate
! definition used for diagnostics. Each string is of the form "MODULE_SUFFIX
! PARAMETER_SUFFIX COORDINATE_NAME".
DIAG_MISVAL = 1.0E+20 ! [various] default = 1.0E+20
! Set the default missing value to use for diagnostics.
DIAG_AS_CHKSUM = False ! [Boolean] default = False
! Instead of writing diagnostics to the diag manager, write a text file
! containing the checksum (bitcount) of the array.
AVAILABLE_DIAGS_FILE = "available_diags.000000" ! default = "available_diags.000000"
! A file into which to write a list of all available ocean diagnostics that can
! be included in a diag_table.
DIAG_COORD_DEF_Z = "UNIFORM" ! default = "UNIFORM"
! Determines how to specify the coordinate resolution. Valid options are:
! PARAM - use the vector-parameter DIAG_COORD_RES_Z
! UNIFORM[:N] - uniformly distributed
! FILE:string - read from a file. The string specifies
! the filename and variable name, separated
! by a comma or space, e.g. FILE:lev.nc,dz
! or FILE:lev.nc,interfaces=zw
! WOA09[:N] - the WOA09 vertical grid (approximately)
! WOA09INT[:N] - layers spanned by the WOA09 depths
! WOA23INT[:N] - layers spanned by the WOA23 depths
! FNC1:string - FNC1:dz_min,H_total,power,precision
! HYBRID:string - read from a file. The string specifies
! the filename and two variable names, separated
! by a comma or space, for sigma-2 and dz.
! e.g. HYBRID:vgrid.nc,sigma2,dz
! HYBRID_3D:string - read from a file. The string specifies
! the filename and two 3D variable names, separated
! by a comma or space, for sigma-2 and dz. The
! latter can be FNC1:string which is used everywhere.
! e.g. HYBRID_3D:vgrid.nc,sigma2,dz
! HYBRID_MAP:string - read from a file. The string specifies
! the filename and three variable names, separated
! by a comma or space, for map, sigma-2 and dz.
! Map is a spatial index array with, maxval(map)=N,
! and the others are 2D arrays containing N profiles.
! Map typically contains integer values, but it can
! contain real values, I+w, which imply using
! the weighted sum of profiles I and I+1.
! Dz can be FNC1:string which is used everywhere.
! e.g. HYBRID_MAP:vgrid.nc,map,sigma2,dz
! === module MOM_MEKE ===
USE_MEKE = False ! [Boolean] default = False
! If true, turns on the MEKE scheme which calculates a sub-grid mesoscale eddy
! kinetic energy budget.
! === module MOM_lateral_mixing_coeffs ===
USE_VARIABLE_MIXING = False ! [Boolean] default = False
! If true, the variable mixing code will be called. This allows diagnostics to
! be created even if the scheme is not used. If KHTR_SLOPE_CFF>0 or
! KhTh_Slope_Cff>0, this is set to true regardless of what is in the parameter
! file.
USE_VISBECK = False ! [Boolean] default = False
! If true, use the Visbeck et al. (1997) formulation for
! thickness diffusivity.
RESOLN_SCALED_KH = False ! [Boolean] default = False
! If true, the Laplacian lateral viscosity is scaled away when the first
! baroclinic deformation radius is well resolved.
DEPTH_SCALED_KHTH = False ! [Boolean] default = False
! If true, KHTH is scaled away when the depth is shallower than a reference
! depth: KHTH = MIN(1,H/H0)**N * KHTH, where H0 is a reference depth, controlled
! via DEPTH_SCALED_KHTH_H0, and the exponent (N) is controlled via
! DEPTH_SCALED_KHTH_EXP.
RESOLN_SCALED_KHTH = False ! [Boolean] default = False
! If true, the interface depth diffusivity is scaled away when the first
! baroclinic deformation radius is well resolved.
RESOLN_SCALED_KHTR = False ! [Boolean] default = False
! If true, the epipycnal tracer diffusivity is scaled away when the first
! baroclinic deformation radius is well resolved.
RESOLN_USE_EBT = False ! [Boolean] default = False
! If true, uses the equivalent barotropic wave speed instead of first baroclinic
! wave for calculating the resolution function.
BACKSCAT_EBT_POWER = 0.0 ! [nondim] default = 0.0
! Power to raise EBT vertical structure to when backscatter has vertical
! structure.
BS_USE_SQG_STRUCT = False ! [Boolean] default = False
! If true, the SQG vertical structure is used for backscatter on the condition
! that BS_EBT_power=0
KHTH_USE_EBT_STRUCT = False ! [Boolean] default = False
! If true, uses the equivalent barotropic structure as the vertical structure of
! thickness diffusivity.
KHTH_USE_SQG_STRUCT = False ! [Boolean] default = False
! If true, uses the surface quasigeostrophic structure as the vertical structure
! of thickness diffusivity.
KHTR_USE_EBT_STRUCT = False ! [Boolean] default = False
! If true, uses the equivalent barotropic structure as the vertical structure of
! tracer diffusivity.
KHTR_USE_SQG_STRUCT = False ! [Boolean] default = False
! If true, uses the surface quasigeostrophic structure as the vertical structure
! of tracer diffusivity.
KD_GL90_USE_EBT_STRUCT = False ! [Boolean] default = False
! If true, uses the equivalent barotropic structure as the vertical structure of
! diffusivity in the GL90 scheme.
KD_GL90_USE_SQG_STRUCT = False ! [Boolean] default = False
! If true, uses the equivalent barotropic structure as the vertical structure of
! diffusivity in the GL90 scheme.
KHTH_SLOPE_CFF = 0.0 ! [nondim] default = 0.0
! The nondimensional coefficient in the Visbeck formula for the interface depth
! diffusivity
KHTR_SLOPE_CFF = 0.0 ! [nondim] default = 0.0
! The nondimensional coefficient in the Visbeck formula for the epipycnal tracer
! diffusivity
USE_STORED_SLOPES = False ! [Boolean] default = False
! If true, the isopycnal slopes are calculated once and stored for re-use. This
! uses more memory but avoids calling the equation of state more times than
! should be necessary.
VERY_SMALL_FREQUENCY = 1.0E-17 ! [s-1] default = 1.0E-17
! A miniscule frequency that is used to avoid division by 0. The default value
! is roughly (pi / (the age of the universe)).
USE_STANLEY_ISO = False ! [Boolean] default = False
! If true, turn on Stanley SGS T variance parameterization in isopycnal slope
! code.
MIXING_COEFS_OBC_BUG = True ! [Boolean] default = True
! If false, use only interior data for thickness weighting in lateral mixing
! coefficient calculations and to calculate stratification and other fields at
! open boundary condition faces.
RESOLN_FUNCTION_OBC_BUG = True ! [Boolean] default = True
! If false, use only interior data for calculating the resolution functions at
! open boundary condition faces and vertices.
KD_SMOOTH = 1.0E-06 ! [m2 s-1] default = 1.0E-06
! A diapycnal diffusivity that is used to interpolate more sensible values of T
! & S into thin layers.
USE_QG_LEITH_GM = False ! [Boolean] default = False
! If true, use the QG Leith viscosity as the GM coefficient.
! === module MOM_set_visc ===
SET_VISC_ANSWER_DATE = 99991231 ! default = 99991231
! The vintage of the order of arithmetic and expressions in the set viscosity
! calculations. Values below 20190101 recover the answers from the end of 2018,
! while higher values use updated and more robust forms of the same expressions.
BOTTOMDRAGLAW = True ! [Boolean] default = True
! If true, the bottom stress is calculated with a drag law of the form
! c_drag*|u|*u. The velocity magnitude may be an assumed value or it may be
! based on the actual velocity in the bottommost HBBL, depending on LINEAR_DRAG.
DRAG_AS_BODY_FORCE = False ! [Boolean] default = False
! If true, the bottom stress is imposed as an explicit body force applied over a
! fixed distance from the bottom, rather than as an implicit calculation based
! on an enhanced near-bottom viscosity. The thickness of the bottom boundary
! layer is HBBL.
CHANNEL_DRAG = False ! [Boolean] default = False
! If true, the bottom drag is exerted directly on each layer proportional to the
! fraction of the bottom it overlies.
LINEAR_DRAG = False ! [Boolean] default = False
! If LINEAR_DRAG and BOTTOMDRAGLAW are defined the drag law is
! cdrag*DRAG_BG_VEL*u.
DYNAMIC_VISCOUS_ML = False ! [Boolean] default = False
! If true, use a bulk Richardson number criterion to determine the mixed layer
! thickness for viscosity.
OMEGA = 7.2921E-05 ! [s-1] default = 7.2921E-05
! The rotation rate of the earth.
HBBL = 10.0 ! [m]
! The thickness of a bottom boundary layer with a viscosity increased by
! KV_EXTRA_BBL if BOTTOMDRAGLAW is not defined, or the thickness over which
! near-bottom velocities are averaged for the drag law if BOTTOMDRAGLAW is
! defined but LINEAR_DRAG is not.
CDRAG = 0.002 ! [nondim] default = 0.003
! CDRAG is the drag coefficient relating the magnitude of the velocity field to
! the bottom stress. CDRAG is only used if BOTTOMDRAGLAW is defined.
CDRAG_MAP = False ! [Boolean] default = False
! If true, apply a spatially varying scaling factor to CDRAG, specified by
! CDRAG_VAR in CDRAG_FILE.
BBL_USE_TIDAL_BG = False ! [Boolean] default = False
! Flag to use the tidal RMS amplitude in place of constant background velocity
! for computing u* in the BBL. This flag is only used when BOTTOMDRAGLAW is true
! and LINEAR_DRAG is false.
DRAG_BG_VEL = 0.05 ! [m s-1] default = 0.0
! DRAG_BG_VEL is either the assumed bottom velocity (with LINEAR_DRAG) or an
! unresolved velocity that is combined with the resolved velocity to estimate
! the velocity magnitude. DRAG_BG_VEL is only used when BOTTOMDRAGLAW is
! defined.
BBL_THICK_MIN = 0.1 ! [m] default = 0.0
! The minimum bottom boundary layer thickness that can be used with
! BOTTOMDRAGLAW. This might be Kv/(cdrag*drag_bg_vel) to give Kv as the minimum
! near-bottom viscosity.
HTBL_SHELF_MIN = 0.1 ! [m] default = 0.1
! The minimum top boundary layer thickness that can be used with BOTTOMDRAGLAW.
! This might be Kv/(cdrag*drag_bg_vel) to give Kv as the minimum near-top
! viscosity.
HTBL_SHELF = 10.0 ! [m] default = 10.0
! The thickness over which near-surface velocities are averaged for the drag law
! under an ice shelf. By default this is the same as HBBL
KV = 1.0E-04 ! [m2 s-1]
! The background kinematic viscosity in the interior. The molecular value, ~1e-6
! m2 s-1, may be used.
KV_BBL_MIN = 1.0E-04 ! [m2 s-1] default = 1.0E-04
! The minimum viscosities in the bottom boundary layer.
KV_TBL_MIN = 1.0E-04 ! [m2 s-1] default = 1.0E-04
! The minimum viscosities in the top boundary layer.
CORRECT_BBL_BOUNDS = False ! [Boolean] default = False
! If true, uses the correct bounds on the BBL thickness and viscosity so that
! the bottom layer feels the intended drag.
! === module MOM_thickness_diffuse ===
KHTH = 0.0 ! [m2 s-1] default = 0.0
! The background horizontal thickness diffusivity.
READ_KHTH = False ! [Boolean] default = False
! If true, read a file (given by KHTH_FILE) containing the spatially varying
! horizontal isopycnal height diffusivity.
KHTH_MIN = 0.0 ! [m2 s-1] default = 0.0
! The minimum horizontal thickness diffusivity.
KHTH_MAX = 0.0 ! [m2 s-1] default = 0.0
! The maximum horizontal thickness diffusivity.
KHTH_MAX_CFL = 0.8 ! [nondimensional] default = 0.8
! The maximum value of the local diffusive CFL ratio that is permitted for the
! thickness diffusivity. 1.0 is the marginally unstable value in a pure layered
! model, but much smaller numbers (e.g. 0.1) seem to work better for ALE-based
! models.
KH_ETA_CONST = 0.0 ! [m2 s-1] default = 0.0
! The background horizontal diffusivity of the interface heights (without
! considering the layer density structure). If diffusive CFL limits are
! encountered, the diffusivities of the isopycnals and the interfaces heights
! are scaled back proportionately.
KH_ETA_VEL_SCALE = 0.0 ! [m s-1] default = 0.0
! A velocity scale that is multiplied by the grid spacing to give a contribution
! to the horizontal diffusivity of the interface heights (without considering
! the layer density structure).
DETANGLE_INTERFACES = False ! [Boolean] default = False
! If defined add 3-d structured enhanced interface height diffusivities to
! horizontally smooth jagged layers.
KHTH_SLOPE_MAX = 0.01 ! [nondim] default = 0.01
! A slope beyond which the calculated isopycnal slope is not reliable and is
! scaled away.
KHTH_USE_FGNV_STREAMFUNCTION = False ! [Boolean] default = False
! If true, use the streamfunction formulation of Ferrari et al., 2010, which
! effectively emphasizes graver vertical modes by smoothing in the vertical.
USE_STANLEY_GM = False ! [Boolean] default = False
! If true, turn on Stanley SGS T variance parameterization in GM code.
MEKE_GM_SRC_ALT = False ! [Boolean] default = False
! If true, use the GM energy conversion form S^2*N^2*kappa rather than the
! streamfunction for the GM source term.
MEKE_GEOMETRIC = False ! [Boolean] default = False
! If true, uses the GM coefficient formulation from the GEOMETRIC framework
! (Marshall et al., 2012).
USE_GME = False ! [Boolean] default = False
! If true, use the GM+E backscatter scheme in association with the Gent and
! McWilliams parameterization.
USE_GM_WORK_BUG = False ! [Boolean] default = False
! If true, compute the top-layer work tendency on the u-grid with the incorrect
! sign, for legacy reproducibility.
! === module MOM_dynamics_split_RK2 ===
TIDES = False ! [Boolean] default = False
! If true, apply tidal momentum forcing.
CALCULATE_SAL = False ! [Boolean] default = False
! If true, calculate self-attraction and loading.
USE_HA = False ! [Boolean] default = False
! If true, perform inline harmonic analysis.
BE = 0.6 ! [nondim] default = 0.6
! If SPLIT is true, BE determines the relative weighting of a 2nd-order
! Runga-Kutta baroclinic time stepping scheme (0.5) and a backward Euler scheme
! (1) that is used for the Coriolis and inertial terms. BE may be from 0.5 to
! 1, but instability may occur near 0.5. BE is also applicable if SPLIT is false
! and USE_RK2 is true.
BEGW = 0.0 ! [nondim] default = 0.0
! If SPLIT is true, BEGW is a number from 0 to 1 that controls the extent to
! which the treatment of gravity waves is forward-backward (0) or simulated
! backward Euler (1). 0 is almost always used. If SPLIT is false and USE_RK2 is
! true, BEGW can be between 0 and 0.5 to damp gravity waves.
SET_DTBT_USE_BT_CONT = False ! [Boolean] default = False
! If true, use BT_CONT to calculate DTBT if possible.
SPLIT_BOTTOM_STRESS = False ! [Boolean] default = False
! If true, provide the bottom stress calculated by the vertical viscosity to the
! barotropic solver.
BT_USE_LAYER_FLUXES = True ! [Boolean] default = True
! If true, use the summed layered fluxes plus an adjustment due to the change in
! the barotropic velocity in the barotropic continuity equation.
BT_ADJ_CORR_MASS_SRC = True ! [Boolean] default = True
! If true, recalculates the barotropic mass source after predictor step. This
! should make little difference in the deep ocean but appears to help for
! vanished layers. If false, uses the same mass source as from the predictor
! step.
STORE_CORIOLIS_ACCEL = True ! [Boolean] default = True
! If true, calculate the Coriolis accelerations at the end of each timestep for
! use in the predictor step of the next split RK2 timestep.
FPMIX = False ! [Boolean] default = False
! If true, add non-local momentum flux increments and diffuse down the Eulerian
! gradient.
VISC_REM_BUG = True ! [Boolean] default = False
! If true, visc_rem_[uv] in split mode is incorrectly calculated or accounted
! for in two places. This parameter controls the defaults of two individual
! flags, VISC_REM_TIMESTEP_BUG in MOM_dynamics_split_RK2(b) and
! VISC_REM_BT_WEIGHT_BUG in MOM_barotropic.
VISC_REM_TIMESTEP_BUG = True ! [Boolean] default = True
! If true, recover a bug that uses dt_pred rather than dt in vertvisc_remnant()
! at the end of predictor stage for the following continuity() and btstep()
! calls in the corrector step. Default of this flag is set by VISC_REM_BUG
! === module MOM_continuity_PPM ===
MONOTONIC_CONTINUITY = False ! [Boolean] default = False
! If true, CONTINUITY_PPM uses the Colella and Woodward monotonic limiter. The
! default (false) is to use a simple positive definite limiter.
SIMPLE_2ND_PPM_CONTINUITY = False ! [Boolean] default = False
! If true, CONTINUITY_PPM uses a simple 2nd order (arithmetic mean)
! interpolation of the edge values. This may give better PV conservation
! properties. While it formally reduces the accuracy of the continuity solver
! itself in the strongly advective limit, it does not reduce the overall order
! of accuracy of the dynamic core.
UPWIND_1ST_CONTINUITY = False ! [Boolean] default = False
! If true, CONTINUITY_PPM becomes a 1st-order upwind continuity solver. This
! scheme is highly diffusive but may be useful for debugging or in single-column
! mode where its minimal stencil is useful.
ETA_TOLERANCE = 5.0E-10 ! [m] default = 5.0E-10
! The tolerance for the differences between the barotropic and baroclinic
! estimates of the sea surface height due to the fluxes through each face. The
! total tolerance for SSH is 4 times this value. The default is
! 0.5*NK*ANGSTROM, and this should not be set less than about
! 10^-15*MAXIMUM_DEPTH.
VELOCITY_TOLERANCE = 3.0E+08 ! [m s-1] default = 3.0E+08
! The tolerance for barotropic velocity discrepancies between the barotropic
! solution and the sum of the layer thicknesses.
CONT_PPM_AGGRESS_ADJUST = False ! [Boolean] default = False
! If true, allow the adjusted velocities to have a relative CFL change up to
! 0.5.
CONT_PPM_VOLUME_BASED_CFL = False ! [Boolean] default = False
! If true, use the ratio of the open face lengths to the tracer cell areas when
! estimating CFL numbers. The default is set by CONT_PPM_AGGRESS_ADJUST.
CONTINUITY_CFL_LIMIT = 0.5 ! [nondim] default = 0.5
! The maximum CFL of the adjusted velocities.
CONT_PPM_BETTER_ITER = True ! [Boolean] default = True
! If true, stop corrective iterations using a velocity based criterion and only
! stop if the iteration is better than all predecessors.
CONT_PPM_USE_VISC_REM_MAX = True ! [Boolean] default = True
! If true, use more appropriate limiting bounds for corrections in strongly
! viscous columns.
CONT_PPM_MARGINAL_FACE_AREAS = True ! [Boolean] default = True
! If true, use the marginal face areas from the continuity solver for use as the
! weights in the barotropic solver. Otherwise use the transport averaged areas.
CONT_USE_H_MARG_MIN = False ! [Boolean] default = False
! If true, the marginal thickness used and returned from continuity is bounded
! from below by a sub-roundoff value. Otherwise the minimum is 0.
! === module MOM_CoriolisAdv ===
NOSLIP = False ! [Boolean] default = False
! If true, no slip boundary conditions are used; otherwise free slip boundary
! conditions are assumed. The implementation of the free slip BCs on a C-grid is
! much cleaner than the no slip BCs. The use of free slip BCs is strongly
! encouraged, and no slip BCs are not used with the biharmonic viscosity.
CORIOLIS_EN_DIS = False ! [Boolean] default = False
! If true, two estimates of the thickness fluxes are used to estimate the
! Coriolis term, and the one that dissipates energy relative to the other one is
! used.
CORIOLIS_SCHEME = "SADOURNY75_ENERGY" ! default = "SADOURNY75_ENERGY"
! CORIOLIS_SCHEME selects the discretization for the Coriolis terms. Valid
! values are:
! SADOURNY75_ENERGY - Sadourny, 1975; energy cons.
! ARAKAWA_HSU90 - Arakawa & Hsu, 1990
! SADOURNY75_ENSTRO - Sadourny, 1975; enstrophy cons.
! ARAKAWA_LAMB81 - Arakawa & Lamb, 1981; En. + Enst.
! ARAKAWA_LAMB_BLEND - A blend of Arakawa & Lamb with
! Arakawa & Hsu and Sadourny energy
! WENOVI5TH_PV_ENSTRO - 5th-order WENO PV enstrophy
! WENOVI3RD_PV_ENSTRO - 3rd-order WENO PV enstrophy
! WENOVI7TH_PV_ENSTRO - 7th-order WENO PV enstrophy
BOUND_CORIOLIS = True ! [Boolean] default = False
! If true, the Coriolis terms at u-points are bounded by the four estimates of
! (f+rv)v from the four neighboring v-points, and similarly at v-points. This
! option would have no effect on the SADOURNY Coriolis scheme if it were
! possible to use centered difference thickness fluxes.
KE_SCHEME = "KE_ARAKAWA" ! default = "KE_ARAKAWA"
! KE_SCHEME selects the discretization for acceleration due to the kinetic
! energy gradient. Valid values are:
! KE_ARAKAWA, KE_SIMPLE_GUDONOV, KE_GUDONOV, KE_UP3
PV_ADV_SCHEME = "PV_ADV_CENTERED" ! default = "PV_ADV_CENTERED"
! PV_ADV_SCHEME selects the discretization for PV advection. Valid values are:
! PV_ADV_CENTERED - centered (aka Sadourny, 75)
! PV_ADV_UPWIND1 - upwind, first order
! === module MOM_PressureForce ===
ANALYTIC_FV_PGF = True ! [Boolean] default = True
! If true the pressure gradient forces are calculated with a finite volume form
! that analytically integrates the equations of state in pressure to avoid any
! possibility of numerical thermobaric instability, as described in Adcroft et
! al., O. Mod. (2008).