-
Notifications
You must be signed in to change notification settings - Fork 148
/
MOM_parameter_doc.all
1287 lines (1245 loc) · 99.4 KB
/
MOM_parameter_doc.all
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 = True ! [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.
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.
USE_POROUS_BARRIER = True ! [Boolean] default = True
! 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.
DT = 1200.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 = 2400.0 ! [s] default = 1200.0
! The thermodynamic and tracer advection time step. Ideally DT_THERM should be
! an integer multiple of DT and less than the forcing or coupling time-step,
! unless THERMO_SPANS_COUPLING is true, in which case 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 and tracer 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.
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 = 2400.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.
USE_DIABATIC_TIME_BUG = False ! [Boolean] default = False
! If true, uses the wrong calendar time for diabatic processes, as was done in
! MOM6 versions prior to February 2018. This is not recommended.
SAVE_INITIAL_CONDS = False ! [Boolean] default = False
! If true, write the initial conditions to a file given by IC_OUTPUT_FILE.
IC_OUTPUT_FILE = "MOM_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.
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.
USE_UH_PARTICLES = False ! [Boolean] default = False
! If true, use the uh velocity in 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 = 44 !
! 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 = 40 !
! 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_fixed_initialization ===
INPUTDIR = "INPUT" ! default = "."
! The directory in which input files are found.
! === module MOM_grid_init ===
GRID_CONFIG = "spherical" !
! 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.
SOUTHLAT = 30.0 ! [degrees_N]
! The southern latitude of the domain.
LENLAT = 20.0 ! [degrees_N]
! The latitudinal length of the domain.
WESTLON = 0.0 ! [degrees_E] default = 0.0
! The western longitude of the domain.
LENLON = 22.0 ! [degrees_E]
! The longitudinal length of the domain.
RAD_EARTH = 6.378E+06 ! [m] default = 6.378E+06
! The radius of the Earth.
TOPO_CONFIG = "spoon" !
! 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.
EDGE_DEPTH = 100.0 ! [m] default = 100.0
! The depth at the edge of one of the named topographies.
TOPOG_SLOPE_SCALE = 4.0E+05 ! [m] default = 4.0E+05
! The exponential decay scale used in defining some of the named topographies.
MAXIMUM_DEPTH = 2000.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 = 0 ! default = 0
! The number of open boundary segments.
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.
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 = "2omegasinlat" ! 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.
OMEGA = 7.2921E-05 ! [s-1] default = 7.2921E-05
! The rotation rate of the earth.
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 = 1035.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 BOUSSINSEQ 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 = 2 ! [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.
STREAMING_FILTER_M2 = False ! [Boolean] default = False
! If true, turn on streaming band-pass filter for detecting instantaneous tidal
! signals.
STREAMING_FILTER_K1 = False ! [Boolean] default = False
! If true, turn on streaming band-pass filter for detecting instantaneous tidal
! signals.
! === 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 = False ! [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_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 MOM_coord_initialization ===
COORD_CONFIG = "gprime" ! 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 = 0.98 ! [m s-2] default = 9.8
! The reduced gravity at the free surface.
GINT = 0.0098 ! [m s-2]
! The reduced gravity across internal interfaces.
LIGHTEST_DENSITY = 1035.0 ! [kg m-3] default = 1035.0
! The reference potential density used for layer 1.
! === module MOM_state_initialization ===
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 = "uniform" ! 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.
! 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.
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.
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 via SPONGE_CONFIG.
! === 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.
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.
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
! === 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 shallowerthan 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 fn.
BACKSCAT_EBT_POWER = 0.0 ! [nondim] default = 0.0
! Power to raise EBT vertical structure to when backscatter has vertical
! structure.
KHTH_USE_EBT_STRUCT = False ! [Boolean] default = False
! If true, uses the equivalent barotropic structure as the vertical structure of
! thickness 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.
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.
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 = True ! [Boolean] default = False
! If LINEAR_DRAG and BOTTOMDRAGLAW are defined the drag law is
! cdrag*DRAG_BG_VEL*u.
PRANDTL_TURB = 1.0 ! [nondim] default = 1.0
! The turbulent Prandtl number applied to shear instability.
DYNAMIC_VISCOUS_ML = False ! [Boolean] default = False
! If true, use a bulk Richardson number criterion to determine the mixed layer
! thickness for viscosity.
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.003 ! [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.
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.1 ! [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.
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.
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_KH_IN_MEKE = False ! [Boolean] default = False
! If true, uses the thickness diffusivity calculated here to diffuse MEKE.
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_porous_barriers ===
PORBAR_ANSWER_DATE = 99991231 ! default = 99991231
! The vintage of the porous barrier weight function calculations. Values below
! 20220806 recover the old answers in which the layer averaged weights are not
! strictly limited by an upper-bound of 1.0 .
PORBAR_MASKING_DEPTH = 0.0 ! [m] default = 0.0
! If the effective average depth at the velocity cell is shallower than this
! number, then porous barrier is not applied at that location.
! PORBAR_MASKING_DEPTH is assumed to be positive below the sea surface.
PORBAR_ETA_INTERP = "MAX" ! default = "MAX"
! A string describing the method that decides how the interface heights at the
! velocity points are calculated. Valid values are:
! MAX (the default) - maximum of the adjacent cells
! MIN - minimum of the adjacent cells
! ARITHMETIC - arithmetic mean of the adjacent cells
! HARMONIC - harmonic mean of the adjacent cells
! === 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.
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.
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.
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, apply profiles of momentum flux magnitude and direction
VISC_REM_BUG = True ! [Boolean] default = True
! If true, visc_rem_[uv] in split mode is incorrectly calculated or accounted
! for in three places. This parameter controls the defaults of three individual
! flags, VISC_REM_TIMESTEP_FIX in MOM_dynamics_split_RK2(b),
! VISC_REM_BT_WEIGHT_FIX in MOM_barotropic, and VISC_REM_CONT_HVEL_FIX in
! MOM_continuity_PPM. Eventually, the three individual flags should be removed
! after tests and the default of VISC_REM_BUG should be to False.
VISC_REM_TIMESTEP_FIX = False ! [Boolean] default = False
! If true, use dt rather than dt_pred in vertvisc_remnant() at the end of
! predictor stage for the following continuity() call and btstep() call in the
! corrector step. This flag should be used with VISC_REM_BT_WEIGHT_FIX.
! === 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 = 1.0E-12 ! [m] default = 1.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.
VISC_REM_CONT_HVEL_FIX = False ! [Boolean] default = False
! If true, velocity cell thickness h_[uv] from the continuity solver is not
! multiplied by visc_rem_[uv]. Default of this flag is set by VISC_REM_BUG.
! === 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
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
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).
! === module MOM_PressureForce_FV ===
RHO_PGF_REF = 1035.0 ! [kg m-3] default = 1035.0
! The reference density that is subtracted off when calculating pressure
! gradient forces. Its inverse is subtracted off of specific volumes when in
! non-Boussinesq mode. The default is RHO_0.
SSH_IN_EOS_PRESSURE_FOR_PGF = False ! [Boolean] default = False
! If true, include contributions from the sea surface height in the height-based
! pressure used in the equation of state calculations for the Boussinesq
! pressure gradient forces, including adjustments for atmospheric or sea-ice
! pressure.
MASS_WEIGHT_IN_PRESSURE_GRADIENT = False ! [Boolean] default = False
! If true, use mass weighting when interpolating T/S for integrals near the
! bathymetry in FV pressure gradient calculations.
MASS_WEIGHT_IN_PRESSURE_GRADIENT_TOP = False ! [Boolean] default = False
! If true and MASS_WEIGHT_IN_PRESSURE_GRADIENT is true, use mass weighting when
! interpolating T/S for integrals near the top of the water column in FV
! pressure gradient calculations.
USE_INACCURATE_PGF_RHO_ANOM = False ! [Boolean] default = False
! If true, use a form of the PGF that uses the reference density in an
! inaccurate way. This is not recommended.
RECONSTRUCT_FOR_PRESSURE = False ! [Boolean] default = False
! If True, use vertical reconstruction of T & S within the integrals of the FV
! pressure gradient calculation. If False, use the constant-by-layer algorithm.
! The default is set by USE_REGRIDDING.
PRESSURE_RECONSTRUCTION_SCHEME = 1 ! default = 1
! Order of vertical reconstruction of T/S to use in the integrals within the FV
! pressure gradient calculation.
! 0: PCM or no reconstruction.
! 1: PLM reconstruction.
! 2: PPM reconstruction.
BOUNDARY_EXTRAPOLATION_PRESSURE = True ! [Boolean] default = True
! If true, the reconstruction of T & S for pressure in boundary cells is
! extrapolated, rather than using PCM in these cells. If true, the same order
! polynomial is used as is used for the interior cells.
USE_STANLEY_PGF = False ! [Boolean] default = False
! If true, turn on Stanley SGS T variance parameterization in PGF code.
! === module MOM_Zanna_Bolton ===
USE_ZB2020 = False ! [Boolean] default = False
! If true, turns on Zanna-Bolton-2020 (ZB) subgrid momentum parameterization of
! mesoscale eddies.
! === module MOM_hor_visc ===
HOR_VISC_ANSWER_DATE = 99991231 ! default = 99991231
! The vintage of the order of arithmetic and expressions in the horizontal
! 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.
USE_CONT_THICKNESS = False ! [Boolean] default = False
! If true, use thickness at velocity points from continuity solver. This option
! currently only works with split mode.
LAPLACIAN = True ! [Boolean] default = False
! If true, use a Laplacian horizontal viscosity.
KH = 1.0E+04 ! [m2 s-1] default = 0.0
! The background Laplacian horizontal viscosity.
KH_BG_MIN = 0.0 ! [m2 s-1] default = 0.0
! The minimum value allowed for Laplacian horizontal viscosity, KH.
KH_VEL_SCALE = 0.003 ! [m s-1] default = 0.0
! The velocity scale which is multiplied by the grid spacing to calculate the
! Laplacian viscosity. The final viscosity is the largest of this scaled
! viscosity, the Smagorinsky and Leith viscosities, and KH.
KH_SIN_LAT = 0.0 ! [m2 s-1] default = 0.0
! The amplitude of a latitudinally-dependent background viscosity of the form
! KH_SIN_LAT*(SIN(LAT)**KH_PWR_OF_SINE).
SMAGORINSKY_KH = True ! [Boolean] default = False
! If true, use a Smagorinsky nonlinear eddy viscosity.
SMAG_LAP_CONST = 0.15 ! [nondim] default = 0.0
! The nondimensional Laplacian Smagorinsky constant, often 0.15.
LEITH_KH = False ! [Boolean] default = False
! If true, use a Leith nonlinear eddy viscosity.
BOUND_KH = True ! [Boolean] default = True
! If true, the Laplacian coefficient is locally limited to be stable.
BETTER_BOUND_KH = True ! [Boolean] default = True
! If true, the Laplacian coefficient is locally limited to be stable with a
! better bounding than just BOUND_KH.
EY24_EBT_BS = False ! [Boolean] default = False
! If true, use the the backscatter scheme (EBT mode with kill switch)developed
! by Yankovsky et al. (2024).
ANISOTROPIC_VISCOSITY = False ! [Boolean] default = False
! If true, allow anistropic viscosity in the Laplacian horizontal viscosity.
ADD_LES_VISCOSITY = False ! [Boolean] default = False
! If true, adds the viscosity from Smagorinsky and Leith to the background
! viscosity instead of taking the maximum.
BIHARMONIC = False ! [Boolean] default = True
! If true, use a biharmonic horizontal viscosity. BIHARMONIC may be used with
! LAPLACIAN.
USE_LEITHY = False ! [Boolean] default = False
! If true, use a biharmonic Leith nonlinear eddy viscosity together with a
! harmonic backscatter.
USE_LAND_MASK_FOR_HVISC = True ! [Boolean] default = True
! If true, use the land mask for the computation of thicknesses at velocity
! locations. This eliminates the dependence on arbitrary values over land or
! outside of the domain.
HORVISC_BOUND_COEF = 0.8 ! [nondim] default = 0.8
! The nondimensional coefficient of the ratio of the viscosity bounds to the
! theoretical maximum for stability without considering other terms.
USE_KH_BG_2D = False ! [Boolean] default = False
! If true, read a file containing 2-d background harmonic viscosities. The final
! viscosity is the maximum of the other terms and this background value.
FRICTWORK_BUG = True ! [Boolean] default = True
! If true, retain an answer-changing bug in calculating the FrictWork, which
! cancels the h in thickness flux and the h at velocity point. This isnot
! recommended.
! === module MOM_vert_friction ===
VERT_FRICTION_ANSWER_DATE = 99991231 ! default = 99991231
! The vintage of the order of arithmetic and expressions in the viscous
! calculations. Values below 20190101 recover the answers from the end of 2018,
! while higher values use expressions that do not use an arbitrary hard-coded
! maximum viscous coupling coefficient between layers. Values below 20230601
! recover a form of the viscosity within the mixed layer that breaks up the
! magnitude of the wind stress in some non-Boussinesq cases.
DIRECT_STRESS = True ! [Boolean] default = False
! If true, the wind stress is distributed over the topmost HMIX_STRESS of fluid
! (like in HYCOM), and an added mixed layer viscosity or a physically based
! boundary layer turbulence parameterization is not needed for stability.
FIXED_DEPTH_LOTW_ML = False ! [Boolean] default = False
! If true, use a Law-of-the-wall prescription for the mixed layer viscosity
! within a boundary layer that is the lesser of HMIX_FIXED and the total depth
! of the ocean in a column.
LOTW_VISCOUS_ML_FLOOR = False ! [Boolean] default = False
! If true, use a Law-of-the-wall prescription to set a lower bound on the
! viscous coupling between layers within the surface boundary layer, based the
! distance of interfaces from the surface. This only acts when there are large
! changes in the thicknesses of successive layers or when the viscosity is set
! externally and the wind stress has subsequently increased.
VON_KARMAN_CONST = 0.41 ! [nondim] default = 0.41
! The value the von Karman constant as used for mixed layer viscosity.
HARMONIC_VISC = True ! [Boolean] default = False
! If true, use the harmonic mean thicknesses for calculating the vertical
! viscosity.
HARMONIC_BL_SCALE = 0.0 ! [nondim] default = 0.0
! A scale to determine when water is in the boundary layers based solely on
! harmonic mean thicknesses for the purpose of determining the extent to which
! the thicknesses used in the viscosities are upwinded.
HMIX_FIXED = 20.0 ! [m]
! The prescribed depth over which the near-surface viscosity and diffusivity are
! elevated when the bulk mixed layer is not used.
HMIX_STRESS = 20.0 ! [m] default = 20.0
! The depth over which the wind stress is applied if DIRECT_STRESS is true.
USE_GL90_IN_SSW = False ! [Boolean] default = False
! If true, use simpler method to calculate 1/N^2 in GL90 vertical viscosity
! coefficient. This method is valid in stacked shallow water mode.
KV_ML_INVZ2 = 0.01 ! [m2 s-1] default = 0.0
! An extra kinematic viscosity in a mixed layer of thickness HMIX_FIXED, with
! the actual viscosity scaling as 1/(z*HMIX_FIXED)^2, where z is the distance
! from the surface, to allow for finite wind stresses to be transmitted through
! infinitesimally thin surface layers. This is an older option for numerical
! convenience without a strong physical basis, and its use is now discouraged.
MAXVEL = 6.0 ! [m s-1] default = 3.0E+08
! The maximum velocity allowed before the velocity components are truncated.
CFL_BASED_TRUNCATIONS = True ! [Boolean] default = True
! If true, base truncations on the CFL number, and not an absolute speed.
CFL_TRUNCATE = 0.5 ! [nondim] default = 0.5
! The value of the CFL number that will cause velocity components to be
! truncated; instability can occur past 0.5.
CFL_REPORT = 0.5 ! [nondim] default = 0.5
! The value of the CFL number that causes accelerations to be reported; the
! default is CFL_TRUNCATE.
CFL_TRUNCATE_RAMP_TIME = 0.0 ! [s] default = 0.0
! The time over which the CFL truncation value is ramped up at the beginning of
! the run.
CFL_TRUNCATE_START = 0.0 ! [nondim] default = 0.0
! The start value of the truncation CFL number used when ramping up CFL_TRUNC.
STOKES_MIXING_COMBINED = False ! [Boolean] default = False
! Flag to use Stokes drift Mixing via the Lagrangian current (Eulerian plus
! Stokes drift). Still needs work and testing, so not recommended for use.
VEL_UNDERFLOW = 0.0 ! [m s-1] default = 0.0
! A negligibly small velocity magnitude below which velocity components are set
! to 0. A reasonable value might be 1e-30 m/s, which is less than an Angstrom
! divided by the age of the universe.
! === module MOM_barotropic ===
USE_BT_CONT_TYPE = True ! [Boolean] default = True
! If true, use a structure with elements that describe effective face areas from
! the summed continuity solver as a function the barotropic flow in coupling
! between the barotropic and baroclinic flow. This is only used if SPLIT is
! true.
INTEGRAL_BT_CONTINUITY = False ! [Boolean] default = False
! If true, use the time-integrated velocity over the barotropic steps to
! determine the integrated transports used to update the continuity equation.
! Otherwise the transports are the sum of the transports based on a series of
! instantaneous velocities and the BT_CONT_TYPE for transports. This is only
! valid if USE_BT_CONT_TYPE = True.
BOUND_BT_CORRECTION = True ! [Boolean] default = False
! If true, the corrective pseudo mass-fluxes into the barotropic solver are
! limited to values that require less than maxCFL_BT_cont to be accommodated.
BT_CONT_CORR_BOUNDS = True ! [Boolean] default = True
! If true, and BOUND_BT_CORRECTION is true, use the BT_cont_type variables to
! set limits determined by MAXCFL_BT_CONT on the CFL number of the velocities
! that are likely to be driven by the corrective mass fluxes.
ADJUST_BT_CONT = False ! [Boolean] default = False
! If true, adjust the curve fit to the BT_cont type that is used by the
! barotropic solver to match the transport about which the flow is being
! linearized.
GRADUAL_BT_ICS = False ! [Boolean] default = False
! If true, adjust the initial conditions for the barotropic solver to the values
! from the layered solution over a whole timestep instead of instantly. This is
! a decent approximation to the inclusion of sum(u dh_dt) while also correcting
! for truncation errors.
BT_USE_VISC_REM_U_UH0 = False ! [Boolean] default = False
! If true, use the viscous remnants when estimating the barotropic velocities
! that were used to calculate uh0 and vh0. False is probably the better choice.
BT_PROJECT_VELOCITY = True ! [Boolean] default = False
! If true, step the barotropic velocity first and project out the velocity
! tendency by 1+BEBT when calculating the transport. The default (false) is to
! use a predictor continuity step to find the pressure field, and then to do a
! corrector continuity step using a weighted average of the old and new
! velocities, with weights of (1-BEBT) and BEBT.
BT_NONLIN_STRESS = False ! [Boolean] default = False
! If true, use the full depth of the ocean at the start of the barotropic step
! when calculating the surface stress contribution to the barotropic
! acclerations. Otherwise use the depth based on bathyT.
DYNAMIC_SURFACE_PRESSURE = False ! [Boolean] default = False
! If true, add a dynamic pressure due to a viscous ice shelf, for instance.
BT_CORIOLIS_SCALE = 1.0 ! [nondim] default = 1.0
! A factor by which the barotropic Coriolis anomaly terms are scaled.
BAROTROPIC_ANSWER_DATE = 99991231 ! default = 99991231
! The vintage of the expressions in the barotropic solver. Values below 20190101