From 40db8593dbd41948861f90381de57301e185ef31 Mon Sep 17 00:00:00 2001 From: sanAkel Date: Wed, 21 Feb 2024 17:04:07 -0500 Subject: [PATCH 1/2] 1. Get rid of commented lines, 2. Turn off known buggy switches, 3. Use options that improve simulations --- MOM6_GEOSPlug/mom6_app/1440x1080/MOM_override | 41 +++++++++++++++++-- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/MOM6_GEOSPlug/mom6_app/1440x1080/MOM_override b/MOM6_GEOSPlug/mom6_app/1440x1080/MOM_override index ab212a4..309ba73 100644 --- a/MOM6_GEOSPlug/mom6_app/1440x1080/MOM_override +++ b/MOM6_GEOSPlug/mom6_app/1440x1080/MOM_override @@ -3,11 +3,9 @@ LAYOUT = 36, 30 #override DT = 450.0 #override DT_THERM = 450. -!BAD_VAL_SST_MIN = -3.0 -!BAD_VAL_SSS_MAX = 55.0 HFREEZE = 2.0 -! disable checksums +! Disable checksums RESTART_CHECKSUMS_REQUIRED = False !VERBOSITY = 9 @@ -18,3 +16,40 @@ RESTART_CHECKSUMS_REQUIRED = False #override DIAG_COORDS = "z Z ZSTAR" #override DIAG_COORD_DEF_Z = "WOA09" +! Use (known) bug fixes. +#override USE_GM_WORK_BUG = False +#override BT_USE_OLD_CORIOLIS_BRACKET_BUG = False +#override KAPPA_SHEAR_ITER_BUG = False +#override KAPPA_SHEAR_ALL_LAYER_TKE_BUG = False +#override FIX_USTAR_GUSTLESS_BUG = True +#override REMAP_UV_USING_OLD_ALG = False + +! For SOCA +#override VERTEX_SHEAR = True + +! Known improvements +#override INTERNAL_WAVE_SPEED_BETTER_EST = True +#override REMAP_AUXILIARY_VARS = True + +! Thermo_spans_coupling should be set to False +#override THERMO_SPANS_COUPLING = False + +! Following improved ocean-ice simulations +#override CORIOLIS_SCHEME = SADOURNY75_ENERGY +#override BOUNDARY_EXTRAPOLATION = False +#override EPBL_MSTAR_SCHEME = "REICHL_H18" +#override EPBL_MLD_BISECTION = False +#override APPLY_INTERFACE_FILTER = True +#override THICKNESSDIFFUSE = False +#override KH_VEL_SCALE = 0.00286 +#override HTBL_SHELF_MIN = 10. +#override KH_ETA_CONST = 20. +#override AH_VEL_SCALE = 0.02 +#override SMAGORINSKY_AH = False +#override BBL_THICK_MIN = 10. +#override BBL_EFFIC = 0.01 +#override PRESSURE_DEPENDENT_FRAZIL = False +! +! update answers +#override DEFAULT_2018_ANSWERS = False +! From 2b109d5cacd22785e3921c35102bb07c689c3fee Mon Sep 17 00:00:00 2001 From: sanAkel Date: Wed, 21 Feb 2024 17:22:07 -0500 Subject: [PATCH 2/2] Add full configuration --- .../mom6_app/1440x1080/MOM_parameter_doc.all | 2399 +++++++++++++++++ 1 file changed, 2399 insertions(+) create mode 100644 MOM6_GEOSPlug/mom6_app/1440x1080/MOM_parameter_doc.all diff --git a/MOM6_GEOSPlug/mom6_app/1440x1080/MOM_parameter_doc.all b/MOM6_GEOSPlug/mom6_app/1440x1080/MOM_parameter_doc.all new file mode 100644 index 0000000..aca7160 --- /dev/null +++ b/MOM6_GEOSPlug/mom6_app/1440x1080/MOM_parameter_doc.all @@ -0,0 +1,2399 @@ +! 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. +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 = True ! [Boolean] default = True + ! If true, Temperature and salinity are used as state variables. +USE_EOS = True ! [Boolean] default = True + ! 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 = True ! [Boolean] default = False + ! If True, use the ALE algorithm (regridding/remapping). If False, use the + ! layered isopycnal algorithm. +REMAP_AUXILIARY_VARS = True ! [Boolean] default = False + ! If true, apply ALE remapping to all of the auxiliary 3-dimensional variables + ! that are needed to reproduce across restarts, similarly to what is already + ! being done with the primary state variables. The default should be changed to + ! true. +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 = True ! [Boolean] default = False + ! If true, model interface heights are subjected to a grid-scale dependent + ! spatial smoothing, often with biharmonic filter. +THICKNESSDIFFUSE_FIRST = True ! [Boolean] default = False + ! If true, do thickness diffusion or interface height smoothing before dynamics. + ! This is only used if THICKNESSDIFFUSE or APPLY_INTERFACE_FILTER is true. +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 = 450.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 = 450.0 ! [s] default = 450.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 = 2.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 = 450.0 ! [s] default = 450.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. +FRAZIL = True ! [Boolean] default = False + ! If true, water freezes if it gets too cold, and the accumulated heat deficit + ! is returned in the surface state. FRAZIL is only used if + ! ENABLE_THERMODYNAMICS is true. +DO_GEOTHERMAL = True ! [Boolean] default = False + ! If true, apply geothermal heating. +BOUND_SALINITY = True ! [Boolean] default = False + ! If true, limit salinity to being positive. (The sea-ice model may ask for more + ! salt than is available and drive the salinity negative otherwise.) +MIN_SALINITY = 0.01 ! [PPT] default = 0.0 + ! The minimum value of salinity when BOUND_SALINITY=True. +SALINITY_UNDERFLOW = 0.0 ! [PPT] default = 0.0 + ! A tiny value of salinity below which the it is set to 0. For reference, one + ! molecule of salt per square meter of ocean is of order 1e-29 ppt. +TEMPERATURE_UNDERFLOW = 0.0 ! [degC] default = 0.0 + ! A tiny magnitude of temperatures below which they are set to 0. +C_P = 3992.0 ! [J kg-1 K-1] default = 3991.86795711963 + ! The heat capacity of sea water, approximated as a constant. This is only used + ! if ENABLE_THERMODYNAMICS is true. The default value is from the TEOS-10 + ! definition of conservative temperature. +USE_PSURF_IN_EOS = False ! [Boolean] default = True + ! If true, always include the surface pressure contributions in equation of + ! state calculations. +P_REF = 2.0E+07 ! [Pa] default = 2.0E+07 + ! The pressure that is used for calculating the coordinate density. (1 Pa = 1e4 + ! dbar, so 2e7 is commonly used.) This is only used if USE_EOS and + ! ENABLE_THERMODYNAMICS are 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 = True ! [Boolean] default = False + ! If true, check the surface state for ridiculous values. +BAD_VAL_SSH_MAX = 50.0 ! [m] default = 20.0 + ! The value of SSH above which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SSS_MAX = 75.0 ! [PPT] default = 45.0 + ! The value of SSS above which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SST_MAX = 55.0 ! [deg C] default = 45.0 + ! The value of SST above which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_SST_MIN = -3.0 ! [deg C] default = -2.1 + ! The value of SST below which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true. +BAD_VAL_COLUMN_THICKNESS = 0.0 ! [m] default = 0.0 + ! The value of column thickness below which a bad value message is triggered, if + ! CHECK_BAD_SURFACE_VALS is true. +DEFAULT_ANSWER_DATE = 99991231 ! default = 99991231 + ! This sets the default value for the various _ANSWER_DATE parameters. +DEFAULT_2018_ANSWERS = False ! [Boolean] default = False + ! This sets the default value for the various _2018_ANSWERS parameters. +SURFACE_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use expressions for the surface properties that recover the answers + ! from the end of 2018. Otherwise, use more appropriate expressions that differ + ! at roundoff for non-Boussinesq cases. +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. If both + ! SURFACE_2018_ANSWERS and SURFACE_ANSWER_DATE are specified, the latter takes + ! precedence. +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 = 0 ! 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. +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 = True ! [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 = True ! [Boolean] default = False + ! Use tripolar connectivity at the northern edge of the domain. With + ! TRIPOLAR_N, NIGLOBAL must be even. +NIGLOBAL = 1440 ! + ! 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 = 1080 ! + ! 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 = "mosaic" ! + ! 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. +GRID_FILE = "ocean_hgrid.nc" ! + ! Name of the file from which to read horizontal grid data. +USE_TRIPOLAR_GEOLONB_BUG = False ! [Boolean] default = False + ! If true, use older code that incorrectly sets the longitude in some points + ! along the tripolar fold to be off by 360 degrees. +RAD_EARTH = 6.378E+06 ! [m] default = 6.378E+06 + ! The radius of the Earth. +TOPO_CONFIG = "file" ! + ! 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. +TOPO_FILE = "ocean_topog.nc" ! default = "topog.nc" + ! The file from which the bathymetry is read. +TOPO_VARNAME = "depth" ! default = "depth" + ! The name of the bathymetry variable in TOPO_FILE. +TOPO_EDITS_FILE = "All_edits.nc" ! default = "" + ! The file from which to read a list of i,j,z topography overrides. +ALLOW_LANDMASK_CHANGES = False ! [Boolean] default = False + ! If true, allow topography overrides to change land mask. +MINIMUM_DEPTH = 9.5 ! [m] default = 0.0 + ! If MASKING_DEPTH is unspecified, then anything shallower than MINIMUM_DEPTH is + ! assumed to be land and all fluxes are masked out. If MASKING_DEPTH is + ! specified, then all depths shallower than MINIMUM_DEPTH but deeper than + ! MASKING_DEPTH are rounded to MINIMUM_DEPTH. +MASKING_DEPTH = 0.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. +MAXIMUM_DEPTH = 6500.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. +CHANNEL_CONFIG = "list" ! 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. +CHANNEL_LIST_FILE = "MOM_channels_global_025" ! default = "MOM_channel_list" + ! The file from which the list of narrowed channels is read. +CHANNEL_LIST_360_LON_CHECK = True ! [Boolean] default = True + ! If true, the channel configuration list works for any longitudes in the range + ! of -360 to 360. +FATAL_UNUSED_CHANNEL_WIDTHS = False ! [Boolean] default = False + ! If true, trigger a fatal error if there are any channel widths in + ! CHANNEL_LIST_FILE that do not cause any open face widths to change. +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 = 75 ! [nondim] + ! The number of model layers. + +! === module MOM_tracer_registry === + +! === module MOM_EOS === +EQN_OF_STATE = "WRIGHT" ! default = "WRIGHT" + ! EQN_OF_STATE determines which ocean equation of state should be used. + ! Currently, the valid choices are "LINEAR", "UNESCO", "JACKETT_MCD", "WRIGHT", + ! "WRIGHT_REDUCED", "WRIGHT_FULL", "NEMO", "ROQUET_RHO", "ROQUET_SPV" and + ! "TEOS10". This is only used if USE_EOS is true. +USE_WRIGHT_2ND_DERIV_BUG = False ! [Boolean] default = False + ! If true, use a bug in the calculation of the second derivatives of density + ! with temperature and with temperature and pressure that causes some terms to + ! be only 2/3 of what they should be. +EOS_QUADRATURE = False ! [Boolean] default = False + ! If true, always use the generic (quadrature) code code for the integrals of + ! density. +TFREEZE_FORM = "LINEAR" ! default = "LINEAR" + ! TFREEZE_FORM determines which expression should be used for the freezing + ! point. Currently, the valid choices are "LINEAR", "MILLERO_78", "TEOS_POLY", + ! "TEOS10" +TFREEZE_S0_P0 = 0.0 ! [deg C] default = 0.0 + ! When TFREEZE_FORM=LINEAR, this is the freezing potential temperature at S=0, + ! P=0. +DTFREEZE_DS = -0.054 ! [deg C PSU-1] default = -0.054 + ! When TFREEZE_FORM=LINEAR, this is the derivative of the freezing potential + ! temperature with salinity. +DTFREEZE_DP = -7.75E-08 ! [deg C Pa-1] default = 0.0 + ! When TFREEZE_FORM=LINEAR, this is the derivative of the freezing potential + ! temperature with pressure. + +! === module MOM_restart === +PARALLEL_RESTARTFILES = True ! [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 = False ! [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. + +! === 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 = True ! [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 ideal_age_example === +DO_IDEAL_AGE = True ! [Boolean] default = True + ! If true, use an ideal age tracer that is set to 0 age in the boundary layer + ! and ages at unit rate in the interior. +DO_IDEAL_VINTAGE = False ! [Boolean] default = False + ! If true, use an ideal vintage tracer that is set to an exponentially + ! increasing value in the boundary layer and is conserved thereafter. +DO_IDEAL_AGE_DATED = False ! [Boolean] default = False + ! If true, use an ideal age tracer that is everywhere 0 before + ! IDEAL_AGE_DATED_START_YEAR, but the behaves like the standard ideal age tracer + ! - i.e. is set to 0 age in the boundary layer and ages at unit rate in the + ! interior. +DO_BL_RESIDENCE = False ! [Boolean] default = False + ! If true, use a residence tracer that is set to 0 age in the interior and ages + ! at unit rate in the boundary layer. +USE_REAL_BL_DEPTH = False ! [Boolean] default = False + ! If true, the ideal age tracers will use the boundary layer depth diagnosed + ! from the BL or bulkmixedlayer scheme. +AGE_IC_FILE = "" ! default = "" + ! The file in which the age-tracer initial values can be found, or an empty + ! string for internal initialization. +AGE_IC_FILE_IS_Z = False ! [Boolean] default = False + ! If true, AGE_IC_FILE is in depth space, not layer space +TRACERS_MAY_REINIT = False ! [Boolean] default = False + ! If true, tracers may go through the initialization code if they are not found + ! in the restart files. Otherwise it is a fatal error if the tracers are not + ! found in the restart files of a restarted run. + +! === module MOM_coord_initialization === +COORD_CONFIG = "file" ! 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. +COORD_FILE = "layer_coord.nc" ! + ! The file from which the coordinate densities are read. +COORD_VAR = "Layer" ! default = "Layer" + ! The variable in COORD_FILE that is to be used for the coordinate densities. +REMAP_UV_USING_OLD_ALG = False ! [Boolean] default = False + ! If true, uses the old remapping-via-a-delta-z method for remapping u and v. If + ! false, uses the new method that remaps between grids described by an old and + ! new thickness. +REGRIDDING_COORDINATE_MODE = "HYCOM1" ! default = "LAYER" + ! Coordinate mode for vertical regridding. Choose among the following + ! possibilities: LAYER - Isopycnal or stacked shallow water layers + ! ZSTAR, Z* - stretched geopotential z* + ! SIGMA_SHELF_ZSTAR - stretched geopotential z* ignoring shelf + ! SIGMA - terrain following coordinates + ! RHO - continuous isopycnal + ! HYCOM1 - HyCOM-like hybrid coordinate + ! HYBGEN - Hybrid coordinate from the Hycom hybgen code + ! ADAPTIVE - optimize for smooth neutral density surfaces +REGRIDDING_COORDINATE_UNITS = "m" ! default = "m" + ! Units of the regridding coordinate. +INTERPOLATION_SCHEME = "P1M_H2" ! default = "P1M_H2" + ! This sets the interpolation scheme to use to determine the new grid. These + ! parameters are only relevant when REGRIDDING_COORDINATE_MODE is set to a + ! function of state. Otherwise, it is not used. It can be one of the following + ! schemes: + ! P1M_H2 (2nd-order accurate) + ! P1M_H4 (2nd-order accurate) + ! P1M_IH4 (2nd-order accurate) + ! PLM (2nd-order accurate) + ! PPM_CW (3rd-order accurate) + ! PPM_H4 (3rd-order accurate) + ! PPM_IH4 (3rd-order accurate) + ! P3M_IH4IH3 (4th-order accurate) + ! P3M_IH6IH5 (4th-order accurate) + ! PQM_IH4IH3 (4th-order accurate) + ! PQM_IH6IH5 (5th-order accurate) +REMAPPING_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use updated and more robust forms of the + ! same expressions. +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. If both + ! REMAPPING_2018_ANSWERS and REMAPPING_ANSWER_DATE are specified, the latter + ! takes precedence. +REGRIDDING_ANSWER_DATE = 20181231 ! default = 20181231 + ! The vintage of the expressions and order of arithmetic to use for regridding. + ! 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. +BOUNDARY_EXTRAPOLATION = False ! [Boolean] default = False + ! When defined, a proper high-order reconstruction scheme is used within + ! boundary cells rather than PCM. E.g., if PPM is used for remapping, a PPM + ! reconstruction will also be used within boundary cells. +ALE_COORDINATE_CONFIG = "HYBRID:hycom1_75_800m.nc,sigma2,FNC1:2,4000,4.5,.01" ! default = "UNIFORM" + ! Determines how to specify the coordinate resolution. Valid options are: + ! PARAM - use the vector-parameter ALE_RESOLUTION + ! 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) + ! 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 +!ALE_RESOLUTION = 7*2.0, 2*2.01, 2.02, 2.03, 2.05, 2.08, 2.11, 2.15, 2.21, 2.2800000000000002, 2.37, 2.48, 2.61, 2.77, 2.95, 3.17, 3.4299999999999997, 3.74, 4.09, 4.49, 4.95, 5.48, 6.07, 6.74, 7.5, 8.34, 9.280000000000001, 10.33, 11.49, 12.77, 14.19, 15.74, 17.450000000000003, 19.31, 21.35, 23.56, 25.97, 28.580000000000002, 31.41, 34.47, 37.77, 41.32, 45.14, 49.25, 53.65, 58.370000000000005, 63.42, 68.81, 74.56, 80.68, 87.21000000000001, 94.14, 101.51, 109.33, 117.62, 126.4, 135.68, 145.5, 155.87, 166.81, 178.35, 190.51, 203.31, 216.78, 230.93, 245.8, 261.42, 277.83 ! [m] + ! The distribution of vertical resolution for the target + ! grid used for Eulerian-like coordinates. For example, + ! in z-coordinate mode, the parameter is a list of level + ! thicknesses (in m). In sigma-coordinate mode, the list + ! is of non-dimensional fractions of the water column. +!TARGET_DENSITIES = 1010.0, 1014.3034, 1017.8088, 1020.843, 1023.5566, 1025.813, 1027.0275, 1027.9114, 1028.6422, 1029.2795, 1029.852, 1030.3762, 1030.8626, 1031.3183, 1031.7486, 1032.1572, 1032.5471, 1032.9207, 1033.2798, 1033.6261, 1033.9608, 1034.2519, 1034.4817, 1034.6774, 1034.8508, 1035.0082, 1035.1533, 1035.2886, 1035.4159, 1035.5364, 1035.6511, 1035.7608, 1035.8661, 1035.9675, 1036.0645, 1036.1554, 1036.2411, 1036.3223, 1036.3998, 1036.4739, 1036.5451, 1036.6137, 1036.68, 1036.7441, 1036.8062, 1036.8526, 1036.8874, 1036.9164, 1036.9418, 1036.9647, 1036.9857, 1037.0052, 1037.0236, 1037.0409, 1037.0574, 1037.0738, 1037.0902, 1037.1066, 1037.123, 1037.1394, 1037.1558, 1037.1722, 1037.1887, 1037.206, 1037.2241, 1037.2435, 1037.2642, 1037.2866, 1037.3112, 1037.3389, 1037.3713, 1037.4118, 1037.475, 1037.6332, 1037.8104, 1038.0 ! [m] + ! HYBRID target densities for interfaces +REGRID_COMPRESSIBILITY_FRACTION = 0.01 ! [nondim] default = 0.0 + ! When interpolating potential density profiles we can add some artificial + ! compressibility solely to make homogeneous regions appear stratified. +MIN_THICKNESS = 0.001 ! [m] default = 0.001 + ! When regridding, this is the minimum layer thickness allowed. +HYCOM1_ONLY_IMPROVES = False ! [Boolean] default = False + ! When regridding, an interface is only moved if this improves the fit to the + ! target density. +MAXIMUM_INT_DEPTH_CONFIG = "FNC1:5,8000.0,1.0,.01" ! default = "NONE" + ! Determines how to specify the maximum interface depths. + ! Valid options are: + ! NONE - there are no maximum interface depths + ! PARAM - use the vector-parameter MAXIMUM_INTERFACE_DEPTHS + ! 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,Z + ! FNC1:string - FNC1:dz_min,H_total,power,precision +!MAXIMUM_INT_DEPTHS = 0.0, 5.0, 12.75, 23.25, 36.49, 52.480000000000004, 71.22, 92.71000000000001, 116.94000000000001, 143.92000000000002, 173.65, 206.13, 241.36, 279.33000000000004, 320.05000000000007, 363.5200000000001, 409.7400000000001, 458.7000000000001, 510.4100000000001, 564.8700000000001, 622.0800000000002, 682.0300000000002, 744.7300000000002, 810.1800000000003, 878.3800000000003, 949.3300000000004, 1023.0200000000004, 1099.4600000000005, 1178.6500000000005, 1260.5900000000006, 1345.2700000000007, 1432.7000000000007, 1522.8800000000008, 1615.8100000000009, 1711.490000000001, 1809.910000000001, 1911.080000000001, 2015.0000000000011, 2121.670000000001, 2231.080000000001, 2343.2400000000007, 2458.1500000000005, 2575.8100000000004, 2696.2200000000003, 2819.3700000000003, 2945.2700000000004, 3073.9200000000005, 3205.3200000000006, 3339.4600000000005, 3476.3500000000004, 3615.9900000000002, 3758.38, 3903.52, 4051.4, 4202.03, 4355.41, 4511.54, 4670.41, 4832.03, 4996.4, 5163.5199999999995, 5333.379999999999, 5505.989999999999, 5681.3499999999985, 5859.459999999998, 6040.319999999998, 6223.919999999998, 6410.269999999999, 6599.369999999999, 6791.219999999999, 6985.8099999999995, 7183.15, 7383.24, 7586.08, 7791.67, 8000.0 + ! The list of maximum depths for each interface. +MAX_LAYER_THICKNESS_CONFIG = "FNC1:400,31000.0,0.1,.01" ! default = "NONE" + ! Determines how to specify the maximum layer thicknesses. + ! Valid options are: + ! NONE - there are no maximum layer thicknesses + ! PARAM - use the vector-parameter MAX_LAYER_THICKNESS + ! 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,Z + ! FNC1:string - FNC1:dz_min,H_total,power,precision +!MAX_LAYER_THICKNESS = 400.0, 409.63, 410.32, 410.75, 411.07, 411.32, 411.52, 411.7, 411.86, 412.0, 412.13, 412.24, 412.35, 412.45, 412.54, 412.63, 412.71, 412.79, 412.86, 412.93, 413.0, 413.06, 413.12, 413.18, 413.24, 413.29, 413.34, 413.39, 413.44, 413.49, 413.54, 413.58, 413.62, 413.67, 413.71, 413.75, 413.78, 413.82, 413.86, 413.9, 413.93, 413.97, 414.0, 414.03, 414.06, 414.1, 414.13, 414.16, 414.19, 414.22, 414.24, 414.27, 414.3, 414.33, 414.35, 414.38, 414.41, 414.43, 414.46, 414.48, 414.51, 414.53, 414.55, 414.58, 414.6, 414.62, 414.65, 414.67, 414.69, 414.71, 414.73, 414.75, 414.77, 414.79, 414.83 ! [m] + ! The list of maximum thickness for each layer. +REMAPPING_SCHEME = "PPM_H4" ! default = "PLM" + ! This sets the reconstruction scheme used for 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) +VELOCITY_REMAPPING_SCHEME = "PPM_H4" ! default = "PPM_H4" + ! This sets the reconstruction scheme used for vertical remapping of velocities. + ! By default it is the same as REMAPPING_SCHEME. 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) +FATAL_CHECK_RECONSTRUCTIONS = False ! [Boolean] default = False + ! If true, cell-by-cell reconstructions are checked for consistency and if + ! non-monotonicity or an inconsistency is detected then a FATAL error is issued. +FATAL_CHECK_REMAPPING = False ! [Boolean] default = False + ! If true, the results of remapping are checked for conservation and new extrema + ! and if an inconsistency is detected then a FATAL error is issued. +REMAP_BOUND_INTERMEDIATE_VALUES = False ! [Boolean] default = False + ! If true, the values on the intermediate grid used for remapping are forced to + ! be bounded, which might not be the case due to round off. +REMAP_BOUNDARY_EXTRAP = False ! [Boolean] default = False + ! If true, values at the interfaces of boundary cells are extrapolated instead + ! of piecewise constant +PARTIAL_CELL_VELOCITY_REMAP = False ! [Boolean] default = False + ! If true, use partial cell thicknesses at velocity points that are masked out + ! where they extend below the shallower of the neighboring bathymetry for + ! remapping velocity. +REMAP_AFTER_INITIALIZATION = True ! [Boolean] default = True + ! If true, applies regridding and remapping immediately after initialization so + ! that the state is ALE consistent. This is a legacy step and should not be + ! needed if the initialization is consistent with the coordinate mode. +REGRID_TIME_SCALE = 0.0 ! [s] default = 0.0 + ! The time-scale used in blending between the current (old) grid and the target + ! (new) grid. A short time-scale favors the target grid (0. or anything less + ! than DT_THERM) has no memory of the old grid. A very long time-scale makes the + ! model more Lagrangian. +REGRID_FILTER_SHALLOW_DEPTH = 0.0 ! [m] default = 0.0 + ! The depth above which no time-filtering is applied. Above this depth final + ! grid exactly matches the target (new) grid. +REGRID_FILTER_DEEP_DEPTH = 0.0 ! [m] default = 0.0 + ! The depth below which full time-filtering is applied with time-scale + ! REGRID_TIME_SCALE. Between depths REGRID_FILTER_SHALLOW_DEPTH and + ! REGRID_FILTER_SHALLOW_DEPTH the filter weights adopt a cubic profile. +REMAP_VEL_MASK_BBL_THICK = -0.001 ! [m] default = -0.001 + ! A thickness of a bottom boundary layer below which velocities in thin layers + ! are zeroed out after remapping, following practice with Hybgen remapping, or a + ! negative value to avoid such filtering altogether. + +! === 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. +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. +USE_GRID_SPACE_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 = "WOA09" ! default = "WOA09" + ! 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) + ! 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 = True ! [Boolean] default = False + ! If true, turns on the MEKE scheme which calculates a sub-grid mesoscale eddy + ! kinetic energy budget. +MEKE_IN_DYNAMICS = True ! [Boolean] default = True + ! If true, step MEKE forward with the dynamicsotherwise with the tracer + ! timestep. +EKE_SOURCE = "prog" ! default = "prog" + ! Determine the where EKE comes from: + ! 'prog': Calculated solving EKE equation + ! 'file': Read in from a file + ! 'dbclient': Retrieved from ML-database +MEKE_DAMPING = 0.0 ! [s-1] default = 0.0 + ! The local depth-independent MEKE dissipation rate. +MEKE_CD_SCALE = 0.0 ! [nondim] default = 0.0 + ! The ratio of the bottom eddy velocity to the column mean eddy velocity, i.e. + ! sqrt(2*MEKE). This should be less than 1 to account for the surface + ! intensification of MEKE. +MEKE_CB = 25.0 ! [nondim] default = 25.0 + ! A coefficient in the expression for the ratio of bottom projected eddy energy + ! and mean column energy (see Jansen et al. 2015). +MEKE_MIN_GAMMA2 = 1.0E-04 ! [nondim] default = 1.0E-04 + ! The minimum allowed value of gamma_b^2. +MEKE_CT = 50.0 ! [nondim] default = 50.0 + ! A coefficient in the expression for the ratio of barotropic eddy energy and + ! mean column energy (see Jansen et al. 2015). +MEKE_GMCOEFF = 1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of potential energy into MEKE by the + ! thickness mixing parameterization. If MEKE_GMCOEFF is negative, this + ! conversion is not used or calculated. +MEKE_GEOMETRIC = False ! [Boolean] default = False + ! If MEKE_GEOMETRIC is true, uses the GM coefficient formulation from the + ! GEOMETRIC framework (Marshall et al., 2012). +MEKE_GEOMETRIC_ALPHA = 0.05 ! [nondim] default = 0.05 + ! The nondimensional coefficient governing the efficiency of the GEOMETRIC + ! thickness diffusion. +MEKE_EQUILIBRIUM_ALT = False ! [Boolean] default = False + ! If true, use an alternative formula for computing the (equilibrium)initial + ! value of MEKE. +MEKE_EQUILIBRIUM_RESTORING = False ! [Boolean] default = False + ! If true, restore MEKE back to its equilibrium value, which is calculated at + ! each time step. +MEKE_FRCOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of mean energy into MEKE. If MEKE_FRCOEFF is + ! negative, this conversion is not used or calculated. +MEKE_GMECOEFF = -1.0 ! [nondim] default = -1.0 + ! The efficiency of the conversion of MEKE into mean energy by GME. If + ! MEKE_GMECOEFF is negative, this conversion is not used or calculated. +MEKE_BGSRC = 1.0E-13 ! [W kg-1] default = 0.0 + ! A background energy source for MEKE. +MEKE_KH = -1.0 ! [m2 s-1] default = -1.0 + ! A background lateral diffusivity of MEKE. Use a negative value to not apply + ! lateral diffusion to MEKE. +MEKE_K4 = -1.0 ! [m4 s-1] default = -1.0 + ! A lateral bi-harmonic diffusivity of MEKE. Use a negative value to not apply + ! bi-harmonic diffusion to MEKE. +MEKE_DTSCALE = 1.0 ! [nondim] default = 1.0 + ! A scaling factor to accelerate the time evolution of MEKE. +MEKE_KHCOEFF = 1.0 ! [nondim] default = 1.0 + ! A scaling factor in the expression for eddy diffusivity which is otherwise + ! proportional to the MEKE velocity- scale times an eddy mixing-length. This + ! factor must be >0 for MEKE to contribute to the thickness/ and tracer + ! diffusivity in the rest of the model. +MEKE_USCALE = 0.0 ! [m s-1] default = 0.0 + ! The background velocity that is combined with MEKE to calculate the bottom + ! drag. +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 MEKE GM source term. +MEKE_VISC_DRAG = True ! [Boolean] default = True + ! If true, use the vertvisc_type to calculate the bottom drag acting on MEKE. +MEKE_KHTH_FAC = 0.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to KhTh. +MEKE_KHTR_FAC = 0.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to KhTr. +MEKE_KHMEKE_FAC = 1.0 ! [nondim] default = 0.0 + ! A factor that maps MEKE%Kh to Kh for MEKE itself. +MEKE_OLD_LSCALE = False ! [Boolean] default = False + ! If true, use the old formula for length scale which is a function of grid + ! spacing and deformation radius. +MEKE_MIN_LSCALE = False ! [Boolean] default = False + ! If true, use a strict minimum of provided length scales rather than harmonic + ! mean. +MEKE_RD_MAX_SCALE = False ! [Boolean] default = False + ! If true, the length scale used by MEKE is the minimum of the deformation + ! radius or grid-spacing. Only used if MEKE_OLD_LSCALE=True +MEKE_VISCOSITY_COEFF_KU = 0.0 ! [nondim] default = 0.0 + ! If non-zero, is the scaling coefficient in the expression forviscosity used to + ! parameterize harmonic lateral momentum mixing byunresolved eddies represented + ! by MEKE. Can be negative torepresent backscatter from the unresolved eddies. +MEKE_VISCOSITY_COEFF_AU = 0.0 ! [nondim] default = 0.0 + ! If non-zero, is the scaling coefficient in the expression forviscosity used to + ! parameterize biharmonic lateral momentum mixing byunresolved eddies + ! represented by MEKE. Can be negative torepresent backscatter from the + ! unresolved eddies. +MEKE_FIXED_MIXING_LENGTH = 0.0 ! [m] default = 0.0 + ! If positive, is a fixed length contribution to the expression for mixing + ! length used in MEKE-derived diffusivity. +MEKE_FIXED_TOTAL_DEPTH = True ! [Boolean] default = True + ! If true, use the nominal bathymetric depth as the estimate of the time-varying + ! ocean depth. Otherwise base the depth on the total ocean massper unit area. +MEKE_ALPHA_DEFORM = 0.0 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the deformation scale in the + ! expression for mixing length used in MEKE-derived diffusivity. +MEKE_ALPHA_RHINES = 0.15 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the Rhines scale in the expression for + ! mixing length used in MEKE-derived diffusivity. +MEKE_ALPHA_EADY = 0.15 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the Eady length scale in the + ! expression for mixing length used in MEKE-derived diffusivity. +MEKE_ALPHA_FRICT = 0.0 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the frictional arrest scale in the + ! expression for mixing length used in MEKE-derived diffusivity. +MEKE_ALPHA_GRID = 0.0 ! [nondim] default = 0.0 + ! If positive, is a coefficient weighting the grid-spacing as a scale in the + ! expression for mixing length used in MEKE-derived diffusivity. +MEKE_COLD_START = False ! [Boolean] default = False + ! If true, initialize EKE to zero. Otherwise a local equilibrium solution is + ! used as an initial condition for EKE. +MEKE_BACKSCAT_RO_C = 0.0 ! [nondim] default = 0.0 + ! The coefficient in the Rossby number function for scaling the biharmonic + ! frictional energy source. Setting to non-zero enables the Rossby number + ! function. +MEKE_BACKSCAT_RO_POW = 0.0 ! [nondim] default = 0.0 + ! The power in the Rossby number function for scaling the biharmonic frictional + ! energy source. +MEKE_ADVECTION_FACTOR = 0.0 ! [nondim] default = 0.0 + ! A scale factor in front of advection of eddy energy. Zero turns advection off. + ! Using unity would be normal but other values could accommodate a mismatch + ! between the advecting barotropic flow and the vertical structure of MEKE. +MEKE_TOPOGRAPHIC_BETA = 0.0 ! [nondim] default = 0.0 + ! A scale factor to determine how much topographic beta is weighed in computing + ! beta in the expression of Rhines scale. Use 1 if full topographic beta effect + ! is considered; use 0 if it's completely ignored. +CDRAG = 0.003 ! [nondim] default = 0.003 + ! CDRAG is the drag coefficient relating the magnitude of the velocity field to + ! the bottom stress. +MEKE_CDRAG = 0.003 ! [nondim] default = 0.003 + ! Drag coefficient relating the magnitude of the velocity field to the bottom + ! stress in MEKE. + +! === module MOM_lateral_mixing_coeffs === +USE_VARIABLE_MIXING = True ! [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 = True ! [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 = True ! [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. +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.25 ! [nondim] default = 0.0 + ! The nondimensional coefficient in the Visbeck formula for the epipycnal tracer + ! diffusivity +USE_STORED_SLOPES = True ! [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. +VISBECK_MAX_SLOPE = 0.0 ! [nondim] default = 0.0 + ! If non-zero, is an upper bound on slopes used in the Visbeck formula for + ! diffusivity. This does not affect the isopycnal slope calculation used within + ! thickness diffusion. +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_SIMPLER_EADY_GROWTH_RATE = False ! [Boolean] default = False + ! If true, use a simpler method to calculate the Eady growth rate that avoids + ! division by layer thickness. Recommended. +VARMIX_KTOP = 2 ! [nondim] default = 2 + ! The layer number at which to start vertical integration of S*N for purposes of + ! finding the Eady growth rate. +VISBECK_L_SCALE = 0.0 ! [m or nondim] default = 0.0 + ! The fixed length scale in the Visbeck formula, or if negative a nondimensional + ! scaling factor relating this length scale squared to the cell areas. +KH_RES_SCALE_COEF = 1.0 ! [nondim] default = 1.0 + ! A coefficient that determines how KhTh is scaled away if RESOLN_SCALED_... is + ! true, as F = 1 / (1 + (KH_RES_SCALE_COEF*Rd/dx)^KH_RES_FN_POWER). +KH_RES_FN_POWER = 2 ! default = 2 + ! The power of dx/Ld in the Kh resolution function. Any positive integer may be + ! used, although even integers are more efficient to calculate. Setting this + ! greater than 100 results in a step-function being used. +VISC_RES_SCALE_COEF = 1.0 ! [nondim] default = 1.0 + ! A coefficient that determines how Kh is scaled away if RESOLN_SCALED_... is + ! true, as F = 1 / (1 + (KH_RES_SCALE_COEF*Rd/dx)^KH_RES_FN_POWER). This + ! function affects lateral viscosity, Kh, and not KhTh. +VISC_RES_FN_POWER = 2 ! default = 2 + ! The power of dx/Ld in the Kh resolution function. Any positive integer may be + ! used, although even integers are more efficient to calculate. Setting this + ! greater than 100 results in a step-function being used. This function affects + ! lateral viscosity, Kh, and not KhTh. +INTERPOLATE_RES_FN = False ! [Boolean] default = False + ! If true, interpolate the resolution function to the velocity points from the + ! thickness points; otherwise interpolate the wave speed and calculate the + ! resolution function independently at each point. +GILL_EQUATORIAL_LD = True ! [Boolean] default = True + ! If true, uses Gill's definition of the baroclinic equatorial deformation + ! radius, otherwise, if false, use Pedlosky's definition. These definitions + ! differ by a factor of 2 in front of the beta term in the denominator. Gill's + ! is the more appropriate definition. +INTERNAL_WAVE_SPEED_TOL = 0.001 ! [nondim] default = 0.001 + ! The fractional tolerance for finding the wave speeds. +INTERNAL_WAVE_SPEED_MIN = 0.0 ! [m s-1] default = 0.0 + ! A floor in the first mode speed below which 0 used instead. +INTERNAL_WAVE_SPEED_BETTER_EST = True ! [Boolean] default = True + ! If true, use a more robust estimate of the first mode wave speed as the + ! starting point for iterations. +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_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use updated and more robust forms of the + ! same expressions. +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. + ! If both SET_VISC_2018_ANSWERS and SET_VISC_ANSWER_DATE are specified, the + ! latter takes precedence. +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 = True ! [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. +PRANDTL_TURB = 1.25 ! [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. +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_USE_EOS = True ! [Boolean] default = True + ! If true, use the equation of state in determining the properties of the bottom + ! boundary layer. Otherwise use the layer target potential densities. The + ! default of this parameter is the value of USE_EOS. +BBL_THICK_MIN = 10.0 ! [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 = 10.0 ! [m] default = 10.0 + ! 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 = 0.0 ! [m2 s-1] default = 1.0E-04 + ! The minimum viscosities in the bottom boundary layer. +KV_TBL_MIN = 0.0 ! [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. +SMAG_CONST_CHANNEL = 0.15 ! [nondim] default = 0.15 + ! The nondimensional Laplacian Smagorinsky constant used in calculating the + ! channel drag if it is enabled. The default is to use the same value as + ! SMAG_LAP_CONST if it is defined, or 0.15 if it is not. The value used is also + ! 0.15 if the specified value is negative. +CHANNEL_DRAG_MAX_BBL_THICK = 5.0 ! [m] default = 5.0 + ! The maximum bottom boundary layer thickness over which the channel drag is + ! exerted, or a negative value for no fixed limit, instead basing the BBL + ! thickness on the bottom stress, rotation and stratification. The default is + ! proportional to HBBL if USE_JACKSON_PARAM or DRAG_AS_BODY_FORCE is true. + +! === 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.1 ! [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 = 20.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. +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_interface_filter === +INTERFACE_FILTER_TIME = 0.0 ! [s] default = 0.0 + ! If positive, interface heights are subjected to a grid-scale dependent + ! biharmonic filter, using a rate based on this timescale. +INTERFACE_FILTER_MAX_CFL = 0.8 ! [nondimensional] default = 0.8 + ! The maximum value of the local CFL ratio that is permitted for the interface + ! height smoothing. 1.0 is the marginally unstable value. +INTERFACE_FILTER_ORDER = 4 ! default = 4 + ! The even power of the interface height smoothing. At present valid values are + ! 0, 2, 4 or 6. +INTERFACE_FILTER_ISOTROPIC = True ! [Boolean] default = True + ! If true, use the same filtering lengthscales in both directions; otherwise use + ! filtering lengthscales in each direction that scale with the grid spacing in + ! that direction. +STOCH_EOS = False ! [Boolean] default = False + ! If true, stochastic perturbations are applied to the EOS in the PGF. +STANLEY_COEFF = -1.0 ! [nondim] default = -1.0 + ! Coefficient correlating the temperature gradient and SGS T variance. + +! === 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. +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 + +! === module MOM_continuity === +CONTINUITY_SCHEME = "PPM" ! default = "PPM" + ! CONTINUITY_SCHEME selects the discretization for the continuity solver. The + ! only valid value currently is: + ! PPM - use a positive-definite (or monotonic) + ! piecewise parabolic reconstruction solver. + +! === 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-06 ! [m] default = 3.75E-09 + ! 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. + +! === 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 === +MASS_WEIGHT_IN_PRESSURE_GRADIENT = True ! [Boolean] default = False + ! If true, use mass weighting when interpolating T/S for integrals near the + ! bathymetry 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 = True ! [Boolean] default = True + ! 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_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use updated and more robust forms of the + ! same expressions. +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. If both HOR_VISC_2018_ANSWERS and HOR_VISC_ANSWER_DATE are + ! specified, the latter takes precedence. +LAPLACIAN = True ! [Boolean] default = False + ! If true, use a Laplacian horizontal viscosity. +KH = 0.0 ! [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.00286 ! [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 = False ! [Boolean] default = False + ! If true, use a Smagorinsky nonlinear eddy viscosity. +LEITH_KH = False ! [Boolean] default = False + ! If true, use a Leith nonlinear eddy viscosity. +RES_SCALE_MEKE_VISC = False ! [Boolean] default = False + ! If true, the viscosity contribution from MEKE is scaled by the resolution + ! function. +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. +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 = True ! [Boolean] default = True + ! If true, use a biharmonic horizontal viscosity. BIHARMONIC may be used with + ! LAPLACIAN. +AH = 0.0 ! [m4 s-1] default = 0.0 + ! The background biharmonic horizontal viscosity. +AH_VEL_SCALE = 0.02 ! [m s-1] default = 0.0 + ! The velocity scale which is multiplied by the cube of the grid spacing to + ! calculate the biharmonic viscosity. The final viscosity is the largest of this + ! scaled viscosity, the Smagorinsky and Leith viscosities, and AH. +AH_TIME_SCALE = 0.0 ! [s] default = 0.0 + ! A time scale whose inverse is multiplied by the fourth power of the grid + ! spacing to calculate biharmonic viscosity. The final viscosity is the largest + ! of all viscosity formulations in use. 0.0 means that it's not used. +SMAGORINSKY_AH = False ! [Boolean] default = False + ! If true, use a biharmonic Smagorinsky nonlinear eddy viscosity. +LEITH_AH = False ! [Boolean] default = False + ! If true, use a biharmonic Leith nonlinear eddy viscosity. +USE_LEITHY = False ! [Boolean] default = False + ! If true, use a biharmonic Leith nonlinear eddy viscosity together with a + ! harmonic backscatter. +BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited to be stable. +BETTER_BOUND_AH = True ! [Boolean] default = True + ! If true, the biharmonic coefficient is locally limited to be stable with a + ! better bounding than just BOUND_AH. +RE_AH = 0.0 ! [nondim] default = 0.0 + ! If nonzero, the biharmonic coefficient is scaled so that the biharmonic + ! Reynolds number is equal to this. +USE_LAND_MASK_FOR_HVISC = False ! [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. + +! === module MOM_vert_friction === +VERT_FRICTION_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use expressions that do not use an arbitrary + ! hard-coded maximum viscous coupling coefficient between layers. +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. If both + ! VERT_FRICTION_2018_ANSWERS and VERT_FRICTION_ANSWER_DATE are specified, the + ! latter takes precedence. +DIRECT_STRESS = False ! [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 = False ! [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 = 0.5 ! [m] + ! The prescribed depth over which the near-surface viscosity and diffusivity are + ! elevated when the bulk mixed layer is not used. +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.0 ! [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 = True ! [Boolean] default = False + ! If true, add a dynamic pressure due to a viscous ice shelf, for instance. +ICE_LENGTH_DYN_PSURF = 1.0E+04 ! [m] default = 1.0E+04 + ! The length scale at which the Rayleigh damping rate due to the ice strength + ! should be the same as if a Laplacian were applied, if DYNAMIC_SURFACE_PRESSURE + ! is true. +DEPTH_MIN_DYN_PSURF = 1.0E-06 ! [m] default = 1.0E-06 + ! The minimum depth to use in limiting the size of the dynamic surface pressure + ! for stability, if DYNAMIC_SURFACE_PRESSURE is true.. +CONST_DYN_PSURF = 0.9 ! [nondim] default = 0.9 + ! The constant that scales the dynamic surface pressure, if + ! DYNAMIC_SURFACE_PRESSURE is true. Stable values are < ~1.0. +BT_CORIOLIS_SCALE = 1.0 ! [nondim] default = 1.0 + ! A factor by which the barotropic Coriolis anomaly terms are scaled. +BAROTROPIC_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use expressions for the barotropic solver that recover the answers + ! from the end of 2018. Otherwise, use more efficient or general expressions. +BAROTROPIC_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the expressions in the barotropic solver. Values below 20190101 + ! recover the answers from the end of 2018, while higher values uuse more + ! efficient or general expressions. If both BAROTROPIC_2018_ANSWERS and + ! BAROTROPIC_ANSWER_DATE are specified, the latter takes precedence. +SADOURNY = True ! [Boolean] default = True + ! If true, the Coriolis terms are discretized with the Sadourny (1975) energy + ! conserving scheme, otherwise the Arakawa & Hsu scheme is used. If the + ! internal deformation radius is not resolved, the Sadourny scheme should + ! probably be used. +BT_THICK_SCHEME = "FROM_BT_CONT" ! default = "FROM_BT_CONT" + ! A string describing the scheme that is used to set the open face areas used + ! for barotropic transport and the relative weights of the accelerations. Valid + ! values are: + ! ARITHMETIC - arithmetic mean layer thicknesses + ! HARMONIC - harmonic mean layer thicknesses + ! HYBRID (the default) - use arithmetic means for + ! layers above the shallowest bottom, the harmonic + ! mean for layers below, and a weighted average for + ! layers that straddle that depth + ! FROM_BT_CONT - use the average thicknesses kept + ! in the h_u and h_v fields of the BT_cont_type +BT_STRONG_DRAG = False ! [Boolean] default = False + ! If true, use a stronger estimate of the retarding effects of strong bottom + ! drag, by making it implicit with the barotropic time-step instead of implicit + ! with the baroclinic time-step and dividing by the number of barotropic steps. +BT_LINEAR_WAVE_DRAG = False ! [Boolean] default = False + ! If true, apply a linear drag to the barotropic velocities, using rates set by + ! lin_drag_u & _v divided by the depth of the ocean. This was introduced to + ! facilitate tide modeling. +CLIP_BT_VELOCITY = False ! [Boolean] default = False + ! If true, limit any velocity components that exceed CFL_TRUNCATE. This should + ! only be used as a desperate debugging measure. +MAXCFL_BT_CONT = 0.25 ! [nondim] default = 0.25 + ! The maximum permitted CFL number associated with the barotropic accelerations + ! from the summed velocities times the time-derivatives of thicknesses. +DT_BT_FILTER = -0.25 ! [sec or nondim] default = -0.25 + ! A time-scale over which the barotropic mode solutions are filtered, in seconds + ! if positive, or as a fraction of DT if negative. When used this can never be + ! taken to be longer than 2*dt. Set this to 0 to apply no filtering. +G_BT_EXTRA = 0.0 ! [nondim] default = 0.0 + ! A nondimensional factor by which gtot is enhanced. +SSH_EXTRA = 10.0 ! [m] default = 10.0 + ! An estimate of how much higher SSH might get, for use in calculating the safe + ! external wave speed. The default is the minimum of 10 m or 5% of + ! MAXIMUM_DEPTH. +LINEARIZED_BT_CORIOLIS = True ! [Boolean] default = True + ! If true use the bottom depth instead of the total water column thickness in + ! the barotropic Coriolis term calculations. +BEBT = 0.2 ! [nondim] default = 0.1 + ! BEBT determines whether the barotropic time stepping uses the forward-backward + ! time-stepping scheme or a backward Euler scheme. BEBT is valid in the range + ! from 0 (for a forward-backward treatment of nonrotating gravity waves) to 1 + ! (for a backward Euler treatment). In practice, BEBT must be greater than about + ! 0.05. +DTBT = -0.9 ! [s or nondim] default = -0.98 + ! The barotropic time step, in s. DTBT is only used with the split explicit time + ! stepping. To set the time step automatically based the maximum stable value + ! use 0, or a negative value gives the fraction of the stable value. Setting + ! DTBT to 0 is the same as setting it to -0.98. The value of DTBT that will + ! actually be used is an integer fraction of DT, rounding down. +BT_USE_OLD_CORIOLIS_BRACKET_BUG = False ! [Boolean] default = False + ! If True, use an order of operations that is not bitwise rotationally symmetric + ! in the meridional Coriolis term of the barotropic solver. + +! === module MOM_mixed_layer_restrat === +MIXEDLAYER_RESTRAT = True ! [Boolean] default = False + ! If true, a density-gradient dependent re-stratifying flow is imposed in the + ! mixed layer. Can be used in ALE mode without restriction but in layer mode can + ! only be used if BULKMIXEDLAYER is true. +MLE% +USE_BODNER23 = False ! [Boolean] default = False + ! If true, use the Bodner et al., 2023, formulation of the re-stratifying + ! mixed-layer restratification parameterization. This only works in ALE mode. +%MLE +FOX_KEMPER_ML_RESTRAT_COEF = 1.0 ! [nondim] default = 0.0 + ! A nondimensional coefficient that is proportional to the ratio of the + ! deformation radius to the dominant lengthscale of the submesoscale mixed layer + ! instabilities, times the minimum of the ratio of the mesoscale eddy kinetic + ! energy to the large-scale geostrophic kinetic energy or 1 plus the square of + ! the grid spacing over the deformation radius, as detailed by Fox-Kemper et al. + ! (2010) +USE_STANLEY_ML = False ! [Boolean] default = False + ! If true, turn on Stanley SGS T variance parameterization in ML restrat code. +FOX_KEMPER_ML_RESTRAT_COEF2 = 0.0 ! [nondim] default = 0.0 + ! As for FOX_KEMPER_ML_RESTRAT_COEF but used in a second application of the MLE + ! restratification parameterization. +MLE_FRONT_LENGTH = 500.0 ! [m] default = 0.0 + ! If non-zero, is the frontal-length scale used to calculate the upscaling of + ! buoyancy gradients that is otherwise represented by the parameter + ! FOX_KEMPER_ML_RESTRAT_COEF. If MLE_FRONT_LENGTH is non-zero, it is recommended + ! to set FOX_KEMPER_ML_RESTRAT_COEF=1.0. +MLE_USE_PBL_MLD = True ! [Boolean] default = False + ! If true, the MLE parameterization will use the mixed-layer depth provided by + ! the active PBL parameterization. If false, MLE will estimate a MLD based on a + ! density difference with the surface using the parameter MLE_DENSITY_DIFF. +MLE_MLD_DECAY_TIME = 2.592E+06 ! [s] default = 0.0 + ! The time-scale for a running-mean filter applied to the mixed-layer depth used + ! in the MLE restratification parameterization. When the MLD deepens below the + ! current running-mean the running-mean is instantaneously set to the current + ! MLD. +MLE_MLD_DECAY_TIME2 = 0.0 ! [s] default = 0.0 + ! The time-scale for a running-mean filter applied to the filtered mixed-layer + ! depth used in a second MLE restratification parameterization. When the MLD + ! deepens below the current running-mean the running-mean is instantaneously set + ! to the current MLD. +MLE_TAIL_DH = 0.0 ! [nondim] default = 0.0 + ! Fraction by which to extend the mixed-layer restratification depth used for a + ! smoother stream function at the base of the mixed-layer. +MLE_MLD_STRETCH = 1.0 ! [nondim] default = 1.0 + ! A scaling coefficient for stretching/shrinking the MLD used in the MLE scheme. + ! This simply multiplies MLD wherever used. +KV_RESTRAT = 0.0 ! [m2 s-1] default = 0.0 + ! A small viscosity that sets a floor on the momentum mixing rate during + ! restratification. If this is positive, it will prevent some possible + ! divisions by zero even if ustar, RESTRAT_USTAR_MIN, and f are all 0. +RESTRAT_USTAR_MIN = 1.45842E-18 ! [m s-1] default = 1.45842E-18 + ! The minimum value of ustar that will be used by the mixed layer + ! restratification module. This can be tiny, but if this is greater than 0, it + ! will prevent divisions by zero when f and KV_RESTRAT are zero. + +! === module MOM_diagnostics === +DIAG_EBT_MONO_N2_COLUMN_FRACTION = 0.0 ! [nondim] default = 0.0 + ! The lower fraction of water column over which N2 is limited as monotonic for + ! the purposes of calculating the equivalent barotropic wave speed. +DIAG_EBT_MONO_N2_DEPTH = -1.0 ! [m] default = -1.0 + ! The depth below which N2 is limited as monotonic for the purposes of + ! calculating the equivalent barotropic wave speed. + +! === module MOM_diabatic_driver === +! The following parameters are used for diabatic processes. +USE_LEGACY_DIABATIC_DRIVER = True ! [Boolean] default = True + ! If true, use a legacy version of the diabatic subroutine. This is temporary + ! and is needed to avoid change in answers. +ENERGETICS_SFC_PBL = True ! [Boolean] default = False + ! If true, use an implied energetics planetary boundary layer scheme to + ! determine the diffusivity and viscosity in the surface boundary layer. +EPBL_IS_ADDITIVE = False ! [Boolean] default = True + ! If true, the diffusivity from ePBL is added to all other diffusivities. + ! Otherwise, the larger of kappa-shear and ePBL diffusivities are used. +PRANDTL_EPBL = 1.0 ! [nondim] default = 1.0 + ! The Prandtl number used by ePBL to convert vertical diffusivities into + ! viscosities. +INTERNAL_TIDES = False ! [Boolean] default = False + ! If true, use the code that advances a separate set of equations for the + ! internal tide energy density. +MASSLESS_MATCH_TARGETS = True ! [Boolean] default = True + ! If true, the temperature and salinity of massless layers are kept consistent + ! with their target densities. Otherwise the properties of massless layers + ! evolve diffusively to match massive neighboring layers. +AGGREGATE_FW_FORCING = True ! [Boolean] default = True + ! If true, the net incoming and outgoing fresh water fluxes are combined and + ! applied as either incoming or outgoing depending on the sign of the net. If + ! false, the net incoming fresh water flux is added to the model and thereafter + ! the net outgoing is removed from the topmost non-vanished layers of the + ! updated state. +MIX_BOUNDARY_TRACERS = True ! [Boolean] default = True + ! If true, mix the passive tracers in massless layers at the bottom into the + ! interior as though a diffusivity of KD_MIN_TR were operating. +MIX_BOUNDARY_TRACER_ALE = False ! [Boolean] default = False + ! If true and in ALE mode, mix the passive tracers in massless layers at the + ! bottom into the interior as though a diffusivity of KD_MIN_TR were operating. +KD_MIN_TR = 1.5E-06 ! [m2 s-1] default = 1.5E-06 + ! A minimal diffusivity that should always be applied to tracers, especially in + ! massless layers near the bottom. The default is 0.1*KD. +KD_BBL_TR = 0.0 ! [m2 s-1] default = 0.0 + ! A bottom boundary layer tracer diffusivity that will allow for explicitly + ! specified bottom fluxes. The entrainment at the bottom is at least + ! sqrt(Kd_BBL_tr*dt) over the same distance. +TRACER_TRIDIAG = False ! [Boolean] default = False + ! If true, use the passive tracer tridiagonal solver for T and S +MINIMUM_FORCING_DEPTH = 0.001 ! [m] default = 0.001 + ! The smallest depth over which forcing can be applied. This only takes effect + ! when near-surface layers become thin relative to this scale, in which case the + ! forcing tendencies scaled down by distributing the forcing over this depth + ! scale. +EVAP_CFL_LIMIT = 0.8 ! [nondim] default = 0.8 + ! The largest fraction of a layer than can be lost to forcing (e.g. evaporation, + ! sea-ice formation) in one time-step. The unused mass loss is passed down + ! through the column. +MLD_EN_VALS = 3*0.0 ! [J/m2] default = 0.0 + ! The energy values used to compute MLDs. If not set (or all set to 0.), the + ! default will overwrite to 25., 2500., 250000. +DIAG_MLD_DENSITY_DIFF = 0.1 ! [kg/m3] default = 0.1 + ! The density difference used to determine a diagnostic mixed layer depth, + ! MLD_user, following the definition of Levitus 1982. The MLD is the depth at + ! which the density is larger than the surface density by the specified amount. +DIAG_DEPTH_SUBML_N2 = 50.0 ! [m] default = 50.0 + ! The distance over which to calculate a diagnostic of the stratification at the + ! base of the mixed layer. + +! === module MOM_CVMix_KPP === +! This is the MOM wrapper to CVMix:KPP +! See http://cvmix.github.io/ +USE_KPP = False ! [Boolean] default = False + ! If true, turns on the [CVMix] KPP scheme of Large et al., 1994, to calculate + ! diffusivities and non-local transport in the OBL. + +! === module MOM_CVMix_conv === +! Parameterization of enhanced mixing due to convection via CVMix +USE_CVMix_CONVECTION = False ! [Boolean] default = False + ! If true, turns on the enhanced mixing due to convection via CVMix. This scheme + ! increases diapycnal diffs./viscs. at statically unstable interfaces. Relevant + ! parameters are contained in the CVMix_CONVECTION% parameter block. + +! === module MOM_geothermal === +GEOTHERMAL_SCALE = 1.0 ! [W m-2 or various] default = 0.0 + ! The constant geothermal heat flux, a rescaling factor for the heat flux read + ! from GEOTHERMAL_FILE, or 0 to disable the geothermal heating. +GEOTHERMAL_FILE = "geothermal_davies2013_v1_newtopo_config.nc" ! default = "" + ! The file from which the geothermal heating is to be read, or blank to use a + ! constant heating rate. +GEOTHERMAL_THICKNESS = 0.1 ! [m] default = 0.1 + ! The thickness over which to apply geothermal heating. +GEOTHERMAL_VARNAME = "geothermal_hf" ! default = "geo_heat" + ! The name of the geothermal heating variable in GEOTHERMAL_FILE. + +! === module MOM_set_diffusivity === +FLUX_RI_MAX = 0.2 ! [nondim] default = 0.2 + ! The flux Richardson number where the stratification is large enough that N2 > + ! omega2. The full expression for the Flux Richardson number is usually + ! FLUX_RI_MAX*N2/(N2+OMEGA2). +SET_DIFF_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use updated and more robust forms of the + ! same expressions. +SET_DIFF_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the set diffusivity + ! 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. + ! If both SET_DIFF_2018_ANSWERS and SET_DIFF_ANSWER_DATE are specified, the + ! latter takes precedence. + +! === module MOM_tidal_mixing === +! Vertical Tidal Mixing Parameterization +USE_CVMix_TIDAL = False ! [Boolean] default = False + ! If true, turns on tidal mixing via CVMix +INT_TIDE_DISSIPATION = True ! [Boolean] default = False + ! If true, use an internal tidal dissipation scheme to drive diapycnal mixing, + ! along the lines of St. Laurent et al. (2002) and Simmons et al. (2004). +TIDAL_MIXING_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use updated and more robust forms of the + ! same expressions. +TIDAL_MIXING_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the tidal mixing + ! 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. + ! If both TIDAL_MIXING_2018_ANSWERS and TIDAL_MIXING_ANSWER_DATE are specified, + ! the latter takes precedence. +INT_TIDE_PROFILE = "POLZIN_09" ! default = "STLAURENT_02" + ! INT_TIDE_PROFILE selects the vertical profile of energy dissipation with + ! INT_TIDE_DISSIPATION. Valid values are: + ! STLAURENT_02 - Use the St. Laurent et al exponential + ! decay profile. + ! POLZIN_09 - Use the Polzin WKB-stretched algebraic + ! decay profile. +LEE_WAVE_DISSIPATION = False ! [Boolean] default = False + ! If true, use an lee wave driven dissipation scheme to drive diapycnal mixing, + ! along the lines of Nikurashin (2010) and using the St. Laurent et al. (2002) + ! and Simmons et al. (2004) vertical profile +INT_TIDE_LOWMODE_DISSIPATION = False ! [Boolean] default = False + ! If true, consider mixing due to breaking low modes that have been remotely + ! generated; as with itidal drag on the barotropic tide, use an internal tidal + ! dissipation scheme to drive diapycnal mixing, along the lines of St. Laurent + ! et al. (2002) and Simmons et al. (2004). +NU_POLZIN = 0.0697 ! [nondim] default = 0.0697 + ! When the Polzin decay profile is used, this is a non-dimensional constant in + ! the expression for the vertical scale of decay for the tidal energy + ! dissipation. +NBOTREF_POLZIN = 9.61E-04 ! [s-1] default = 9.61E-04 + ! When the Polzin decay profile is used, this is the reference value of the + ! buoyancy frequency at the ocean bottom in the Polzin formulation for the + ! vertical scale of decay for the tidal energy dissipation. +POLZIN_DECAY_SCALE_FACTOR = 1.0 ! [nondim] default = 1.0 + ! When the Polzin decay profile is used, this is a scale factor for the vertical + ! scale of decay of the tidal energy dissipation. +POLZIN_SCALE_MAX_FACTOR = 1.0 ! [nondim] default = 1.0 + ! When the Polzin decay profile is used, this is a factor to limit the vertical + ! scale of decay of the tidal energy dissipation to + ! POLZIN_DECAY_SCALE_MAX_FACTOR times the depth of the ocean. +POLZIN_MIN_DECAY_SCALE = 0.0 ! [m] default = 0.0 + ! When the Polzin decay profile is used, this is the minimum vertical decay + ! scale for the vertical profile + ! of internal tide dissipation with the Polzin (2009) formulation +INT_TIDE_DECAY_SCALE = 300.3003003003003 ! [m] default = 500.0 + ! The decay scale away from the bottom for tidal TKE with the new coding when + ! INT_TIDE_DISSIPATION is used. +MU_ITIDES = 0.2 ! [nondim] default = 0.2 + ! A dimensionless turbulent mixing efficiency used with INT_TIDE_DISSIPATION, + ! often 0.2. +GAMMA_ITIDES = 0.3333 ! [nondim] default = 0.3333 + ! The fraction of the internal tidal energy that is dissipated locally with + ! INT_TIDE_DISSIPATION. THIS NAME COULD BE BETTER. +MIN_ZBOT_ITIDES = 0.0 ! [m] default = 0.0 + ! Turn off internal tidal dissipation when the total ocean depth is less than + ! this value. +KAPPA_ITIDES = 6.28319E-04 ! [m-1] default = 6.283185307179586E-04 + ! A topographic wavenumber used with INT_TIDE_DISSIPATION. The default is 2pi/10 + ! km, as in St.Laurent et al. 2002. +UTIDE = 0.0 ! [m s-1] default = 0.0 + ! The constant tidal amplitude used with INT_TIDE_DISSIPATION. +KAPPA_H2_FACTOR = 0.84 ! [nondim] default = 1.0 + ! A scaling factor for the roughness amplitude with INT_TIDE_DISSIPATION. +TKE_ITIDE_MAX = 0.1 ! [W m-2] default = 1000.0 + ! The maximum internal tide energy source available to mix above the bottom + ! boundary layer with INT_TIDE_DISSIPATION. +READ_TIDEAMP = True ! [Boolean] default = False + ! If true, read a file (given by TIDEAMP_FILE) containing the tidal amplitude + ! with INT_TIDE_DISSIPATION. +TIDEAMP_FILE = "tidal_amplitude.v20140616.nc_newtopo_config.nc" ! default = "tideamp.nc" + ! The path to the file containing the spatially varying tidal amplitudes with + ! INT_TIDE_DISSIPATION. +TIDEAMP_VARNAME = "tideamp" ! default = "tideamp" + ! The name of the tidal amplitude variable in the input file. +H2_FILE = "ocean_topog.nc" ! + ! The path to the file containing the sub-grid-scale topographic roughness + ! amplitude with INT_TIDE_DISSIPATION. +ROUGHNESS_VARNAME = "h2" ! default = "h2" + ! The name in the input file of the squared sub-grid-scale topographic roughness + ! amplitude variable. +FRACTIONAL_ROUGHNESS_MAX = 0.1 ! [nondim] default = 0.1 + ! The maximum topographic roughness amplitude as a fraction of the mean depth, + ! or a negative value for no limitations on roughness. +ML_RADIATION = False ! [Boolean] default = False + ! If true, allow a fraction of TKE available from wind work to penetrate below + ! the base of the mixed layer with a vertical decay scale determined by the + ! minimum of: (1) The depth of the mixed layer, (2) an Ekman length scale. +BBL_EFFIC = 0.01 ! [nondim] default = 0.2 + ! The efficiency with which the energy extracted by bottom drag drives BBL + ! diffusion. This is only used if BOTTOMDRAGLAW is true. +BBL_MIXING_MAX_DECAY = 200.0 ! [m] default = 200.0 + ! The maximum decay scale for the BBL diffusion, or 0 to allow the mixing to + ! penetrate as far as stratification and rotation permit. The default for now + ! is 200 m. This is only used if BOTTOMDRAGLAW is true. +BBL_MIXING_AS_MAX = False ! [Boolean] default = True + ! If true, take the maximum of the diffusivity from the BBL mixing and the other + ! diffusivities. Otherwise, diffusivity from the BBL_mixing is simply added. +USE_LOTW_BBL_DIFFUSIVITY = True ! [Boolean] default = False + ! If true, uses a simple, imprecise but non-coordinate dependent, model of BBL + ! mixing diffusivity based on Law of the Wall. Otherwise, uses the original BBL + ! scheme. +LOTW_BBL_USE_OMEGA = True ! [Boolean] default = True + ! If true, use the maximum of Omega and N for the TKE to diffusion calculation. + ! Otherwise, N is N. +VON_KARMAN_BBL = 0.41 ! [nondim] default = 0.41 + ! The value the von Karman constant as used in calculating the BBL diffusivity. +SIMPLE_TKE_TO_KD = True ! [Boolean] default = False + ! If true, uses a simple estimate of Kd/TKE that will work for arbitrary + ! vertical coordinates. If false, calculates Kd/TKE and bounds based on exact + ! energetics for an isopycnal layer-formulation. + +! === module MOM_bkgnd_mixing === +! Adding static vertical background mixing coefficients +KD = 1.5E-05 ! [m2 s-1] default = 0.0 + ! The background diapycnal diffusivity of density in the interior. Zero or the + ! molecular value, ~1e-7 m2 s-1, may be used. +KD_MIN = 2.0E-06 ! [m2 s-1] default = 1.5E-07 + ! The minimum diapycnal diffusivity. +BRYAN_LEWIS_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, use a Bryan & Lewis (JGR 1979) like tanh profile of background + ! diapycnal diffusivity with depth. This is done via CVMix. +HORIZ_VARYING_BACKGROUND = False ! [Boolean] default = False + ! If true, apply vertically uniform, latitude-dependent background diffusivity, + ! as described in Danabasoglu et al., 2012 +PRANDTL_BKGND = 1.0 ! [nondim] default = 1.0 + ! Turbulent Prandtl number used to convert vertical background diffusivities + ! into viscosities. +HENYEY_IGW_BACKGROUND = True ! [Boolean] default = False + ! If true, use a latitude-dependent scaling for the near surface background + ! diffusivity, as described in Harrison & Hallberg, JPO 2008. +HENYEY_N0_2OMEGA = 20.0 ! [nondim] default = 20.0 + ! The ratio of the typical Buoyancy frequency to twice the Earth's rotation + ! period, used with the Henyey scaling from the mixing. +KD_TANH_LAT_FN = False ! [Boolean] default = False + ! If true, use a tanh dependence of Kd_sfc on latitude, like CM2.1/CM2M. There + ! is no physical justification for this form, and it can not be used with + ! HENYEY_IGW_BACKGROUND. +KD_MAX = 0.1 ! [m2 s-1] default = -1.0 + ! The maximum permitted increment for the diapycnal diffusivity from TKE-based + ! parameterizations, or a negative value for no limit. +KD_ADD = 0.0 ! [m2 s-1] default = 0.0 + ! A uniform diapycnal diffusivity that is added everywhere without any filtering + ! or scaling. +USER_CHANGE_DIFFUSIVITY = False ! [Boolean] default = False + ! If true, call user-defined code to change the diffusivity. +DISSIPATION_MIN = 0.0 ! [W m-3] default = 0.0 + ! The minimum dissipation by which to determine a lower bound of Kd (a floor). +DISSIPATION_N0 = 0.0 ! [W m-3] default = 0.0 + ! The intercept when N=0 of the N-dependent expression used to set a minimum + ! dissipation by which to determine a lower bound of Kd (a floor): A in eps_min + ! = A + B*N. +DISSIPATION_N1 = 0.0 ! [J m-3] default = 0.0 + ! The coefficient multiplying N, following Gargett, used to set a minimum + ! dissipation by which to determine a lower bound of Kd (a floor): B in eps_min + ! = A + B*N +DISSIPATION_KD_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum vertical diffusivity applied as a floor. +DOUBLE_DIFFUSION = False ! [Boolean] default = False + ! If true, increase diffusivites for temperature or salinity based on the + ! double-diffusive parameterization described in Large et al. (1994). + +! === module MOM_kappa_shear === +! Parameterization of shear-driven turbulence following Jackson, Hallberg and Legg, JPO 2008 +USE_JACKSON_PARAM = True ! [Boolean] default = False + ! If true, use the Jackson-Hallberg-Legg (JPO 2008) shear mixing + ! parameterization. +VERTEX_SHEAR = True ! [Boolean] default = False + ! If true, do the calculations of the shear-driven mixing at the cell vertices + ! (i.e., the vorticity points). +RINO_CRIT = 0.25 ! [nondim] default = 0.25 + ! The critical Richardson number for shear mixing. +SHEARMIX_RATE = 0.089 ! [nondim] default = 0.089 + ! A nondimensional rate scale for shear-driven entrainment. Jackson et al find + ! values in the range of 0.085-0.089. +MAX_RINO_IT = 25 ! [nondim] default = 50 + ! The maximum number of iterations that may be used to estimate the Richardson + ! number driven mixing. +KD_KAPPA_SHEAR_0 = 1.5E-05 ! [m2 s-1] default = 1.5E-05 + ! The background diffusivity that is used to smooth the density and shear + ! profiles before solving for the diffusivities. The default is the greater of + ! KD and 1e-7 m2 s-1. +KD_SEED_KAPPA_SHEAR = 1.0 ! [m2 s-1] default = 1.0 + ! A moderately large seed value of diapycnal diffusivity that is used as a + ! starting turbulent diffusivity in the iterations to find an energetically + ! constrained solution for the shear-driven diffusivity. +KD_TRUNC_KAPPA_SHEAR = 1.5E-07 ! [m2 s-1] default = 1.5E-07 + ! The value of shear-driven diffusivity that is considered negligible and is + ! rounded down to 0. The default is 1% of KD_KAPPA_SHEAR_0. +FRI_CURVATURE = -0.97 ! [nondim] default = -0.97 + ! The nondimensional curvature of the function of the Richardson number in the + ! kappa source term in the Jackson et al. scheme. +TKE_N_DECAY_CONST = 0.24 ! [nondim] default = 0.24 + ! The coefficient for the decay of TKE due to stratification (i.e. proportional + ! to N*tke). The values found by Jackson et al. are 0.24-0.28. +TKE_SHEAR_DECAY_CONST = 0.14 ! [nondim] default = 0.14 + ! The coefficient for the decay of TKE due to shear (i.e. proportional to + ! |S|*tke). The values found by Jackson et al. are 0.14-0.12. +KAPPA_BUOY_SCALE_COEF = 0.82 ! [nondim] default = 0.82 + ! The coefficient for the buoyancy length scale in the kappa equation. The + ! values found by Jackson et al. are in the range of 0.81-0.86. +KAPPA_N_OVER_S_SCALE_COEF2 = 0.0 ! [nondim] default = 0.0 + ! The square of the ratio of the coefficients of the buoyancy and shear scales + ! in the diffusivity equation, Set this to 0 (the default) to eliminate the + ! shear scale. This is only used if USE_JACKSON_PARAM is true. +KAPPA_SHEAR_TOL_ERR = 0.1 ! [nondim] default = 0.1 + ! The fractional error in kappa that is tolerated. Iteration stops when changes + ! between subsequent iterations are smaller than this everywhere in a column. + ! The peak diffusivities usually converge most rapidly, and have much smaller + ! errors than this. +TKE_BACKGROUND = 0.0 ! [m2 s-2] default = 0.0 + ! A background level of TKE used in the first iteration of the kappa equation. + ! TKE_BACKGROUND could be 0. +KAPPA_SHEAR_ELIM_MASSLESS = True ! [Boolean] default = True + ! If true, massless layers are merged with neighboring massive layers in this + ! calculation. The default is true and I can think of no good reason why it + ! should be false. This is only used if USE_JACKSON_PARAM is true. +MAX_KAPPA_SHEAR_IT = 13 ! default = 13 + ! The maximum number of iterations that may be used to estimate the + ! time-averaged diffusivity. +KAPPA_SHEAR_MAX_KAP_SRC_CHG = 10.0 ! [nondim] default = 10.0 + ! The maximum permitted increase in the kappa source within an iteration + ! relative to the local source; this must be greater than 1. The lower limit + ! for the permitted fractional decrease is (1 - 0.5/kappa_src_max_chg). These + ! limits could perhaps be made dynamic with an improved iterative solver. +KAPPA_SHEAR_VERTEX_PSURF_BUG = False ! [Boolean] default = False + ! If true, do a simple average of the cell surface pressures to get a pressure + ! at the corner if VERTEX_SHEAR=True. Otherwise mask out any land points in the + ! average. +KAPPA_SHEAR_ITER_BUG = False ! [Boolean] default = False + ! If true, use an older, dimensionally inconsistent estimate of the derivative + ! of diffusivity with energy in the Newton's method iteration. The bug causes + ! undercorrections when dz > 1 m. +KAPPA_SHEAR_ALL_LAYER_TKE_BUG = False ! [Boolean] default = False + ! If true, report back the latest estimate of TKE instead of the time average + ! TKE when there is mass in all layers. Otherwise always report the time + ! averaged TKE, as is currently done when there are some massless layers. +USE_RESTRICTIVE_TOLERANCE_CHECK = False ! [Boolean] default = False + ! If true, uses the more restrictive tolerance check to determine if a timestep + ! is acceptable for the KS_it outer iteration loop. False uses the original + ! less restrictive check. + +! === module MOM_CVMix_shear === +! Parameterization of shear-driven turbulence via CVMix (various options) +USE_LMD94 = False ! [Boolean] default = False + ! If true, use the Large-McWilliams-Doney (JGR 1994) shear mixing + ! parameterization. +USE_PP81 = False ! [Boolean] default = False + ! If true, use the Pacanowski and Philander (JPO 1981) shear mixing + ! parameterization. + +! === module MOM_CVMix_ddiff === +! Parameterization of mixing due to double diffusion processes via CVMix +USE_CVMIX_DDIFF = False ! [Boolean] default = False + ! If true, turns on double diffusive processes via CVMix. Note that double + ! diffusive processes on viscosity are ignored in CVMix, see + ! http://cvmix.github.io/ for justification. + +! === module MOM_diabatic_aux === +! The following parameters are used for auxiliary diabatic processes. +RECLAIM_FRAZIL = True ! [Boolean] default = True + ! If true, try to use any frazil heat deficit to cool any overlying layers down + ! to the freezing point, thereby avoiding the creation of thin ice when the SST + ! is above the freezing point. +SALT_EXTRACTION_LIMIT = 0.9999 ! [nondim] default = 0.9999 + ! An upper limit on the fraction of the salt in a layer that can be lost to the + ! net surface salt fluxes within a timestep. +PRESSURE_DEPENDENT_FRAZIL = False ! [Boolean] default = False + ! If true, use a pressure dependent freezing temperature when making frazil. The + ! default is false, which will be faster but is inappropriate with ice-shelf + ! cavities. +IGNORE_FLUXES_OVER_LAND = False ! [Boolean] default = False + ! If true, the model does not check if fluxes are being applied over land + ! points. This is needed when the ocean is coupled with ice shelves and sea ice, + ! since the sea ice mask needs to be different than the ocean mask to avoid sea + ! ice formation under ice shelves. This flag only works when use_ePBL = True. +DO_RIVERMIX = False ! [Boolean] default = False + ! If true, apply additional mixing wherever there is runoff, so that it is mixed + ! down to RIVERMIX_DEPTH if the ocean is that deep. +USE_RIVER_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%runoff_Hflx field to set the heat carried by runoff, + ! instead of using SST*CP*liq_runoff. +USE_CALVING_HEAT_CONTENT = False ! [Boolean] default = False + ! If true, use the fluxes%calving_Hflx field to set the heat carried by runoff, + ! instead of using SST*CP*froz_runoff. +VAR_PEN_SW = True ! [Boolean] default = False + ! If true, use one of the CHL_A schemes specified by OPACITY_SCHEME to determine + ! the e-folding depth of incoming short wave radiation. +CHL_FROM_FILE = True ! [Boolean] default = True + ! If true, chl_a is read from a file. +CHL_FILE = "seawifs-clim-1997-2010.1440x1080.v20180328_newtopo_config.nc" ! + ! CHL_FILE is the file containing chl_a concentrations in the variable CHL_A. It + ! is used when VAR_PEN_SW and CHL_FROM_FILE are true. +CHL_VARNAME = "chlor_a" ! default = "CHL_A" + ! Name of CHL_A variable in CHL_FILE. + +! === module MOM_energetic_PBL === +ML_OMEGA_FRAC = 0.001 ! [nondim] default = 0.0 + ! When setting the decay scale for turbulence, use this fraction of the absolute + ! rotation rate blended with the local value of f, as sqrt((1-of)*f^2 + + ! of*4*omega^2). +EKMAN_SCALE_COEF = 1.0 ! [nondim] default = 1.0 + ! A nondimensional scaling factor controlling the inhibition of the diffusive + ! length scale by rotation. Making this larger decreases the PBL diffusivity. +EPBL_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use updated and more robust forms of the + ! same expressions. +EPBL_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the energetic PBL + ! 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. + ! If both EPBL_2018_ANSWERS and EPBL_ANSWER_DATE are specified, the latter takes + ! precedence. +EPBL_ORIGINAL_PE_CALC = True ! [Boolean] default = True + ! If true, the ePBL code uses the original form of the potential energy change + ! code. Otherwise, the newer version that can work with successive increments + ! to the diffusivity in upward or downward passes is used. +MKE_TO_TKE_EFFIC = 0.0 ! [nondim] default = 0.0 + ! The efficiency with which mean kinetic energy released by mechanically forced + ! entrainment of the mixed layer is converted to turbulent kinetic energy. +TKE_DECAY = 0.01 ! [nondim] default = 2.5 + ! TKE_DECAY relates the vertical rate of decay of the TKE available for + ! mechanical entrainment to the natural Ekman depth. +EPBL_MSTAR_SCHEME = "REICHL_H18" ! default = "CONSTANT" + ! EPBL_MSTAR_SCHEME selects the method for setting mstar. Valid values are: + ! CONSTANT - Use a fixed mstar given by MSTAR + ! OM4 - Use L_Ekman/L_Obukhov in the stabilizing limit, as in OM4 + ! REICHL_H18 - Use the scheme documented in Reichl & Hallberg, 2018. +MSTAR_CAP = 10.0 ! [nondim] default = -1.0 + ! If this value is positive, it sets the maximum value of mstar allowed in ePBL. + ! (This is not used if EPBL_MSTAR_SCHEME = CONSTANT). +RH18_MSTAR_CN1 = 0.275 ! [nondim] default = 0.275 + ! MSTAR_N coefficient 1 (outter-most coefficient for fit). The value of 0.275 is + ! given in RH18. Increasing this coefficient increases MSTAR for all values of + ! Hf/ust, but more effectively at low values (weakly developed OSBLs). +RH18_MSTAR_CN2 = 8.0 ! [nondim] default = 8.0 + ! MSTAR_N coefficient 2 (coefficient outside of exponential decay). The value of + ! 8.0 is given in RH18. Increasing this coefficient increases MSTAR for all + ! values of HF/ust, with a much more even effect across a wide range of Hf/ust + ! than CN1. +RH18_MSTAR_CN3 = -5.0 ! [nondim] default = -5.0 + ! MSTAR_N coefficient 3 (exponential decay coefficient). The value of -5.0 is + ! given in RH18. Increasing this increases how quickly the value of MSTAR + ! decreases as Hf/ust increases. +RH18_MSTAR_CS1 = 0.2 ! [nondim] default = 0.2 + ! MSTAR_S coefficient for RH18 in stabilizing limit. The value of 0.2 is given + ! in RH18 and increasing it increases MSTAR in the presence of a stabilizing + ! surface buoyancy flux. +RH18_MSTAR_CS2 = 0.4 ! [nondim] default = 0.4 + ! MSTAR_S exponent for RH18 in stabilizing limit. The value of 0.4 is given in + ! RH18 and increasing it increases MSTAR exponentially in the presence of a + ! stabilizing surface buoyancy flux. +NSTAR = 0.06 ! [nondim] default = 0.2 + ! The portion of the buoyant potential energy imparted by surface fluxes that is + ! available to drive entrainment at the base of mixed layer when that energy is + ! positive. +MSTAR_CONV_ADJ = 0.667 ! [nondim] default = 0.0 + ! Coefficient used for reducing mstar during convection due to reduction of + ! stable density gradient. +USE_MLD_ITERATION = True ! [Boolean] default = True + ! A logical that specifies whether or not to use the distance to the bottom of + ! the actively turbulent boundary layer to help set the EPBL length scale. +EPBL_TRANSITION_SCALE = 0.01 ! [nondim] default = 0.1 + ! A scale for the mixing length in the transition layer at the edge of the + ! boundary layer as a fraction of the boundary layer thickness. +MLD_ITERATION_GUESS = False ! [Boolean] default = False + ! If true, use the previous timestep MLD as a first guess in the MLD iteration, + ! otherwise use half the ocean depth as the first guess of the boundary layer + ! depth. The default is false to facilitate reproducibility. +EPBL_MLD_TOLERANCE = 1.0 ! [meter] default = 1.0 + ! The tolerance for the iteratively determined mixed layer depth. This is only + ! used with USE_MLD_ITERATION. +EPBL_MLD_BISECTION = False ! [Boolean] default = False + ! If true, use bisection with the iterative determination of the self-consistent + ! mixed layer depth. Otherwise use the false position after a maximum and + ! minimum bound have been evaluated and the returned value or bisection before + ! this. +EPBL_MLD_MAX_ITS = 20 ! default = 20 + ! The maximum number of iterations that can be used to find a self-consistent + ! mixed layer depth. If EPBL_MLD_BISECTION is true, the maximum number + ! iteractions needed is set by Depth/2^MAX_ITS < EPBL_MLD_TOLERANCE. +EPBL_MIN_MIX_LEN = 0.0 ! [meter] default = 0.0 + ! The minimum mixing length scale that will be used by ePBL. The default (0) + ! does not set a minimum. +MIX_LEN_EXPONENT = 1.0 ! [nondim] default = 2.0 + ! The exponent applied to the ratio of the distance to the MLD and the MLD depth + ! which determines the shape of the mixing length. This is only used if + ! USE_MLD_ITERATION is True. +EPBL_VEL_SCALE_SCHEME = "CUBE_ROOT_TKE" ! default = "CUBE_ROOT_TKE" + ! Selects the method for translating TKE into turbulent velocities. Valid values + ! are: + ! CUBE_ROOT_TKE - A constant times the cube root of remaining TKE. + ! REICHL_H18 - Use the scheme based on a combination of w* and v* as + ! documented in Reichl & Hallberg, 2018. +WSTAR_USTAR_COEF = 1.0 ! [nondim] default = 1.0 + ! A ratio relating the efficiency with which convectively released energy is + ! converted to a turbulent velocity, relative to mechanically forced TKE. Making + ! this larger increases the BL diffusivity +EPBL_VEL_SCALE_FACTOR = 1.0 ! [nondim] default = 1.0 + ! An overall nondimensional scaling factor for wT. Making this larger increases + ! the PBL diffusivity. +VSTAR_SURF_FAC = 1.2 ! [nondim] default = 1.2 + ! The proportionality times ustar to set vstar at the surface. +USE_LA_LI2016 = True ! [Boolean] default = False + ! A logical to use the Li et al. 2016 (submitted) formula to determine the + ! Langmuir number. +EPBL_LANGMUIR_SCHEME = "ADDITIVE" ! default = "NONE" + ! EPBL_LANGMUIR_SCHEME selects the method for including Langmuir turbulence. + ! Valid values are: + ! NONE - Do not do any extra mixing due to Langmuir turbulence + ! RESCALE - Use a multiplicative rescaling of mstar to account for Langmuir + ! turbulence + ! ADDITIVE - Add a Langmuir turblence contribution to mstar to other + ! contributions +LT_ENHANCE_COEF = 0.044 ! [nondim] default = 0.447 + ! Coefficient for Langmuir enhancement of mstar +LT_ENHANCE_EXP = -1.5 ! [nondim] default = -1.33 + ! Exponent for Langmuir enhancementt of mstar +LT_MOD_LAC1 = 0.0 ! [nondim] default = -0.87 + ! Coefficient for modification of Langmuir number due to MLD approaching Ekman + ! depth. +LT_MOD_LAC2 = 0.0 ! [nondim] default = 0.0 + ! Coefficient for modification of Langmuir number due to MLD approaching stable + ! Obukhov depth. +LT_MOD_LAC3 = 0.0 ! [nondim] default = 0.0 + ! Coefficient for modification of Langmuir number due to MLD approaching + ! unstable Obukhov depth. +LT_MOD_LAC4 = 0.0 ! [nondim] default = 0.95 + ! Coefficient for modification of Langmuir number due to ratio of Ekman to + ! stable Obukhov depth. +LT_MOD_LAC5 = 0.22 ! [nondim] default = 0.95 + ! Coefficient for modification of Langmuir number due to ratio of Ekman to + ! unstable Obukhov depth. +!EPBL_USTAR_MIN = 1.45842E-18 ! [m s-1] + ! The (tiny) minimum friction velocity used within the ePBL code, derived from + ! OMEGA and ANGSTROM. + +! === module MOM_regularize_layers === +REGULARIZE_SURFACE_LAYERS = False ! [Boolean] default = False + ! If defined, vertically restructure the near-surface layers when they have too + ! much lateral variations to allow for sensible lateral barotropic transports. + +! === module MOM_opacity === +OPACITY_SCHEME = "MANIZZA_05" ! default = "MANIZZA_05" + ! This character string specifies how chlorophyll concentrations are translated + ! into opacities. Currently valid options include: + ! MANIZZA_05 - Use Manizza et al., GRL, 2005. + ! MOREL_88 - Use Morel, JGR, 1988. +BLUE_FRAC_SW = 0.5 ! [nondim] default = 0.5 + ! The fraction of the penetrating shortwave radiation that is in the blue band. +PEN_SW_NBANDS = 3 ! default = 1 + ! The number of bands of penetrating shortwave radiation. +OPTICS_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use updated expressions for handling the + ! absorption of small remaining shortwave fluxes. +OPTICS_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the optics + ! 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. + ! If both OPTICS_2018_ANSWERS and OPTICS_ANSWER_DATE are specified, the latter + ! takes precedence. +PEN_SW_FLUX_ABSORB = 2.5E-11 ! [degC m s-1] default = 2.5E-11 + ! A minimum remaining shortwave heating rate that will be simply absorbed in the + ! next sufficiently thick layers for computational efficiency, instead of + ! continuing to penetrate. The default, 2.5e-11 degC m s-1, is about 1e-4 W m-2 + ! or 0.08 degC m century-1, but 0 is also a valid value. +PEN_SW_ABSORB_MINTHICK = 1.0 ! [m] default = 1.0 + ! A thickness that is used to absorb the remaining penetrating shortwave heat + ! flux when it drops below PEN_SW_FLUX_ABSORB. +OPACITY_LAND_VALUE = 10.0 ! [m-1] default = 10.0 + ! The value to use for opacity over land. The default is 10 m-1 - a value for + ! muddy water. + +! === module MOM_tracer_advect === +TRACER_ADVECTION_SCHEME = "PPM:H3" ! default = "PLM" + ! The horizontal transport scheme for tracers: + ! PLM - Piecewise Linear Method + ! PPM:H3 - Piecewise Parabolic Method (Huyhn 3rd order) + ! PPM - Piecewise Parabolic Method (Colella-Woodward) + +! === module MOM_tracer_hor_diff === +KHTR = 0.0 ! [m2 s-1] default = 0.0 + ! The background along-isopycnal tracer diffusivity. +KHTR_USE_EBT_STRUCT = False ! [Boolean] default = False + ! If true, uses the equivalent barotropic structure as the vertical structure of + ! the tracer diffusivity. +KHTR_MIN = 0.0 ! [m2 s-1] default = 0.0 + ! The minimum along-isopycnal tracer diffusivity. +KHTR_MAX = 0.0 ! [m2 s-1] default = 0.0 + ! The maximum along-isopycnal tracer diffusivity. +KHTR_PASSIVITY_COEFF = 0.0 ! [nondim] default = 0.0 + ! The coefficient that scales deformation radius over grid-spacing in passivity, + ! where passivity is the ratio between along isopycnal mixing of tracers to + ! thickness mixing. A non-zero value enables this parameterization. +KHTR_PASSIVITY_MIN = 0.5 ! [nondim] default = 0.5 + ! The minimum passivity which is the ratio between along isopycnal mixing of + ! tracers to thickness mixing. +DIFFUSE_ML_TO_INTERIOR = False ! [Boolean] default = False + ! If true, enable epipycnal mixing between the surface boundary layer and the + ! interior. +CHECK_DIFFUSIVE_CFL = True ! [Boolean] default = False + ! If true, use enough iterations the diffusion to ensure that the diffusive + ! equivalent of the CFL limit is not violated. If false, always use the greater + ! of 1 or MAX_TR_DIFFUSION_CFL iteration. +MAX_TR_DIFFUSION_CFL = -1.0 ! [nondim] default = -1.0 + ! If positive, locally limit the along-isopycnal tracer diffusivity to keep the + ! diffusive CFL locally at or below this value. The number of diffusive + ! iterations is often this value or the next greater integer. +RECALC_NEUTRAL_SURF = False ! [Boolean] default = False + ! If true, then recalculate the neutral surfaces if the + ! diffusive CFL is exceeded. If false, assume that the + ! positions of the surfaces do not change + +! === module MOM_neutral_diffusion === +! This module implements neutral diffusion of tracers +USE_NEUTRAL_DIFFUSION = False ! [Boolean] default = False + ! If true, enables the neutral diffusion module. + +! === module MOM_hor_bnd_diffusion === +! This module implements horizontal diffusion of tracers near boundaries +USE_HORIZONTAL_BOUNDARY_DIFFUSION = False ! [Boolean] default = False + ! If true, enables the horizonal boundary tracer's diffusion module. +OBSOLETE_DIAGNOSTIC_IS_FATAL = True ! [Boolean] default = True + ! If an obsolete diagnostic variable appears in the diag_table, cause a FATAL + ! error rather than issue a WARNING. + +! === module MOM_sum_output === +CALCULATE_APE = True ! [Boolean] default = True + ! If true, calculate the available potential energy of the interfaces. Setting + ! this to false reduces the memory footprint of high-PE-count models + ! dramatically. +WRITE_STOCKS = True ! [Boolean] default = True + ! If true, write the integrated tracer amounts to stdout when the energy files + ! are written. +MAXTRUNC = 100000 ! [truncations save_interval-1] default = 0 + ! The run will be stopped, and the day set to a very large value if the velocity + ! is truncated more than MAXTRUNC times between energy saves. Set MAXTRUNC to 0 + ! to stop if there is any truncation of velocities. +MAX_ENERGY = 0.0 ! [m2 s-2] default = 0.0 + ! The maximum permitted average energy per unit mass; the model will be stopped + ! if there is more energy than this. If zero or negative, this is set to + ! 10*MAXVEL^2. +ENERGYFILE = "ocean.stats" ! default = "ocean.stats" + ! The file to use to write the energies and globally summed diagnostics. +DATE_STAMPED_STDOUT = True ! [Boolean] default = True + ! If true, use dates (not times) in messages to stdout +TIMEUNIT = 8.64E+04 ! [s] default = 8.64E+04 + ! The time unit in seconds a number of input fields +READ_DEPTH_LIST = False ! [Boolean] default = False + ! Read the depth list from a file if it exists or create that file otherwise. +DEPTH_LIST_MIN_INC = 1.0E-10 ! [m] default = 1.0E-10 + ! The minimum increment between the depths of the entries in the depth-list + ! file. +ENERGYSAVEDAYS = 0.25 ! [days] default = 1.0 + ! The interval in units of TIMEUNIT between saves of the energies of the run and + ! other globally summed diagnostics. +ENERGYSAVEDAYS_GEOMETRIC = 0.0 ! [days] default = 0.0 + ! The starting interval in units of TIMEUNIT for the first call to save the + ! energies of the run and other globally summed diagnostics. The interval + ! increases by a factor of 2. after each call to write_energy. + +! === module ocean_stochastics_init === +DO_SPPT = False ! [Boolean] default = False + ! If true, then stochastically perturb the thermodynamic tendemcies of T,S, amd + ! h. Amplitude and correlations are controlled by the nam_stoch namelist in the + ! UFS model only. +PERT_EPBL = False ! [Boolean] default = False + ! If true, then stochastically perturb the kinetic energy production and + ! dissipation terms. Amplitude and correlations are controlled by the nam_stoch + ! namelist in the UFS model only. + +! === module ocean_model_init === +SINGLE_STEPPING_CALL = True ! [Boolean] default = True + ! If true, advance the state of MOM with a single step including both dynamics + ! and thermodynamics. If false, the two phases are advanced with separate + ! calls. +RESTART_CONTROL = 1 ! default = 1 + ! An integer whose bits encode which restart files are written. Add 2 (bit 1) + ! for a time-stamped file, and odd (bit 0) for a non-time-stamped file. A + ! restart file will be saved at the end of the run segment for any non-negative + ! value. +OCEAN_SURFACE_STAGGER = "C" ! default = "C" + ! A case-insensitive character string to indicate the staggering of the surface + ! velocity field that is returned to the coupler. Valid values include 'A', + ! 'B', or 'C'. +ICEBERGS_APPLY_RIGID_BOUNDARY = False ! [Boolean] default = False + ! If true, allows icebergs to change boundary condition felt by ocean + +! === module MOM_surface_forcing === +LATENT_HEAT_FUSION = 3.337E+05 ! [J/kg] default = 3.337E+05 + ! The latent heat of fusion. +LATENT_HEAT_VAPORIZATION = 2.4665E+06 ! [J/kg] default = 2.4665E+06 + ! The latent heat of fusion. +MAX_P_SURF = 0.0 ! [Pa] default = -1.0 + ! The maximum surface pressure that can be exerted by the atmosphere and + ! floating sea-ice or ice shelves. This is needed because the FMS coupling + ! structure does not limit the water that can be frozen out of the ocean and the + ! ice-ocean heat fluxes are treated explicitly. No limit is applied if a + ! negative value is used. +RESTORE_SALINITY = False ! [Boolean] default = False + ! If true, the coupled driver will add a globally-balanced fresh-water flux that + ! drives sea-surface salinity toward specified values. +RESTORE_TEMPERATURE = False ! [Boolean] default = False + ! If true, the coupled driver will add a heat flux that drives sea-surface + ! temperature toward specified values. +ADJUST_NET_SRESTORE_TO_ZERO = False ! [Boolean] default = False + ! If true, adjusts the salinity restoring seen to zero whether restoring is via + ! a salt flux or virtual precip. +ADJUST_NET_SRESTORE_BY_SCALING = False ! [Boolean] default = False + ! If true, adjustments to salt restoring to achieve zero net are made by scaling + ! values without moving the zero contour. +ADJUST_NET_FRESH_WATER_TO_ZERO = False ! [Boolean] default = False + ! If true, adjusts the net fresh-water forcing seen by the ocean (including + ! restoring) to zero. +ADJUST_NET_FRESH_WATER_BY_SCALING = False ! [Boolean] default = False + ! If true, adjustments to net fresh water to achieve zero net are made by + ! scaling values without moving the zero contour. +ICE_SALT_CONCENTRATION = 0.005 ! [kg/kg] default = 0.005 + ! The assumed sea-ice salinity needed to reverse engineer the melt flux (or + ! ice-ocean fresh-water flux). +USE_LIMITED_PATM_SSH = True ! [Boolean] default = True + ! If true, return the sea surface height with the correction for the atmospheric + ! (and sea-ice) pressure limited by max_p_surf instead of the full atmospheric + ! pressure. +APPROX_NET_MASS_SRC = False ! [Boolean] default = False + ! If true, use the net mass sources from the ice-ocean boundary type without any + ! further adjustments to drive the ocean dynamics. The actual net mass source + ! may differ due to internal corrections. +WIND_STAGGER = "AGRID" ! + ! The staggering of the input wind stress field from the coupler that is + ! actually used. +WIND_STRESS_MULTIPLIER = 1.0 ! [nondim] default = 1.0 + ! A factor multiplying the wind-stress given to the ocean by the coupler. This + ! is used for testing and should be =1.0 for any production runs. +CD_TIDES = 0.0018 ! [nondim] default = 1.0E-04 + ! The drag coefficient that applies to the tides. +READ_GUST_2D = False ! [Boolean] default = False + ! If true, use a 2-dimensional gustiness supplied from an input file +GUST_CONST = 0.0 ! [Pa] default = 0.0 + ! The background gustiness in the winds. +SURFACE_FORCING_2018_ANSWERS = False ! [Boolean] default = False + ! If true, use the order of arithmetic and expressions that recover the answers + ! from the end of 2018. Otherwise, use a simpler expression to calculate + ! gustiness. +SURFACE_FORCING_ANSWER_DATE = 99991231 ! default = 99991231 + ! The vintage of the order of arithmetic and expressions in the gustiness + ! calculations. Values below 20190101 recover the answers from the end of 2018, + ! while higher values use a simpler expression to calculate gustiness. If both + ! SURFACE_FORCING_2018_ANSWERS and SURFACE_FORCING_ANSWER_DATE are specified, + ! the latter takes precedence. +FIX_USTAR_GUSTLESS_BUG = True ! [Boolean] default = True + ! If true correct a bug in the time-averaging of the gustless wind friction + ! velocity +USE_RIGID_SEA_ICE = True ! [Boolean] default = False + ! If true, sea-ice is rigid enough to exert a nonhydrostatic pressure that + ! resist vertical motion. +SEA_ICE_MEAN_DENSITY = 900.0 ! [kg m-3] default = 900.0 + ! A typical density of sea ice, used with the kinematic viscosity, when + ! USE_RIGID_SEA_ICE is true. +SEA_ICE_VISCOSITY = 1.0E+09 ! [m2 s-1] default = 1.0E+09 + ! The kinematic viscosity of sufficiently thick sea ice for use in calculating + ! the rigidity of sea ice. +SEA_ICE_RIGID_MASS = 100.0 ! [kg m-2] default = 1000.0 + ! The mass of sea-ice per unit area at which the sea-ice starts to exhibit + ! rigidity +ALLOW_ICEBERG_FLUX_DIAGNOSTICS = False ! [Boolean] default = False + ! If true, makes available diagnostics of fluxes from icebergs as seen by MOM6. +ALLOW_FLUX_ADJUSTMENTS = False ! [Boolean] default = False + ! If true, allows flux adjustments to specified via the data_table using the + ! component name 'OCN'. + +! === module MOM_restart === +USE_WAVES = False ! [Boolean] default = False + ! If true, enables surface wave modules. +WAVE_INTERFACE_ANSWER_DATE = 20221231 ! default = 20221231 + ! The vintage of the order of arithmetic and expressions in the surface wave + ! calculations. Values below 20230101 recover the answers from the end of 2022, + ! while higher values use updated and more robust forms of the same expressions: + ! < 20230101 - Original answers for wave interface routines + ! >= 20230101 - More robust expressions for Update_Stokes_Drift + ! >= 20230102 - More robust expressions for get_StokesSL_LiFoxKemper + ! >= 20230103 - More robust expressions for ust_2_u10_coare3p5 +LA_DEPTH_RATIO = 0.04 ! [nondim] default = 0.04 + ! The depth (normalized by BLD) to average Stokes drift over in Langmuir number + ! calculation, where La = sqrt(ust/Stokes). +LA_DEPTH_MIN = 0.1 ! [m] default = 0.1 + ! The minimum depth over which to average the Stokes drift in the Langmuir + ! number calculation. +VISCOSITY_AIR = 1.0E-06 ! [m2 s-1] default = 1.0E-06 + ! A typical viscosity of air at sea level, as used in wave calculations +VON_KARMAN_WAVES = 0.4 ! [nondim] default = 0.4 + ! The value the von Karman constant as used for surface wave calculations. +RHO_AIR = 1.225 ! [kg m-3] default = 1.225 + ! A typical density of air at sea level, as used in wave calculations +WAVE_HEIGHT_SCALE_FACTOR = 0.0246 ! [s2 m-1] default = 0.0246 + ! A factor relating the square of the 10 m wind speed to the significant wave + ! height, with a default value based on the Pierson-Moskowitz spectrum. +CHARNOCK_MIN = 0.028 ! [nondim] default = 0.028 + ! The minimum value of the Charnock coefficient, which relates the square of the + ! air friction velocity divided by the gravitational acceleration to the wave + ! roughness length. +CHARNOCK_SLOPE_U10 = 0.0017 ! [s m-1] default = 0.0017 + ! The partial derivative of the Charnock coefficient with the 10 m wind speed. + ! Note that in eq. 13 of the Edson et al. 2013 describing the COARE 3.5 bulk + ! flux algorithm, this slope is given as 0.017. However, 0.0017 reproduces the + ! curve in their figure 6, so that is the default value used in MOM6. +CHARNOCK_0_WIND_INTERCEPT = -0.005 ! [nondim] default = -0.005 + ! The intercept of the fit for the Charnock coefficient in the limit of no wind. + ! Note that this can be negative because CHARNOCK_MIN will keep the final value + ! for the Charnock coefficient from being from being negative. + +! === module MOM_file_parser === +SEND_LOG_TO_STDOUT = False ! [Boolean] default = False + ! If true, all log messages are also sent to stdout. +DOCUMENT_FILE = "MOM_parameter_doc" ! default = "MOM_parameter_doc" + ! The basename for files where run-time parameters, their settings, units and + ! defaults are documented. Blank will disable all parameter documentation. +COMPLETE_DOCUMENTATION = True ! [Boolean] default = True + ! If true, all run-time parameters are documented in MOM_parameter_doc.all . +MINIMAL_DOCUMENTATION = True ! [Boolean] default = True + ! If true, non-default run-time parameters are documented in + ! MOM_parameter_doc.short .