Namelists β

The MOM code uses fortran namelists as a configuration mechanism.

This page provides documentation on the available namelist values for each module.

The contents of this page are derived directly from the model source code. If you find an error, or would like to make any improvements then you can either lodge a bug report or make the changes directly via github.

Warning

This page is currently in beta. The contents and formatting may change without notice. All namelist items used should be checked against the source code of your deployed model before being used.

src/mom5/ocean_bgc

Filename: src/mom5/ocean_bgc/ocean_ibgc.F90

Namelist: ocean_ibgc_nml

Name
Type
Default
Units
Description
do_ideal
logical

If true, then do ideal_n and suntan. This does not require any other part of the model.

do_po4
logical

If true, then do the non-Fe-limited P cycle, iPO4 and iDOP. If either this or do_po4f is true, PO4_pre and chl will be calculated as well. If both do_po4 and do_po4f are true, po4 will be the master variable, unless bgc_felim is true.

do_gasses
logical

If true, then do the gases Dissolved Inorganic Carbon (iDIC) and oxygen (iO2). Requires that do_po4 and/or do_po4f be true.

do_carbon_comp
logical

If true, then do the dissolved inorganic carbon component tracers, Saturation DIC (iDIC_sat) and preformed DIC (iDIC_pre). Requires that do_po4 and/or do_po4f be true, and that do_gasses be true.

do_radiocarbon
logical

If true, then do the radiocarbon tracers (iDI14C and iDO14C). Requires that do_po4 and/or do_po4f be true, and that do_gasses be true.

do_bgc_felim
logical

If true, then use PO4f as the master variable for biogeochemical calculations (gases, PO4_pre, chl, isotopes). Requires that do_PO4f be true.

do_po4f
logical

If true, then do the Fe-limited P cycle, with iFe, iPO4f and DOP. If either this or do_po4 is true, PO4_pre and chl will be calculated as well. If both do_po4 and do_po4f are true, po4 will be the master variable, unless do_bgc_felim is true.

do_isio4
logical

If true, then do silica cycle and silicon isotopes, iSiO4 and i30SiO4.

do_no3_iso
logical

If true, then do NO3 isotopes, i15NO3, iN18O3 and iDO15N. Requires that do_po4 and/or do_po4f be true.

src/mom5/ocean_blobs

Filename: src/mom5/ocean_blobs/ocean_blob.F90

Namelist: ocean_blob_nml

Name
Type
Default
Units
Description
debug_this_module
logical

Writes additional diagnostic data to fms.out. This also controls debug output for the other related blob modules. Default is debug_this_module=.false.

really_debug
logical

Be careful what you wish for, this outputs A LOT of diagnostics to standard out Default is debug_this_module=.false.

do_bitwise_exact_sum
logical

When global sum outputs are done there is additional computational expense to ensure that they are bitwise the same across an arbitrary number of processors. However, for debugging purposes, it can be useful for global sums to be the same. Note, that this differs from bitwise_reproduction in that it do_bitwise_exact_sum only applies to the mpp_global_sum diagnostic. Note that this flag controls the output for all associated blob modules. Default is do_bitwise_exact_sum=.false.

bitwise_reproduction
logical

There is additional cost involved in ensuring that results are reproducable across an arbitrary number of processors and across restarts. Bitwise reproduction is a very memory intensive operation and should only be used for debugging. For bitwise_reproduction=.true. We need to process blobs and their histories in the same relative order regardless of domain decomposition and restarts. To do so, we save the "history" of each blob subcycle is saved to a number of arrays (which can be a very memory intensive process) and process them in order. Note that this flag controls reproducability for all associated blob modules. Bitwise reproducibility is only possible with the appropriate compiler flags AND when the simulation is run on hardware that is capable of producing bitwise reproduction. Default is bitwise_reproduction=.false.

blob_small_mass
real
kg

Will delete blobs of mass less than blob_small_mass. Note that this variable is for all associated blob modules. The deletion of blobs is a conservative action, any mass/tracer fields that are nonzero have the remaining properties transferred back to the Eulerian system. So, in principle, blob_small_mass can actually be a relatively large number, and the model will remain conservative. It has been found in certain test cases (with very low tracer values) that setting blob_small_mass to be very small (i.e. <1e2) that roundoff error can cause non-trivial errors. So, it is recommended that blob_small_mass be no smaller than than 1e3 kg (which is approximately 1.0m**3 -- a very small blob Default is blob_small_mass=1.e3

max_prop_thickness
real

Filename: src/mom5/ocean_blobs/ocean_blob_diag.F90

Namelist: ocean_blob_diag_nml

Name
Type
Default
Units
Description
blob_diagnostics
logical

Logical as to whether diagnostics should be saved or not. Default is .false.

diag_table
character(len=31)

Name of file to look for blob diagnostic information. Default is "blob_diag_table"

dump_num
integer

The number of entried to keep in memory before writing them to file. The higher the number, the more memory that the module will take up, but, it should lower the frequency of IO operations. Default is 2000000

frequency
integer

The frequency (in number of E system time steps) that blob diagnostics should be saved. Default is 1

Filename: src/mom5/ocean_blobs/ocean_blob_dynamic_bottom.F90

Namelist: ocean_blob_dynamic_bottom_nml

Name
Type
Default
Units
Description
use_this_module
logical

Must be true to use this module. Default is use_this_module=.false.

update_method
character(len=10)
blob_overflow_mu
real

Frictional dissipation rate used for calculating initial properties of bottom blobs. Corresponds to mu in Campin and Goosse (1999). Units are 1/s. Default is blob_overflow_mu=1.0e-4

blob_overflow_delta
real

Fraction of a grid cell participating in an overflow event. Corresponds to delta in Campin and Goosse (1999). Dimensionless. Default is blob_overflow_mu=1.0e-4

drag
real

Coefficient of drag used for bottom stress drag. Corresponds to Cd in Price and Baringer (1994). Dimensionless. Default is drag=3.0e-3

enforce_big_blobs
logical
det_param
real

The detrainment parameter (kg m^2/s). Corresponds to Gamma in the notes. Default is det_param=5.0e-8

max_detrainment
real

The Maximum allowable detrainment velocity (m/s). Default is max_detrainment=1.0e-3

rel_error
real

Relative error for the RK scheme (dimensionless). A smaller number is more accurate, but, is more computationally expensive. Corresponds to zeta* in the notes. Must be 0<rel_error<=1.0 Default is rel_error=0.01

safety_factor
real

Safety factor for the RK scheme (dimensionless). A smaller number should reduce the number of rejected steps, but, decreases the locally extrapolated step. Corresponds to varrho in the notes. Must be 0<safety_factor<=1.0 Default is safety_factor=0.8

minstep
real

Minimum step size (in seconds) for a blob. Default is minstep=9.0

first_step
real
elastic
real

The elasticity of a blob's collision with the topography. Corresponds to epsilon in the notes. Should have values 0<=elastic<=1.0 Values greater than 1 would be super-elastic, and values less than 0 would send the blob in the opposite direction than it should be going in. Default is elastic=1.0

min_do_levels
integer

Minimum number of deep ocean levels for overflows to be considered. That is, how many k levels lower should the deep ocean water column be than the shelf/shallow ocean column. Value must be greater than 0. Default is min_do_levels=1

rho_threshold
real

The density difference required before a blob is formed. rho_threshold must be greater than zero. Default is rho_threshold=0.01

accept_free_blobs
logical
large_speed
real

A value for error checking. If the speed of a blob exceeds large_speed in any of x,y,z then a warning flag is raised. Default is large_speed=10.0

no_rotation
logical

Sets the coriolis parameter to zero regardless of latitude Default is no_rotation=.false.

critical_richardson
real

The critical Richardson number for the entrainment velocity. Default is based on Price and Baringer (1994). Default is critical_richardson=0.8

blob_height
real

Filename: src/mom5/ocean_blobs/ocean_blob_dynamic_free.F90

Namelist: ocean_blob_dynamic_free_nml

Name
Type
Default
Units
Description
use_this_module
logical

Must be true to use this module. Default is use_this_module=.false.

rayleigh_drag_new
real

Rayleigh drag coefficient (1/s) for new blobs that are formed due to the vertical instability criterion. Corresponds to alpha in the notes. Default is rayleigh_drag_new=1.0e-5

rayleigh_drag_bot
real

Rayleigh drag coefficient (1/s) for bottom blobs that become free blobs. Corresponds to alpha in the notes. Default is rayleigh_drag_bot=1.0e-7

update_method
character(len=10)

Decide which method to use to integrate the blobs. Choices are 'BS_RK3(2)' or 'CK_RK5(4)' for the Bogaki-Shampine or Cash-Karp methods respectively. Default is update_method='CK_RK5(4)

rel_error
real

Relative error for the RK scheme (dimensionless). A smaller number is more accurate, but, is more computationally expensive. Corresponds to zeta* in the notes. Must be 0<rel_error<=1.0 Default is rel_error=0.01

safety_factor
real

Safety factor for the RK scheme (dimensionless). A smaller number should reduce the number of rejected steps, but, decreases the locally extrapolated step. Corresponds to varrho in the notes. Must be 0<safety_factor<=1.0 Default is safety_factor=0.8

minstep
real

Minimum step size (in seconds) for a blob. Default is minstep=9.0

first_step
real
size_fact
real

An Adjustment for blob size, 0<size_fact<=1.0 Corresponds to Lambda in the notes. Default is size_fact=1.0

det_param
real

The detrainment parameter (kg m^2/s). Corresponds to Gamma in the notes. Default is det_param=5.0e-8

max_detrainment
real

The Maximum allowable detrainment velocity (m/s). Default is max_detrainment=1.0e-3

bv_freq_threshold
real

The buoyancy frequency threshold at which the scheme will start to create blobs, i.e. blobs will be formed when N^2<bv_freq_threshold Default is bv_freq_threshold=-1.0e-15

full_N2
logical

Whether to use the buoyancy frequency calculated from the combined E and L system (true) or, from the E system only (false). Default is full_N2=.true.

large_speed
real

A value for error checking. If the speed of a blob exceeds large_speed in any of x,y,z then a warning flag is raised. Default is large_speed=10.0

Filename: src/mom5/ocean_blobs/ocean_blob_static_bottom.F90

Namelist: ocean_blob_static_bottom_nml

Name
Type
Default
Units
Description
use_this_module
logical
overflow_no_return
logical

When .false. creates return blobs to replicate the original Campin and Goosse scheme. When .true. only creates blobs that sink. See further overflow_one_return

overflow_one_return
logical

Creates a single return blob when .true. Cannot be .true. when overflow_no_return is also .true.

blob_overflow_mu
real
1/s

Frictional dissipation used in blob_overflow scheme Default is blob_overflow_mu=1.0e-4

blob_overflow_delta
real

Fraction of grid cell participating in overflow Valid values are 0<=delta<=1 Default is blob_overflow_delta=1/3

blob_overflow_umax
real
m/s

Maximum downslope speed allowed for overflow Default is blob_overflow_umax=0.01

Filename: src/mom5/ocean_blobs/ocean_blob_static_free.F90

Namelist: ocean_blob_static_free_nml

Name
Type
Default
Units
Description
use_this_module
logical
blob_ncon_like
logical

If true, will use NCon-like formulation. Default blob_ncon_like = .true.

blob_diff_like
logical

If true, will use the diffusion-like formulation. Default is "blob_diff_like=.false.

blob_swap_like
logical

If true, will use the swap-like formulation. Default is blob_switch_like=.false.

ncon_blob
integer

The number of times that the water column is checked and adjusted for instability.

src/mom5/ocean_core

Filename: src/mom5/ocean_core/ocean_advection_velocity.F90

Namelist: ocean_advection_velocity_nml

Name
Type
Default
Units
Description
max_advection_velocity
real
meter/sec

This is a check value used to determine if the time steps will result in linearly stable advection. If set to a number < 0, then model will estimate the value as a function of maximum grid size. Note that this time step check is not rigorous, and it depends on the details of the advection scheme. Nonetheless, it provides some useful warning for setting the time steps in the model.

debug_this_module
logical

For debugging.

inflow_nboundary
logical

For adding an inflow velocity from the northern boundary. Default is inflow_nboundary=.false.

read_advection_velocity
logical

For reading in a file with specified zonal, meridional, and vertical components to the advective velocity. The file should have velocity at the east face of T-cell, north face, and bottom, just as on a C-grid. The units should be m/s for each component. MOM then multiplies but the appropriate thickness and density factors to generate transport for use in the model. Default read_advection_velocity=.false.

read_advection_transport
logical

For reading in a file with specified zonal, meridional, and vertical components to the advection transport. The file should have transport at the east face of T-cell, north face, and bottom, just as on a C-grid. The units should be (kg/m^3)(m^2/sec) for horz components, and (kg/m^3)(m/sec) for vertical component. MOM then uses these fields directly to initialize uhrho_et, vhrho_nt, and wrho_bt. Default read_advection_transport=.false.

constant_advection_velocity
logical

When reading in the advection velocity components, we may choose to keep them constant in time. This facilitates idealized tests of tracer advection. Default constant_advection_velocity=.false.

Filename: src/mom5/ocean_core/ocean_barotropic.F90

Namelist: ocean_barotropic_nml

Name
Type
Default
Units
Description
zero_tendency
logical

If true, will not integrate the barotropic fields.

zero_eta_ic
logical

To initialize eta_t to zero.

zero_eta_tendency
logical

To maintain deta_dt at zero. For debugging. Default zero_eta_t=.false.

zero_eta_t
logical

To maintain eta_t at zero, but to allow other fields to evolve. For debugging. Default zero_eta_t=.false.

zero_eta_u
logical

To maintain eta_u at zero, but to allow other fields to evolve. For debugging. Default zero_eta_u=.false.

zero_forcing_bt
logical

Will set to zero all of the terms forcing the barotropic velocity.

zero_nonlinear_forcing_bt
logical

Will set to zero the nonlinear forcing terms, leaving only the smf and bmf terms to force the barotropic velocity.

zero_coriolis_bt
logical

Will set to zero the Coriolis parameter for purpooses of computing the barotropic momentum equation. This option is for testing alone. Default zero_coriolis_bt = .false.

ideal_initial_eta
logical

To initialize eta_t to an ideal profile. This option overrides all other initialization that may have occurred. Default=.false.

ideal_initial_eta_amplitude
real
metre

Amplitude for initializing eta with an ideal profile. Default ideal_initial_eta_amplitude = 5.0

ideal_initial_eta_xwidth
real
metre

Width in x-direction for sine-wave profile. Default xwidth=100e3

ideal_initial_eta_ywidth
real
metre

Width in y-direction for sine-wave profile. Default ywidth=100e3

truncate_eta
logical

To truncate the surface height so to ensure positive thickness within the top cell. This method will not conserve volume or tracer. It is coded for cases when conservation is not critical but wish to run GEOPOTENTIAL models w/ large free surface height deviations, such as when running with tides and very fine vertical resolution. The preferred approach is to use zstar or pstart vertical coordinates. Default truncate_eta = .false..

verbose_truncate
logical

For verbose printout on truncate_eta

frac_crit_cell_height
real
dimensionless

When use GEOPOTENTIAL vertical coordinate, the top model tracer grid cell has thickness dzt(i,j,1) = dzt(1) + eta_t(i,j). 0 < frac_crit_cell_height <= 1 sets the fraction of dzt(1) that is allowed prior to bringing the model down due to overly small dzt(i,j,1). Default frac_crit_cell_height=0.20.

eta_max
real
meter

The maximum positive eta_t allowed when truncate_eta is true. Default eta_max = 5.0.

debug_this_module
logical

Print out lots of diagnostics of use for debugging. Default debug_this_module=.false.

verbose_init
logical

For brief or full printout on initialization Default verbose_init=.true.

diag_step
integer

Frequency for output of ascii barotropic diagnostics. Setting diag_step=1 will compute diagnostics each time step and print to stdout. This setting is useful when developing a model in order to examine various budgets and stability issues. But when running production, one should set diag_step to a mucch larger number in order to reduce i/o and model cost. Default diag_step=-1, which means will not compute any of the online diagnostics.

tidal_forcing_m2
logical

Forces from lunar M2 tidal constituent. Default tidal_forcing_m2=.false.

tidal_forcing_8
logical

Forces from 8 lunar and solar tidal constituents. Default tidal_forcing_8=.false.

tidal_forcing_ideal
logical

For ideal tidal forcing, which has a bump configuration. Default tidal_forcing_ideal=.false.

geoid_forcing
logical

For modifying the geoid, implemented as a time independent tidal forcing. Need to read in a file to obtain the offset geoid profile. Default geoid_forcing=.false.

do_bitwise_exact_sum
logical

Set true to do bitwise exact global sum. When it is false, the global sum will be non-bitwise_exact, but will significantly increase efficiency. Default do_bitwise_exact_sum=.false.

smooth_eta_t_bt_laplacian
logical

For spatially smoothing the eta_t field at each barotropic time step using a Laplacian operator. This option may not be necessary when pred_corr_gamma > 0.0, since the predictor-corrector approach has dissipation from pred_corr_gamma > 0.0. Also, smoothing is not needed in general for Cgrid MOM, since the gravity wave null mode only appears for the Bgrid. This option is only applicable for DEPTH_BASED vertical coordinates. Default smooth_eta_t_bt_laplacian=.false.

smooth_eta_t_bt_biharmonic
logical

For spatially smoothing the eta_t field at each barotropic time step using a biharmonic operator. May not be necessary when pred_corr_gamma > 0.0, since predictor-corrector has dissipation from pred_corr_gamma > 0.0. Also, smoothing is not needed in general for Cgrid MOM, since the gravity wave null mode only appears for the Bgrid. Applicable just for DEPTH_BASED vertical coordinates. WARNING: this operator is NOT positive definite, and so can produce spurious extrema. It is not generally recommended just for this reason. Default smooth_eta_t_bt_laplacian=.false.

smooth_eta_t_laplacian
logical

For spatially smoothing the eta_t field on the big time step by using a laplacian operator. For compatibility and global conservation, must also introduce a mixing to the thickness weighted tracer concentration in the k=1 cell. Applicable just for DEPTH_BASED vertical coordinates. Also, smoothing is not needed in general for Cgrid MOM, since the gravity wave null mode only appears for the Bgrid. Default mooth_eta_t_laplacian=.true.

smooth_eta_t_biharmonic
logical

For spatially smoothing the eta_t field on the big time step by using a biharmonic operator. For compatibility and global conservation, must also introduce a mixing to the thickness weighted tracer concentration in the k=1 cell. Applicable just for DEPTH_BASED vertical coordinates. Also, smoothing is not needed in general for Cgrid MOM, since the gravity wave null mode only appears for the Bgrid. WARNING: This operator is NOT positive definite, and so can produce spurious extrema. It is not recommended just for this reason. Default smooth_eta_t_biharmonic=.false.

smooth_eta_diag_laplacian
logical

For spatially smoothing the diagnosed eta_t field using a laplacian operator. This option is used for PRESSURE_BASED vertical coordinates, in which case the free surface is diagnosed rather than prognosed. Also, smoothing is not needed in general for Cgrid MOM, since the gravity wave null mode only appears for the Bgrid. Default smooth_eta_diag_laplacian=.true.

smooth_eta_diag_biharmonic
logical

For spatially smoothing the diagnosed eta_t field using a biharmonic operator. This option is used for PRESSURE_BASED vertical coordinates, in which case the free surface is diagnosed rather than prognosed. Also, smoothing is not needed in general for Cgrid MOM, since the gravity wave null mode only appears for the Bgrid. Default smooth_eta_diag_biharmonic=.false.

smooth_anompb_bt_laplacian
logical

For spatially smoothing anomalous pbot_t at each barotropic time step using a Laplacian operator. May not be necessary when pred_corr_gamma > 0.0, since predictor-corrector has dissipation from pred_corr_gamma > 0.0. This option is applicable just for PRESSURE_BASED vertical coordinates. Also, smoothing is not needed in general for Cgrid MOM, since the gravity wave null mode only appears for the Bgrid. Default smooth_anompb_bt_laplacian=.false.

smooth_anompb_bt_biharmonic
logical

For spatially smoothing the anomalous pbot_t field at each barotropic time step using a biharmonic operator. May not be necessary when when pred_corr_gamma > 0.0, since predictor-corrector has dissipation from pred_corr_gamma > 0.0. This option is applicable just for PRESSURE_BASED vertical coordinates. Also, smoothing is not needed in general for Cgrid MOM, since the gravity wave null mode only appears for the Bgrid. WARNING: This operator is NOT positive definite, and so can produce spurious extrema. It is not recommended just for this reason. Default smooth_anompb_bt_biharmonic=.false.

smooth_pbot_t_laplacian
logical

For spatially smoothing pbot_t-pbot0 on the big time step using a laplacian operator. For compatibility and global conservation, must also introduce a mixing to the thickness weighted tracer concentration in the k=kbot cell. Applicable just for PRESSURE_BASED vertical coordinates. Also, smoothing is not needed in general for Cgrid MOM, since the gravity wave null mode only appears for the Bgrid. Default smooth_pbot_t_laplacian=.true.

smooth_pbot_t_biharmonic
logical

For spatially smoothing pbot_t-pbot0 on the big time step by using a biharmonic operator. For compatibility and global conservation, must also introduce a mixing to the thickness weighted tracer concentration in the k=kbot cell. Applicable just for PRESSURE_BASED vertical coordinates. Also, smoothing is not needed in general for Cgrid MOM, since the gravity wave null mode only appears for the Bgrid. WARNING: This operator is NOT positive definite, and so can produce spurious extrema. It is not recommended just for this reason. Default smooth_pbot_t_biharmonic=.false.

smooth_pbot_t_biharmonic_legacy
logical

For using an older version of the smooth_pbot_t_biharmonic scheme. The smooth_pbot_t_biharmonic_legacy option has a minor bug, but it is maintained in order to allow for backward compatible legacy simulations. It is not recommended for new simulations. To use it requires also setting smooth_pbot_t_biharmonic=.true. Default smooth_pbot_t_biharmonic_legacy=.false.

vel_micom_lap
real
m/sec

Velocity scale that is used for computing the MICOM Laplacian mixing coefficient used in the Laplacian smoothing of surface height or anomalous bottom pressure. Default vel_micom_lap=0.05.

vel_micom_lap_diag
real
m/sec

Velocity scale that is used for computing the MICOM Laplacian mixing coefficient used in the Laplacian smoothing of diagnosed surface height. Default vel_micom_lap_diag=0.2.

vel_micom_bih
real
m/sec

Velocity scale that is used for computing the MICOM biharmonic mixing coefficient used in the biharmonic smoothing of surface height or anomalous bottom pressure. Default vel_micom_bih=0.01.

vel_micom_bih_diag
real
m/sec

Velocity scale that is used for computing the MICOM biharmonic mixing coefficient used in the biharmonic smoothing of diagnosed surface height. Default vel_micom_bih_diag=0.1.

eta_offset
real
metre

Uniform offset for use in determining the filter acting on tracer when smoothing the surface height. Default eta_offset=1e-12.

pbot_offset
real
Pa

Uniform offset for use in determining the filter acting on tracer when smoothing the bottom pressure anomaly. Default pbot_offset=1e-12.

udrho_lap_vel_micom
real
m/sec

Velocity scale that is used for computing the MICOM Laplacian mixing coefficient used in the Laplacian smoothing of udrho. This options will soon be removed from MOM. Default udrho_lap_vel_micom=.05

udrho_bih_vel_micom
real
m/sec

Velocity scale that is used for computing the MICOM biharmonic mixing coefficient used in the biharmonic smoothing of udrho. This options will soon be removed from MOM. Default udrho_bih_vel_micom=.01

udrho_bt_lap
logical

The vertically integrated horizontal momentum can be noisy on the Bgrid. It is therefore sometimes useful to add a smoothing operator to the barotropic time stepping. Here, we apply the laplacian friction as coded in the friction module using the vertically averaged isotropic viscosity as well as a background, and we do so on each barotropic time step. It is an expensive option. It is an option rarely used GFDL. This options will soon be removed from MOM. Default udrho_bt_lap=.false.

udrho_bt_bih
logical

The vertically integrated horizontal momentum on the Bgrid can be noisy. It is therefore sometimes useful to add a smoothing operator. Here, we apply the biharmonic friction as coded in the friction module using the vertically averaged isotropic viscosity as well as a background. Do so on each barotropic time step, which makes it an expensive option. This option is rarely used GFDL. Default udrho_bt_bih=.false. This options will soon be removed from MOM.

udrho_lap
logical

The vertically integrated horizontal momentum on the Bgrid can be noisy. It is therefore sometimes useful to add a smoothing operator. Here, we apply the laplacian friction as coded in the friction module using the vertically averaged isotropic viscosity as well as a background. Do so just on the baroclinic time step, so the option is less expensive than udrho_bt_lap. This options will soon be removed from MOM. Default udrho_lap=.false.

udrho_bih
logical

The vertically integrated horizontal momentum on the Bgrid can be noisy. It is therefore sometimes useful to add a smoothing operator. Here, we apply the biharmonic friction as coded in the friction module using the vertically averaged isotropic viscosity as well as a background. Do so just on the baroclinic time step, so the option is less expensive than udrho_bt_lap. This options will soon be removed from MOM. Default udrho_bih=.false.

barotropic_time_stepping_A
logical

Use the general approach from MOM4.0, in which the eta_t and pbot_t fields are updated with a big time step. This is the recommended approach for most applications that do not employ and open boundary condition. Default barotropic_time_stepping_A=.false.

barotropic_time_stepping_B
logical

Use the alternative approach in which we assume the barotropic scheme is a predictor-corrector, which is now the default in MOM. We use this assumption so that the eta_t and pbot_t fields are updated with a time average. This approach is used for open boundary condition applications. Default barotropic_time_stepping_B=.false.

initsum_with_bar_mom4p0
logical
initsum_with_bar_mom4p1
logical
pred_corr_gamma
real
dimensionless

Dimensionless dissipation parameter for the preditor-corrector scheme. Setting pred_corr_gamma=0.0 reduces the scheme to a forward-backward, but it has been found to be unstable. So pred_corr_gamma > 0.0 is recommended. Note that pred_corr_gamma > 0.25 may be over-dissipated and so may go unstable. Default pred_corr_gamma=0.2.

write_a_restart
logical

Set true to write a restart. False setting only for rare cases where wish to benchmark model without measuring the cost of writing restarts and associated chksums. Default is write_a_restart=.true.

barotropic_halo
integer

Set barotropic_halo > 1 to use wide halo in the barotropic time step to improve the performance. In barotropic time step, most time is spent on mpp_update_domains. Use wide halo to decrease the number of mpp_update_domain calls and hence improve the performance. The default value is barotropic_halo=1, which is the older approach (non-wide halo). Users are encouraged to experiment with larger halos, as the model speedup can be tremendous.

use_legacy_barotropic_halos
logical
alphat
real
dimensionless

Dimensionless self-attraction and loading term. Used only when tidal_forcing=.true. Default alphat=0.948.

Filename: src/mom5/ocean_core/ocean_bbc.F90

Namelist: ocean_bbc_nml

Name
Type
Default
Units
Description
bmf_implicit
logical

For incorporating the bottom momentum drag implicitly in time. Default is bmf_implicit=.false.

debug_this_module
logical

For debugging purposes.

cdbot_law_of_wall
logical

For determining bottom drag coefficient using a constant roughness length. Will take maximum between cdbot and the computed value using law of wall log-profile. This option of use when have very very refined vertical resolution (say on order of meters) near the bottom. Terrain following coordinates should use this option since they generally have very refined vertical grid spacing on topography. Default is cdbot_law_of_wall=.false.

cdbot_roughness_length
logical

For determining bottom drag coefficient using a map of the roughness length. This approach is more relevant for coarse models than the constant roughness length used in the cdbot_law_of_wall option. Default is cdbot_roughness_length=.false.

cdbot_wave
logical

For determining bottom drag coefficient using a map of the roughness length and the surface wind wave field. The modified drag coefficient is calculated following Grant and Mattsen. Likewise this method can be improved using more sophisticated wave models including swell. Default is cdbot_wave=.false.

cdbot_roughness_uamp
logical

For determining bottom drag coefficient using a map of the roughness length and tidal velocity amplitude. This approach is more relevant for coarse models than the constant roughness length used in the cdbot_law_of_wall option. cdbot_lo <= cdbot(i,j) <= cdbot_hi. Default is cdbot_roughness_length=.false.

use_geothermal_heating
logical
convert_geothermal
real
law_of_wall_rough_length
real
metre

Bottom roughness length. Default is law_of_wall_rough_length=0.01m, following the default used in the Princeton Ocean Model (POM). This value corresponds to "Law of Wall" physics.

cdbot
real
dimensionless

Dimensionless coefficient for quadratic bottom drag.

uresidual
real
m/s

Residual bottom velocity due to unresolved fluctuations (e.g., waves and tides) that contribute to bottom dissipation. Should be set to zero when running with explicit representation of tidal forcing and when waves are well resolved. Default is uresidual=.05.

cdbot_hi
real
cdbot_lo
real
cdbot_gamma
real
uvmag_max
real
m/s

Maximum magnitude of the bottom velocity used to compute the bottom momentum drag. Default is uvmag_max=10.0.

bmf_max
real
N/m2

Maximum magnitude of the bottom momentum drag. Default is bmf_max=1.0.

cdbot_HH
real
m

H0 in a parameterization of cdbot_roughness_uamp. Default is cdbot_HH=1100.0.

cdbot_UU
real
m/s

U0 in a parameterization of cdbot_roughness_uamp. Default is cdbot_UU=1.0.

Filename: src/mom5/ocean_core/ocean_coriolis.F90

Namelist: ocean_coriolis_nml

Name
Type
Default
Units
Description
debug_this_module
logical

For debugging.

use_this_module
logical

Must be true to add contributions from Coriolis force.

acor
real

acor=0.0 means explicit Coriolis force. 0.5 < = acor < 1.0 means semi-implicit, and acor = 1.0 is implicit. This option is only relevant for the Bgrid, since the C-grid compute Coriolis using 3rd order Adams-Bashforth scheme. For the Bgrid, the semi-implicit method removes dtuv time step constraint associated with inertial oscillations, but it leads to Coriolis force affecting energy balances. If use two-level tendency discretization, then acor=0 is NOT allowed since the model will be linearly unstable with growth rate going as f*(delta time).

Filename: src/mom5/ocean_core/ocean_density.F90

Namelist: ocean_density_nml

Name
Type
Default
Units
Description
eos_linear
logical

Set to true to use an idealized linear equation of state, which has no pressure dependence, and is a linear function of salinity and temperature. Default eos_linear=.false.

alpha_linear_eos
real

Constant "thermal expansion coefficient" for linear EOS rho = rho0 - alpha_linear_eostheta + beta_linear_eossalinity

beta_linear_eos
real

Constant "saline contraction coefficient" for linear EOS rho = rho0 - alpha_linear_eostheta + beta_linear_eossalinity

eos_preteos10
logical

Set to true to use pre-TEOS-10 equation of state, which is a function of potential temperature and practical salinity, or conservative temperature and practical salinity. Default eos_preteos10=.false.

eos_teos10
logical

Set to true to use TEOS-10 equation of state, which is a function of conservative temperature and absolute salinity. Default eos_teos10=.false.

s_test
real
psu or g/kg

Salinity for testing the EOS.

t_test
real
C

Conservative temperature or potential temperature for testing the EOS.

p_test
real
dbar

Sea pressure for testing the EOS.

sn_test
real
psu or g/kg

Salinity the equation for neutral density.

tn_test
real
C

Conservative temperature or potential temperature for testing the equation for neutral density.

layer_nk
integer

Number of classes used to partition vertical according to potential density, conservative temperature, or potential temperature. Used for diagnostics.

potrho_press
real
dbar

Reference sea pressure for computing diagnostic potential density of use for computing diagnostics with potential density. Default potrho_press=2000.0

potrho_min
real
kg/m^3

Minimum potential density used to partition vertical according to potential density.

potrho_max
real
kg/m^3

Maximum potential density used to partition vertical according to potential density.

neutral_density_omega
logical

Set to true to compute the neutral density according to the omega method based on Klocker and McDougall. This approach has not yet been coded. Presently as a placeholder we use potential density referenced to 2000dbar. Default neutral_density_omega=.false.

neutral_density_potrho
logical

Set to true to compute the neutral density as just a selected potential density, set according to potrho_press. Since the neutral_density_omega approach has yet to be coded, we only have the neutral_density_potrho option to choose from at this time. Default neutral_density_potrho=.true.

neutralrho_min
real
kg/m^3

Minimum neutral density used to partition vertical according to rational polynomial approximation to neutral density.

neutralrho_max
real
kg/m^3

Maximum neutral density used to partition vertical according to rational polynomial approximation to neutral density.

theta_min
real
C

Minimum conservative temperature or potential temperature used to partition vertical according to temperature.

theta_max
real
C

Maximum conservative temperature or potential temperature used to partition vertical according to temperature.

press_standard
real
dbar

Standard atmospheric pressure (dbar). The realistic EOS used in MOM requires "sea pressure" as an argument rather than absolute pressure. Sea pressure is absolute pressure minus a standard atmospheric pressure of 10.1325dbar. For models that do have a realistic atmospheric loading, then it is appropriate to remove 10.1325dbar prior to computing the EOS. For those cases with zero atmospheric pressure, then it is not necessary to remove the standard atmosphere. The default for the press_standard is 0.0dbar.

buoyfreq_smooth_vert
logical

To smooth the vertical temp and salt derivative for diagnosing the buoyancy frequency. Default buoyfreq_smooth_vert=.true.

num_121_passes
integer
epsln_drhodz
real
kg/m4

To normalize the inverse vertical derivative of neutral density for computing the buoyancy frequency. Default epsln_drhodz=1e-10.

drhodz_diag_stable
logical

When computing drhodz_diag, we can enforce that it is negative, thus reflecting a stable stratification. The field drhodz_diag is used for many water mass transformation diagnostics, such as wdian_rho. Allowing for unstable profiles can bias the wdian_rho calculation in an improper way, since the magnitude of drhodz_diag is very small when it is positive, whereas it is larger magnitude when negative. Default drhodz_diag_stable=.true.

epsln_drhodz_diag
real
kg/m4

To normalize the inverse vertical derivative of neutral density for computing neutral_rho and wdian diagnostics. Default epsln_drhodz_diag=1e-10.

grad_nrho_lrpotrho_compute
logical

To perform the diagnostic calculation of grad_nrho_lrpotrho for analysis diagnostics. This factor is not well constrained, and can be problematic in certain regions. So presently we do not recommend computing it, so that the default is grad_nrho_lrpotrho_compute=.false.

grad_nrho_lrpotrho_max
real
dimensionless

Maximum value used for grad_nrho_lrpotrho. Default grad_nrho_lrpotrho_max=10.

grad_nrho_lrpotrho_min
real
dimensionless

Minimum value used for grad_nrho_lrpotrho. Default grad_nrho_lrpotrho_min=1.

smooth_stratification_factor
logical

For doing an S2D smoothing of the stratification factor used for diagnostic purposes. Requires an extra call to mpp update. Default smooth_stratification_factor=.false. since the smoothing incurs a cost that should be borne only when desired.

smax_min_in_column
logical

To compute the diagnostic maximum neutral slope within a column as the minimum vertical to horizontal grid aspect ratio. This method ensures that the slope is adequately "resolved" by the grid, and that all depths use the same definition of "resolved", even if presumably thicker grid cells can "resolve" larger neutral slopes. This approach is not very useful generally, so it is retained only for testing purposes. Default smax_min_in_column=.false.

smax_diag
real
dimensionless

A diagnostic maximum neutral slope for use in computing which direction is deemed the most stratified. For use in computing the stratification_factor which is then used to diagnose the dianeutral mass transport. smax_diag should corresond to the choice used in neutral diffusion scheme. Should have 0 <= smax_diag <= 1.0. Default smax_diag=-1.0, in which case we compute the smax according to the vertical to horizontal grid aspect ratio. This method ensures that the slope is adequately "resolved" by the grid.

update_diagnostic_factors
logical

To update the watermass_factor and stratification_factor for use in the water mass transformation diagnostics. Default update_diagnostic_factors=.false.

mask_domain_restart
logical

For cases where use the domain masking, it is necessary to initialize the field denominator_r to nonzero in order to avoid NaNs in the case when change processor layout in between restarts. Note that when use solid wall boundary conditions, this logical should remain false in order to bitwise reproduce across restarts. Default mask_domain_restart=.false.

debug_this_module
logical

For debugging nonlinear equation of state

rho0_density
logical

For debugging, it is often useful to have rho=rho0 uniform.

density_equal_potrho
logical

For idealized tests, set the in situ density equal to the potential density referenced to potrho_press. All density derivatives will also be computed with respect to constant potrho_press pressure. Default density_equal_potrho=.false.

write_a_restart
logical

Set true to write a restart. False setting only for rare cases where wish to benchmark model without measuring the cost of writing restarts and associated chksums. Default is write_a_restart=.true.

do_bitwise_exact_sum
logical

Set true to do bitwise exact global sum. When it is false, the global sum will be non-bitwise_exact, but will significantly increase efficiency. default: do_bitwise_exact_sum=.false.

Filename: src/mom5/ocean_core/ocean_domains.F90

Namelist: ocean_domains_nml

Name
Type
Default
Units
Description
halo
integer
dimensionless

For specifying the halo size by hand.

max_tracers
integer
dimensionless

temporary - need to call domains_init before tracer_init Used for computing mpp_stack_size.

x_cyclic_offset
integer
dimensionless

offset to be applied on x-direction boundary condition. Its value could be positive or negative and the default value is 0. When the y-direction boundary condition is folded-north(tripolar grid), x_cyclic_offset must be 0. For torus (cyclic in x and y-direction), at least one of x_cyclic_offset and y_cyclic_offset must be 0.

y_cyclic_offset
integer
dimensionless

offset to be applied on y-direction boundary condition. Its value could be positive or negative and the default value is 0. For torus (cyclic in x and y-direction), at least one of x_cyclic_offset and y_cyclic_offset must be 0.

Filename: src/mom5/ocean_core/ocean_grids.F90

Namelist: ocean_grids_nml

Name
Type
Default
Units
Description
do_bitwise_exact_sum
logical

Set true to do bitwise exact global sum. When it is false, the global sum will be non-bitwise_exact, but will significantly increase efficiency. The default value is do_bitwise_exact_sum=.false.

debug_this_module
logical

For debugging. Note that most of the debugging stuff has been removed, but keep flag around in case need in future.

verbose_init
logical

Prints out lots of initial checksums. Useful to have on, so defaulted to true.

read_rho0_profile
logical

To read in an initial rho0(k) profile to assist in defining the initial settings for the pressure increments dst, for use in setting the pressure-based vertical coordinate grids. Ideally, this profile is determined by the level averaged density in the initial conditions. Note that it is essential to have rho0_profile have a sensible value at all depths even if there is no water there, since there are places where we divide by rho0_profile in rock. Also, be mindful that with denser water at depth, the pressure levels will be coarser at depth than if using the trivial density profile rho0(k)=rho0. This option is experimental, so it is recommended that user maintain the default read_rho0_profile=.false.

write_grid
logical

Filename: src/mom5/ocean_core/ocean_model.F90

Namelist: ocean_model_nml

Name
Type
Default
Units
Description
impose_init_from_restart
logical

Consider the following situation: We have run the model for many years and generated restarts. Time%init is then .false. Then, we wish to start a series of perturbation experiments from this restart file. The generic situation is for Time%init to then be .true. However, we need it to be .false. in MOM in order to have a proper reading of the full restart information. Setting impose_init_from_restart=.true. will facilitate this setup. The default is impose_init_from_restart=.false., in which case the model will run through its normal start/stop segments using restarts.

reinitialize_thickness
logical

When initialized with a nontrivial eta field, it is necessary to reinitialize the thickness arrays.

baroclinic_split
integer

baroclinic_split = dtts/dtuv = (tracer time step)/(baroclinic time step) = (ocean model time step)/(baroclinic time step) Transients corrupted if baroclinic_split > 1, so it is recommended to use baroclinic_split=1.

surface_height_split
integer

Ratio surface_height_split = dtts/dteta = (tracer time step)/(surface height time step) = (tracer time step)/(bottom pressure time step) Typically this split is set to unity for models where baroclinic_split=1, but something larger when baroclinic_split is order 10. dteta is the time step used for update of eta_t or pbot_t. If surface_height_split is not equal to unity, then tracer conservation properties are compromised.

barotropic_split
integer

Ratio barotropic_split = dtuv/dtbt = (baroclinic time step)/(barotropic time step). Must be large enough to resolve the barotropic gravity waves captured by the barotropic part of the model. Barotropic waves are dissipated when this splitting is greater than unity. Model algorithm is not fully implemented when barotropic_split=1, so user beware if wishing to run an unsplit model simulation.

time_tendency
character(len=32)

Possible time stepping schemes are the following. 1. "threelevel" has the following characteristics leap-frog for the time tendency which means the inviscid/nondissipative processes are at time tau. forward for lateral mixing processes (dissipation at taum1) implicit for vertical dissipative (with aidif = 1.0) semi-implicit for Coriolis (with acor>0) Because of the need to apply time filters to suppress leap-frog splitting, the threelevel time stepping scheme does not conserve total tracer content in the model. 2. "twolevel" has the following characteristics: staggered 2nd order forward time tendency, which means that tracer advection, lateral tracer and velocity mixing, are at time tau. Pressure gradients are at taup1. Adams-Bashforth (either 2nd or 3rd order) for velocity advection Third order is default as it is more stable. implicit vertical mixing (with aidif = 1.0) semi-implicit for Coriolis (with acor > 0) This scheme conserves total volume and tracer in the ocean model.

vertical_coordinate
character(len=32)

This string determines the vertical coordinate used in MOM. There are 3 + 3 options in MOM: Depth-based Boussinesq are 'geopotential', 'zstar', 'zsigma', Pressure-based non-Boussinesq are 'pressure', 'pstar', and 'psigma'. The two terrain-following sigma options are not well tested in MOM, whereas the other options are standard. The recommended Boussinesq vertical coordinate is zstar, and the recommended non-Boussineq coordinate is pstar. The default is vertical_coordinate='zstar'.

horizontal_grid
character(len=32)

This string determines the arrangement of variables on the discrete horizontal grid. The standard case is horizontal_grid='bgrid'. However, the C-grid is being developed in MOM. It is not yet supported for general use. Default horizontal_grid='bgrid'.

layout
integer(2)
(/1,1/)

Processor domain layout for ocean model.

io_layout
integer(2)
(/0,0/)

Processor IO domain layout for ocean model. The default value is (0,0). If either io_layout(1) or (2) is 0, it will default to the number of processors in the computational layout, except restart file will default to single file if fms_io_nml fileset_write is set to 'single'. When both entry of io_layout is positive, io_domain will be defined(a pointer in domain2d) and number of distributed files will be layout(1)*layout(2). For example, assume the restart file is ocean_velocity.res.nc and the diagnostics file is ocean_daily.nc, if the layout = (1,2), the restart files will be ocean_velocity.res.nc.0000 and ocean_veloicity.res.nc.0001, the diagnostics files will be ocean_daily.res.nc.0000 and ocean_daily.res.nc.0001. When the io_domain is defined, restart file and diagnostics file name will be controlled by the io_domain (ignoring fms_io_nml fileset_write).

debug
logical

For overall model debugging. Set true to print cksums at each timestep for debugging purposes.

mask_table
character(len=128)

A text file to specify n_mask, layout and mask_list. This table aims to reduce the number of processors that are cycling over pure land regions. These processors will be masked out of regions that which contain all land points. The default file name of mask_table is "INPUT/ocean_mask_table". Please note that the file name must begin with "INPUT/". The first line of mask_table is the number of region to be masked out. The second line is the layout of the model. User need to set ocean_model_nml variable layout to be the same as the second line of the mask table. The following n_mask line will be the position of the processor to be masked out. The mask_table could be created by tools check_mask. For example the mask_table will be as following if n_mask=2, layout=4,6 and the processor (1,2) and (3,6) are to be masked out. 2 4,6 1,2 3,6

cmip_units
logical

For CMIP output, we need to have temperature in deg K and mass transport in kg/s. The flag cmip_units=.true. will diagnose CMIP5-related fields with the CMIP units for sending to the diagnostic manager. Default cmip_units=.false.

use_blobs
logical

For using Lagrangian blobs. Default use_blobs=.false.

introduce_blobs
logical

For the Lagrangian blobs after a model has already been running. Default introduce_blobs=.false.

use_velocity_override
logical

For over-riding the velocity field with values from a file. Note that we need separate files for (u,v) read into ocean_velocity.F90, as well as (udrho,vdrho) read into ocean_barotropic.F90. Default use_velocity_override=.false.

dt_ocean
integer

Ocean model time step in seconds.

Filename: src/mom5/ocean_core/ocean_obc.F90

Namelist: ocean_obc_nml

Name
Type
Default
Units
Description
direction
integer

open boundary direction. Each element value should be west, east, south or north.

name
character(len=16)

type of open bounday.

ctrop_max
real

Maximum value to clip diagnosed barotropic phase speed in terms of sqrt(gH). Should be about 1.

ctrop_min
real

Minimum value to diagnosed barotropic phase speed in terms of sqrt(gH). Should be about 0. Default is 0.1.

ctrop_inc
real

value to be set for barotropic phase speed if incoming waves are diagnosed. (in terms of sqrt(gH)) Should be about 0. Default is 0.

ctrop_smooth
real
enh_pnts
integer

Enhance viscosity and mixing at a stripe of enh_pnts decreasing with the distance from the boundary. Default = 1.

enh_fac_v
real

'Safety factor' applied to maximum stable viscosity at the boundary. Default = 0.9

enh_fac_d
real

Factor applied to enhance mixing at the boundary. Default = 1.

obc_enhance_visc_back
integer

logical variable that decide whether to enhance viscosity at the boundary. Default value is .false.

obc_enhance_diff_back
integer

logical variable that decide whether to enhance mixing at the boundary. Default value is .false.

obc_consider_convu
logical

logical variable that decide whether to account for one component of convu within the boundary. The appropriate behavior depends on the model configuration. Default value is .false.

obc_vert_advel_t
logical

logical variable that decide whether to account for vertical advection of tracers at the boundary. The appropriate behavior depends on the model configuration. Default value is .false. (Currently inactive)

obc_vert_advel_u
logical

logical variable that decide whether to account for vertical advection of momentum at the boundary. The appropriate behavior depends on the model configuration. Default value is .false.

obc_adjust_forcing_bt
logical
obc_damp_newton
logical
damp_factor
real
nobc
integer

number of open boundary condition. Its value should be less than max_obc. Increase max_obc if needed.

is
integer(max_obc)
-999
ie
integer(max_obc)
-999
js
integer(max_obc)
-999
je
integer(max_obc)
-999
iers
integer(max_obc)
-999
iere
integer(max_obc)
-999
jers
integer(max_obc)
-999
jere
integer(max_obc)
-999
itrs
integer(max_obc)
-999
itre
integer(max_obc)
-999
jtrs
integer(max_obc)
-999
jtre
integer(max_obc)
-999
obc_nor
character(len=128)(max_obc)

Normal velocity OBC

obc_tan
character(len=128)(max_obc)

Tangential velocity OBC

obc_eta
character(len=128)(max_obc)

Surface elevation OBC

obc_ud
character(len=128)(max_obc)
obc_mix
character(len=128)(max_obc)

Vertical mixing coefficient OBC

obc_tra
character(len=128)(max_obc,max_prog_tracers)

Tracers OBC

rel_coef_eta_in
real(max_obc)
0.0

Relaxation coefficient to be used for incoming wave situation.

rel_coef_eta_out
real(max_obc)
0.0

Relaxation coefficient to be used for outgoing wave situation. Should be smaller then or equal to rel_coef_eta_in.

rel_eta_pnts
integer(max_obc)
1

Relax sea level at a stripe of rel_eta_pnts. Default = 1.

filename_eta
character(len=256)(max_obc)

Filename to read sea level data.

fieldname_eta
character(len=32), dimension(max_obc)

Fieldname to read sea level data.

filename_ud
character(len=256)(max_obc)
fieldname_ud
character(len=32), dimension(max_obc)
obc_relax_tracer
logical(max_obc,max_prog_tracers)
.FALSE.

logical variable that decide whether relax tracer or not. Default value is .false.

obc_flow_relax
integer(max_obc,max_prog_tracers)
1

Integer variable specifying the flow relaxation zone (flow realxation of Martinsen and Engedahl (1987). Default value is 1.

obc_consider_sources
logical(max_obc,max_prog_tracers)
.FALSE.

Logical variable specifying if source and SGS terms of the normal tracer scheme are valid. Default value is .false..

obc_tracer_no_inflow
logical(max_obc,max_prog_tracers)
.FALSE.

logical variable that decide whether apply orlanski obc on tracer or not. Default value is .false.

rel_clin_pnts
integer(max_obc,max_prog_tracers)
1

Relax a tracer at a stripe of rel_clin_pnts. Default = 1.

rel_coef_tracer_in
real(max_obc,max_prog_tracers)
0.0

Relaxation coefficient to be used for inflow situation.

rel_coef_tracer_out
real(max_obc,max_prog_tracers)
0.0

Relaxation coefficient to be used for outflow situation. Should be smaller then or equal to rel_coef_tracer_in.

fieldname_tracer
character(len=32), dimension(max_obc,max_prog_tracers)

Fieldname of a tracer.

filename_tracer
character(len=256)(max_obc,max_prog_tracers)

Filename to read a tracer. It is allowed to put all data for a boundary in one file.

debug_this_module
logical

For debugging.

debug_phase_speed
logical

Includes the phase speed into the model output.

Filename: src/mom5/ocean_core/ocean_operators.F90

Namelist: ocean_operators_nml

Name
Type
Default
Units
Description
use_legacy_DIV_UD
logical

Set use_legacy_DIV_UD=.true. to reproduce Riga results for DIV_UD on Bgrid. For the case that the model grid is tripolar grid, when barotropic_halo > 1 in ocean_barotropic.F90, then we must set use_legacy_DIV_UD=.false., since will not reproduce between different number of processors if set use_legacy_DIV_UD=.true. Tests indicate that with wider barotropic halos, there are some performance enhancements for use_legacy_DIV_UD=.false. Hence, the default is use_legacy_DIV_UD=.false. For the case that the model grid is regular lat-lon grid, use_legacy_DIV_UD could be set to .true. or .false. for any positive value of barotropic_halo. Note that the only difference between the new and old DIV_UD is order of operations induced by parentheses, which occurs in the tripolar fold region in the Arctic: old: DIV_UD(i,j) = (uh_bay - uhim_bay + vh_bax - vhjm_bax)datr_bt(i,j) new: DIV_UD(i,j) = ((uh_bay - uhim_bay) + (vh_bax - vhjm_bax))datr_bt(i,j)

Filename: src/mom5/ocean_core/ocean_parameters.F90

Namelist: ocean_parameters_nml

Name
Type
Default
Units
Description
grav
real
m/s^2

Gravitational acceleration at earth surface. Assumed to be constant throughout the ocean domain. Default grav=9.8 corresponds to the "grav" parameter from shared/constants.F90.

cp_ocean
real
J/(kg degC)

Specific heat capacity J/(kg degC) for liquid seawater. Values are taken from from Jackett etal (2006) for preTEOS10 and from TEOS-10 manual for TEOS10 value. The default values differ from that in shared/constants since the MOM defaults are more updated. Note that there is a check inside of ocean_tempsalt.F90 to ensure that cp_ocean=cp_ocean_teos10 if using the teos10 recommendations, and cp_ocean=cp_ocean_preteos10 for cases not using teos10.

cp_solid_runoff
real
J/(kg degC)

Specific heat capacity J/(kg degC) for solid water runoff via calving land ice. Default cp_solid_runoff = 2106.0 is consistent with that used in the GFDL land model.

cp_liquid_runoff
real
J/(kg degC)

Specific heat capacity J/(kg degC) for liquid water runoff from land. Default cp_liquid_runoff = 4218.0 is consistent with that used in the GFDL land model.

rho0
real
kg/m^3

Boussinesq reference density. Default rho0=1035.0 corresponds to the value in Gill (page 47), where he notes that the ocean density typically deviates less than 2 per cent from this value. But if using the Boussinesq approximation for other water bodies, such as the Baltic, then may wish to change rho0 to a more appropriate value.

tfreeze
real
Kelvin

freezing point of fresh water at standard atmos pressure. Default tfreeze=273.15

omega_earth
real
radians per second

rotation of earth in radians per second Default omega_earth= 7.2921e-5, as per equation (4.1) in Griffies (2004).

Filename: src/mom5/ocean_core/ocean_pressure.F90

Namelist: ocean_pressure_nml

Name
Type
Default
Units
Description
debug_this_module
logical

For debugging.

zero_pressure_force
logical

For debugging it is often useful to zero the pressure force to zero.

zero_correction_term_grad
logical

For debugging it is often useful to zero the contribution to the pressure gradient that arises from the "correction" term. Implemented only for depth based vertical coordinate models.

zero_diagonal_press_grad
logical

For debugging it is often useful to zero the contribution to the pressure gradient that arises from the along k-level gradient. Implemented only for depth based vertical coordinate models.

zero_eta_over_h_zstar_pressure
logical

For debugging zstar, we drop any eta/H contribution to the hydrostatic pressure. This is wrong physically, but useful for certain tests.

Filename: src/mom5/ocean_core/ocean_sbc.F90

Namelist: ocean_sbc_nml

Name
Type
Default
Units
Description
use_waterflux
logical

Set to true when wish to use real fresh water flux as opposed to virtual salt fluxes. This is the recommended method. The alternative virtual tracer flux method (use_waterflux=.false.) is not routinely used at GFDL, so it may suffer from poor testing. Default use_waterflux=.true.

waterflux_tavg
logical

Set to true when aiming to suppress the leap-frog computational mode by setting pme and river equal to a time averaged value over the present and previous time step. This method requires an extra field in the restart file. This method is not needed when using the TWO_LEVEL time tendency. It remains for those who wish to use the leap-frog THREE_LEVEL time stepping scheme. Note that it does not lead to simple checks of conservation across model components, since there is a time averaging performed for the water flux added to the ocean model. It is generally NOT recommended. Default waterflux_tavg=.false.

use_waterflux_override_calving
logical

Set to true will allow for model to incorporate the latent heating from a calving field that comes in through coupled model instantaneous interactions, but later will over-ride the mass flux from calving with a dataset that is read in from a climatology or observations. The idea is to only modify the mass contribution from calving through the over-ride, and leave the latent heat contribution untouched. Default use_waterflux_override_calving=.false.

use_waterflux_override_fprec
logical

Set to true will allow for model to incorporate the latent heating from a fprec field that comes in through coupled model instantaneous interactions, but later will over-ride the mass flux from fprec with a dataset that is read in from a climatology or observations. The idea is to only modify the mass contribution from fprec through the over-ride, and leave the latent heat contribution untouched. Default use_waterflux_override_fprec=.false.

use_waterflux_override_evap
logical

Set to true will allow for model to incorporate the latent heating from an evap field that comes in through coupled model instantaneous interactions, but later will over-ride the mass flux from evap with a dataset that is read in from a climatology or observations. The idea is to only modify the mass contribution from evap through the over-ride, and leave the latent heat contribution untouched. Default use_waterflux_override_evap=.false.

rotate_winds
logical

Set to true when need to rotate the winds onto the ocean model grid. This is needed for cases where the winds are on a spherical grid and the ocean model uses tripolar=.true. If generate the wind data on the ocean model grid, then do not need to rotate, since the rotation has already been done.

runoffspread
logical

Set to true if wish to use the spread_river_horz algorithm to spread the river runoff flux horizontally over an area into the ocean wider than set by the coupler. This option requires the setup of a table for determining the points over which we spread. Default runoffspread=.false.

calvingspread
logical

Set to true if wish to use the spread_river_horz algorithm to spread the calving flux horizontally over an area into the ocean wider than set by the coupler. This option requires the setup of a table for determining the points over which we spread. Default calvingspread=.false.

salt_restore_under_ice
logical

Logical indicating whether to restore salinity under sea ice or not. When .false. then will not restore salinity in regions where we use a "frazil" condition as a proxy for where sea-ice is present. Do not use sea ice extent from a sea ice model since we generally do not pass information regarding ice extent between the sea ice model and the ocean model.

salt_restore_as_salt_flux
logical

When running a use_waterflux=.true. model, we may choose to add the salinity from a restoring condition as a salt flux or convert to a fresh water flux. The addition of salt does not alter the sea level nor does it alter the concentration of other tracers, whereas converting to an implied water flux will alter sea level and other concentrations. So we generally recommend the default salt_restore_as_salt_flux=.true.

zero_net_salt_restore
logical

Logical indicating whether to remove the area mean of the salinity restore flux so there is a net zero input of salt to the ocean associated with restoring.

zero_net_salt_correction
logical

Logical indicating whether to remove the area mean of the salinity correction flux so there is a net zero input of salt to the ocean associated with salt correction.

zero_net_water_restore
logical

Logical indicating whether to remove the area mean of the water restore flux so there is a net zero input of water to the ocean associated with restoring.

zero_net_water_correction
logical

Logical indicating whether to remove the area mean of the water correction flux so there is a net zero input of water to the ocean associated with water correction.

zero_net_water_coupler
logical

Logical indicating whether to remove the area mean of the water passed through the coupler so there is a net zero input of fresh water to the ocean associated with p-e+r. Do so by removing area mean from pme--keep river values unchanged. Note that a choice must be made whether to remove the area mean from rivers or pme. We choose pme since it is more evenly distributed than rivers. Also note that we DO NOT include the ice melt in this normalization. The reason is that we only wish to ensure the ocean+ice system has a zero net water. When melt or form sea ice, this only transfers water between liquid ocean and solid sea ice, and no normalization is appropriate for this case. It is only the water exchanged with the land and atmosphere that is normalized.

zero_net_water_couple_restore
logical

This logical keeps the total water forcing on the ocean+ice system to a global mean of zero at each time step. We DO NOT include the ice melt in this normalization. Setting zero_net_water_couple_restore to true may be appropriate when running an ice-ocean model using a bulk formulae to compute evaporation (e.g., CORE) and when only providing a weak (or zero) salinity restoring. It is not appropriate when running a coupled ocean-atmosphere model, where the moisture budget should be conserved without an artificial removal of the global mean.

zero_net_pme_eta_restore
logical
debug_water_fluxes
logical

Logical for debugging water fluxes. Must be true for any of the options zero_water_fluxes, zero_calving_fluxes, zero_pme_fluxes or zero_runoff_fluxes to be enabled. Default debug_water_fluxes=.false.

zero_water_fluxes
logical

Logical for debugging to zero the pme, river, and pme_taum1 into ocean, over-riding any input from Ice_ocean_boundary. Default zero_water_fluxes=.false.

zero_pme_fluxes
logical

Logical for debugging to zero the pme flux passed into the ocean. Default zero_pme_fluxes=.false.

zero_calving_fluxes
logical

Logical for debugging to zero the calving flux passed into the ocean. Default zero_calving_fluxes=.false.

zero_runoff_fluxes
logical

Logical for debugging to zero the runoff flux passed into the ocean. Default zero_runoff_fluxes=.false.

zero_river_fluxes
logical

Logical for debugging to zero the river (calving+runoff) flux passed into the ocean. Default zero_river_fluxes=.false.

convert_river_to_pme
logical

Logical for debugging. Here we add the river water input (calving+runoff) to pme, then set river=calving=runoff=0.0. Default convert_river_to_pme=.false.

zero_heat_fluxes
logical

Logical for debugging to set all heat fluxes into the ocean to zero, over-riding any input from Ice_ocean_boundary. Default is .false.

zero_surface_stress
logical

Logical for debugging to zero all surface stress applied to the ocean, over-riding any input from Ice_ocean_boundary. Default is .false.

read_restore_mask
logical

For reading in a mask that selects regions of the domain that are restored (mask=1) or not restored (mask=0). Default read_restore_mask=.false., whereby restore_mask is set to tmask(k=1).

restore_mask_gfdl
logical

For modifying the restore mask based on reading in the GFDL regional mask. Default restore_mask_gfdl=.false.

land_model_heat_fluxes
logical

For the case where land model passes through the coupler the heat flux associated with the liquid runoff and calving land ice fields. This heat flux is computed relative to 0C, and takes the form heat flux = mass flux of water temp of water heat capacity, where the water can be either liquid or solid. For many coupled models, the water temperature is assumed to be that of the SST. But more complete land models now carry the heat of its water relative to 0C, in which case the ocean model does not need to assume anything about the heat content of the land water. Default land_model_heat_fluxes=.false.

do_flux_correction
logical

For applying surface flux correction to to a tracer or wind stress field. This code is used at GFDL for idealized perturbation experiments, such as when one wishes to artificially enhance the wind stress to test model sensitivity. It is also appropriate for coupled models that may require a modification to the fluxes arrising from a coupled model, via reading in information from a pre-defined data file, Default do_flux_correction=.false.

sbc_heat_fluxes_const
logical

Logical for setting the surface heat flux from the coupler to a global constant. Default is sbc_heat_fluxes_const=.false.

sbc_heat_fluxes_const_seasonal
logical

Logical for setting the surface heat flux from the coupler to a global constant, and giving it a seasonally varying amplitude. Default is sbc_heat_fluxes_const_seasonal=.false.

use_constant_sss_for_restore
logical

To over-ride the sfc_restore.nc value for salinity restoring. use_constant_sss_for_restore=.false.

use_constant_sst_for_restore
logical

To over-ride the sfc_restore.nc value for temp restoring. use_constant_sst_for_restore=.false.

use_ideal_runoff
logical

To add an idealized liquid runoff read from a file. This runoff is assumed to enter the ocean with the same temperature as SST, and to be liquid. It is an additional runoff, so that any other runoff remains unaltered. The runoff coming from idealized runoff is NOT subject to the global normalization realized from zero_net_water_coupler=.true. Default use_ideal_runoff=.false.

use_ideal_calving
logical

To add an idealized solid runoff or calving read from a file. This calving runoff is assumed to require melting, so it extracts latent heat of fusion from the liquid ocean The runoff coming from idealized cavling is NOT subject to the global normalization realized from zero_net_water_coupler=.true. Default use_ideal_calving=.false.

read_stokes_drift
logical

This option is to be used when coupling to a surface wave model such as Wavewatch III that provides both the Stokes drift (m/s) velocity at the ocean surface, and a decay scale for projecting the Stokes drift into the interior. Default read_stokes_drift = .false.

constant_sss_for_restore
real
psu

The SSS value used if use_constant_sss_for_restore=.true. Default constant_sss_for_restore=35.0

constant_sst_for_restore
real
degC

The SST value used if use_constant_sst_for_restore=.true. Default constant_sst_for_restore=12.0

sbc_heat_fluxes_const_value
real
W/m2

Value for the constant heat flux when using sbc_heat_fluxes_const=.true. Default sbc_heat_fluxes_const_value=0.0.

ice_salt_concentration
real
kg salt / kg ice

The salt concentration of sea ice. This is taken as a bulk value, and should be the same as that used by the ice model. Default is ice_salt_concentration=0.005, as that is the value used in the GFDL coupled climate model.

runoff_salinity
real
g salt / kg runoff water (ppt)

The salinity of river runoff water. Default is runoff_salinity=0.0.

runoff_temp_min
real
DegC

The minimum temperature that river runoff into the ocean is assigned. Default runoff_temp_min=0.0.

temp_restore_tscale
real
day

Time scale in days for restoring temperature within the top model grid cell.

salt_restore_tscale
real
day

Time scale in days for restoring salinity within the top model grid cell.

eta_restore_tscale
real
day

Time scale in days for restoring surface height to produce a modification to surface water flux. This option is only available when run with use_waterflux=.true.

max_ice_thickness
real
m

When coupling MOM to an ice model, the sea ice thickness may need to be restricted to prevent vanishing top-level in MOM. Set max_ice_thickness (meters) < dzt(k=1) to restrict. This truncation avoids the numerical problem but we loose mass conservation in the coupled sea ice and ocean system. We also alter the pressure felt on the ocean as applied by the sea ice. Different vertical coordinates are needed to do the problem more realistically. Note that the problem of vanishing top layer is removed when use either ZSTAR or PSTAR as vertical coordinate.

salinity_ref
real
psu

Reference salinity used for converting fresh water flux to salt flux.

max_delta_salinity_restore
real
ppt

When computing the restoring flux for salinity, we can define a maximum absolute value for the difference between salinity(k=1) and the restoring salinity from a dataset. This approach is useful especially in NAtl western boundary, where poor Gulf Stream separation can lead to large salinity biases. If restore too much the salinity field, we can spuriously transport large amounts of fresh water to the subpoloar gyre, thus impacting the overturning circulation too much. If max_delta_salinity_restore < 0.0, then will NOT provide a max to the delta salinity; will instead compute an unbounded restoring flux. Default max_delta_salinity_restore=-0.50.

temp_correction_scale
real
dimensionless

A scale multiplying the flux correction for temperature. Default temp_correction_scale=0.0.

salt_correction_scale
real
dimensionless

A scale multiplying the flux correction for salinity. Default salt_correction_scale=0.0.

tau_x_correction_scale
real
dimensionless

A scale multiplying the flux correction for tau_x. Default tau_x_correction_scale=0.0.

tau_y_correction_scale
real
dimensionless

A scale multiplying the flux correction for tau_y. Default tau_y_correction_scale=0.0.

constant_hlf
logical

Treat latent heat of fusion as a constant. Otherwise, use the TEOS-10 approach in which hlf is function of surface salinity. Note, TEOS-10 approach is only valid using Absolute Salinity and conservative temperature as the prognostic fields. Default constant_hlf = .true., which is the case for pre-TEOS-10 methods.

constant_hlv
logical

Treat latent heat of vaporization as a constant. Otherwise, use the TEOS-10 approach in which hlf is function of surface salinity. Note, TEOS-10 approach is only valid using Absolute Salinity and conservative temperature as the prognostic fields. Default constant_hlv = .true., which is the case for pre-TEOS-10 methods.

avg_sfc_velocity
logical

If set to true, the u and v fields passed up to the sea ice are averaged over a coupling interval. TRUE by default.

avg_sfc_temp_salt_eta
logical

If set to true, the t, s and sea_level fields passed up to the sea ice are averaged over a coupling interval. TRUE by default.

use_full_patm_for_sea_level
logical

The option use_full_patm_for_sea_level allows for the passing of the sea level including the full weight of sea ice back to the ice model. This approach maintains the max weight on the liquid ocean according to the nml variable max_ice_thickness. But it does allow the sea ice to know when there is actually more sea ice than that set by max_ice_thickness. This option then provides for a negative feedback on the runaway growth of sea ice, since the full pressure acting to make the ice flow will be correctly felt. This is a new option, and is not fully tested, So the default is use_full_patm_for_sea_level=.false

do_bitwise_exact_sum
logical

Set true to do bitwise exact global sum. When it is false, the global sum will be non-bitwise_exact, but will significantly increase efficiency. The default value is do_bitwise_exact_sum=.true. in order to ensure answers do not change when alter processors. But if wish to enhance the efficiency of coupled ocean-ice models that use one of the global normalization options zero_net_salt_restore =.true. zero_net_salt_correction =.true. zero_net_water_restore =.true. zero_net_water_correction =.true. zero_net_water_coupler =.true. zero_net_water_couple_restore=.true. then one may wish to consider setting do_bitwise_exact_sum=.false.

Filename: src/mom5/ocean_core/ocean_thickness.F90

Namelist: ocean_thickness_nml

Name
Type
Default
Units
Description
rescale_mass_to_get_ht_mod
logical

Expedient to allow for the computation of ht_mod. in the case when initialize_zero_eta=.true. Here, we run the pressure based model with a rescaled mass that is sufficient to maintain non-negative dzt, at least for a short period. This allows for one to run a day integration to produce ht_mod. rescale_mass_to_get_ht_mod=.true. will produce spurious results in general due to problems with the pressure gradient computation. So it is not recommended for more than initial day or so. Default rescale_mass_to_get_ht_mod=.false.

thickness_method
character(len=32)

To determine whether use energetic method or finite volume method to compute the thickness of a grid cell. Options are thickness_method=energetic or thickness_method=finitevolume. There is little overall difference in results for pbot and eta. However, it has been found that for realistic bottom topography simulations, the vertical velocity component is very noisy with the finitevolume approach. So this approach is considered experimental. The default is thickness_method='energetic'.

linear_free_surface
logical

For debugging, set the thickness of top cell in geopotential model to time independent values. This option is needed if use the kappa_sort diagnostic. Default linear_free_surface=.false.

full_step_topography
logical

For case where with to only have the dzt be determined by the full step bottom topography. This nml option is provided only for backwards compatibility with older mom experiments using the full step topog.

enforce_positive_dzt
logical

For cases where wish to run model even with negative thickness. Default enforce_positive_dzt=.false.

debug_this_module
logical

For debugging.

debug_this_module_detail
logical

For debugging pressure coordinate models. Lots of grid information printed.

write_a_restart
logical

Set true to write a restart. False setting only for rare cases where wish to benchmark model without measuring the cost of writing restarts and associated chksums. Default is write_a_restart=.true.

read_rho0_profile
logical

To read in an initial rho0(z) profile to assist in defining the initial settings for the pressure increments dst, for use in setting the pressure-based vertical coordinate grids. Ideally, this profile is determined by the level averaged density in the initial conditions. Note that it is essential to have rho0_profile have a sensible value at all depths even if there is no water there, since there are places where we divide by rho0_profile in rock. Also, be mindful that with denser water at depth, the pressure levels will be coarser at depth than if using the trivial density profile rho0(k)=rho0. This option is experimental, so it is recommended that user maintain the default read_rho0_profile=.false.

pbot0_simple
logical

For testing purposes, have this option compute pbot0=grho0ht with rho0= constant. Default pbot0_simple=.false.

initialize_zero_eta
logical

For pressure-based models, we can (with some work) initialize the model to have a zero surface height. The recomended approach is to allow the surface height to be whatever it wants to be, and let adjustments smooth it over time. Default initialize_zero_eta=.false.

read_rescale_rho0_mask
logical

For reading in a basin mask of use to re-define rho0 in isolated regions such as the Black Sea. This is used for modifying the definition of the pressure or pstar levels during the initialization of the thicknesses dst. This approach is appropriate in general, but has only been tested when modify the pressure levels within a fully enclosed basin. Default read_rescale_rho0_mask=.false.

rescale_rho0_mask_gfdl
logical

For specifying the rescale_rho0_mask based on reading in the GFDL regional mask. Default rescale_rho0_mask_gfdl=.false.

update_dzwu_k0
logical

A bug in certain versions of MOM4p1 was present, whereby Thickness%dzwu(i,j,k=0) was never updated, except for GEOPOTENTIAL vertical coordinates. This logical, whose default is update_dzwu_k0=.true., is provided for legacy purposes. To test the older results, have update_dzwu_k0=.false.

max_num_bad_print
integer

Maximum bad grid cells printout for identifying problematic simulations. Default max_num_bad_print=25.

rescale_rho0_value
real

Fractional value for rescaling rho0 in the a region. Default rescale_rho0_value=1.0.

rescale_rho0_basin_label
real

For rescaling rho0 in a basin with a number rescale_rho0_basin_label. For the Black Sea using GFDL basin masks in OM3, rescale_rho0_basin_label=7.0. Default rescale_rho0_basin_label=-1.0

thickness_dzt_min_init
real
m

For determining a modified bottom depth array that is required to ensure pressure model, based on initial in-situ density, retains a nontrivial bottom cell thickness in the case when initialize_zero_eta=0.0 Default thickness_dzt_min_init=5.0.

thickness_dzt_min
real
m

Minimum dzt set when enforce_positive_dzt set true. Default thickness_dzt_min=1.0.

depth_min_for_sigma
real
m

For sigma coordinates, have minimum depth so that have layers defined globally. Masks will zero out results over land, but for numerics it is useful to compute everywhere. Default depth_min_for_sigma=0.01.

epsilon_init_thickness
real

For determining how strict we are to check for the thickness of a column when initializing pressure based vertical coordinate models.

Filename: src/mom5/ocean_core/ocean_topog.F90

Namelist: ocean_topog_nml

Name
Type
Default
Units
Description
flat_bottom
logical

For debugging, it is often useful to over-ride the grid spec file and simply make the domain flat bottom.

flat_bottom_kmt
integer

Number of depth levels to use for the flat_bottom option.

flat_bottom_ht
real

Depth to make the flat_bottom.

min_thickness
real

min_thickness is only used for Mosaic grid. Since there is no kmt available in mosaic grid, need to set min_thickness to configure kmt based on ht and zw. Default min_thickness=1.0 metre.

kmt_recompute_offset
integer

To recompute the kmt array based on min_thickness, with an offset determined by kmt_recompute_offset. Default kmt_recompute_offset=0.

kmt_recompute
logical

To recompute the kmt array based on min_thickness. This step is not recommended in general, since it can modify the kmt array which may be in the grid spec file. But it may be of use for specialized situations, such as when you wish to use the same topography file with a refined vertical resolution.

write_topog
logical
debug_this_module
logical

For debugging.

Filename: src/mom5/ocean_core/ocean_velocity.F90

Namelist: ocean_velocity_nml

Name
Type
Default
Units
Description
adams_bashforth_third
logical

For a third order treatment of the velocity advection. This is stable and so needs no temporal dissipation (Section 2.3.6 of Durran). This is the model default.

adams_bashforth_epsilon
real
dimensionless

Dimensionless parameter for 2nd order Adams-Bashforth implementation of velocity advection. Values between 0.5 and 1.0 are recommended. Value of 0.5 leads to second order accurate, but it is formally weakly unstable (Durran, Section 2.3.4).

update_velocity_via_uprime
logical

When updating the velocity, this method first computes uprime as the updated velocity minus the barotropic pressure gradient. This approach is motivated from the rigid lid approach, in which the surface pressure was never used to update the barotropic fields. With the explicit free surface, we have the choice to update the full velocity field, with the barotropic contributions to the pressure field resulting from a time average in the external mode algorithm. This approach is for testing only, and it has been found to be unstable for many cases. update_velocity_via_uprime=.true. uses the older aproach, in which the udrho,vdrho fields are taken from the external mode module. update_velocity_via_uprime=.false. only takes the time averaged pressure from the external mode, and thus updates the full velocity and so recomputes the udrho,vdrho fields. Default update_velocity_via_uprime=.true. The case of update_velocity_via_uprime=.false. is for testing only. It is not supported for general use.

zero_tendency
logical

For debugging. Will freeze the baroclinic velocity fields.

zero_tendency_explicit_a
logical

For debugging. Will not use explicit-a part of the tendency.

zero_tendency_explicit_b
logical

For debugging. Will not use explicit-b part of the tendency.

zero_tendency_implicit
logical

For debugging. Will not use implicit part of the tendency.

truncate_velocity
logical

Truncate the baroclinic velocity to a maximum value. Useful for cases where the initial spin-up initiates spuriously large model velocities that would otherwise cause the model to blow-up. Also can be used as a very simple "polar filter" in cases where have spherical coordinates and wish to avoid using the traditional polar filters.

truncate_verbose
logical

For verbose printout

truncate_velocity_lat
real
dimensionless

Latitude poleward of which we truncate the velocity. Useful in cases when wish to truncate the velocity only in polar regions. Default is 0.0

truncate_velocity_value
real
meter/sec

Speed above which will truncate the baroclinic velocity

use_constant_velocity
logical

For running with time independent constant velocity. For use with idealized cases. Default=.false.

constant_u
real
meter/sec

For running with use_constant_velocity. Set the i-velocity component to this value. Default constant_u=0.0

constant_v
real
meter/sec

For running with use_constant_velocity. Set the j-velocity component to this value. Default constant_v=0.0

max_cgint
real

Maximum internal gravity wave speed--used for diagnosing conservative estimate of stable time steps.

debug_this_module
logical

For debugging.

write_a_restart
logical

Set true to write a restart. False setting only for rare cases where wish to benchmark model without measuring the cost of writing restarts and associated chksums. Default is write_a_restart=.true.

Filename: src/mom5/ocean_core/ocean_velocity_advect.F90

Namelist: ocean_velocity_advect_nml

Name
Type
Default
Units
Description
debug_this_module
logical

For debugging

zero_velocity_advect_horz
logical

For debugging, it is often useful to remove horizontal advection of velocity.

zero_velocity_advect_vert
logical

For debugging, it is often useful to remove vertical advection of velocity.

velocity_advect_centered
logical

For using the standard second order centered method for computing the advection of linear momentum. This is the default: velocity_advect_centered=.true.

velocity_advect_upwind
logical

For using the first order upwind method for computing the advection of linear momentum. Default: velocity_advect_upwind=.false.

Filename: src/mom5/ocean_core/oda_driver.F90

Namelist: oda_nml

Name
Type
Default
Units
Description
max_profiles
integer

Size of allocation for profile data

max_sfc_obs
integer

Size of allocation for surface observations

assim_method
character(len=8)

Options are: Var2d, EAKF and NO_ASSIM

do_iau
logical

Incremental analysis update (evenly distribute increments between calls to ODA.)

do_convect_adjust
logical

Adjust for gravitational instability in model after applying increments.

save_omf_snaps
logical
save_oma_snaps
logical
nk_asm
integer

Bottom model level for data mask

assim_start_lat
real

Southern data mask boundary

assim_end_lat
real

Northern data mask boundary

assim_interval
integer

Time between calls to oda (hours)

assim_layout
integer(2)
use_this_module
logical

src/mom5/ocean_diag

Filename: src/mom5/ocean_diag/ocean_adv_vel_diag.F90

Namelist: ocean_adv_vel_diag_nml

Name
Type
Default
Units
Description
diag_step
integer
dimensionless

Number of time steps between which compute the diagnostics.

max_cfl_value
real
dimensionless

Critical value for Courant number, above which the model will be brought down.

large_cfl_value
real
dimensionless

Large value for Courant number, above which will write some diagnostics.

verbose_cfl
logical

For printing out lots of information about regions of large Courant numbers.

Filename: src/mom5/ocean_diag/ocean_drifters.F90

Namelist: ocean_drifters_nml

Name
Type
Default
Units
Description
use_this_module
logical

Must be true to run this module. Default use_this_module=.false.

output_interval
integer

Interval in timesteps between drifter writes

Filename: src/mom5/ocean_diag/ocean_tracer_diag.F90

Namelist: ocean_tracer_diag_nml

Name
Type
Default
Units
Description
tracer_conserve_days
real
days

Number of days between which compute the tracer conservation diagnostics.

debug_diagnose_mixingA
logical

Set true for help with debugging the diagnostic for mixing.

debug_diagnose_mixingB
logical

Set true for more help with debugging the diagnostic for mixing. Lots of output.

debug_diagnose_mixingC
logical

Set true for more help with debugging the diagnostic for mixing. Lots of output.

debug_diagnose_mixingD
logical

Set true for more help with debugging the diagnostic for mixing. Lots of output.

rho_grad_max
real
kg/m^3/m

max vertical density gradient (kg/m^3/m) used in computing kappa sorted

rho_grad_min
real
kg/m^3/m

min vertical density gradient (kg/m^3/m) used in computing kappa sorted in the diagnostic mixing sorted.

smooth_kappa_sort
integer

Number of 1-2-1 smooths applied to kappa_sort

diag_step
integer
dimensionless

Number of time steps between which compute the diagnostics.

buoyancy_crit
real
m/s^2

Critical buoyancy difference relative to surface for computing mixed layer depth. Default buoyancy_crit=0.0003.

dtheta_crit
real
degC

Critical temperature difference relative to surface for computing mixed_layer_depth_dtheta . Default dtheta_crit=2.0.

psu2ppt
real

The preTEOS10 EOS used in MOM requires salinity to use the Practical Salinity Scale (pss). This scale is also known as the Practical Salinity Unit (psu). However, salinity as an absolute concentration in parts per thousand is more convenient to use when performing budget analyses such as in this module. Conversion between pss and ppt depends on the precise ratio of ions in the seawater. Hence, the conversion is not constant. However, it is close to a constant, as reported in Jackett etal (2004). For purposes of budgets, we take this conversion as a constant. The conversion is s(ppt) = psu2ppt s(psu) where again s(psu) is what MOM carries as its prognostic salinity field when preTEOS10 EOS is used. Jackett etal (2004), correcting a type in equation (53) of Feistel (2003), report that s(ppt) = 1.004867 s(psu)

do_bitwise_exact_sum
logical

Set true to do bitwise exact global sum. When it is false, the global sum will be non-bitwise_exact, but will significantly increase efficiency. The default value is false.

frazil_factor
real
smooth_mld
logical

Smooth the diagnosed mixed layer depth. Default smooth_mld=.false.

smooth_mld_for_subduction
logical

Smooth the diagnosed mixed layer depth to be used for subduction diagnostics. Default smooth_mld_for_subduction=.true.

Filename: src/mom5/ocean_diag/ocean_tracer_util.F90

Namelist: ocean_tracer_util_nml

Name
Type
Default
Units
Description
rebin_onto_rho_all_values
logical

Set true to if wish to bin all values into density classes, even those cells whose density is outside the max and min range of the density bins. The default is rebin_onto_rho_all_values=.true., which means those cells with extreme density values will be included. This default is consistent with the default computation of transport_on_nrho.

debug_diagnose_mass_of_layer
logical

To help debug the algorithm to diagnose mass of fluid within a neutral density layer. Default: debug_diagnose_mass_of_layer=.false.

epsln_diagnose_mass_of_layer
real

Relative mass difference allowable between layer and level total mass. Default: epsln_diagnose_mass_of_layer=1e-4.

Filename: src/mom5/ocean_diag/ocean_velocity_diag.F90

Namelist: ocean_velocity_diag_nml

Name
Type
Default
Units
Description
diag_step
integer
dimensionless

Number of time steps between which compute the diagnostics.

energy_diag_step
integer

Perform energy analysis every n timesteps (1==every time step). This diagnostic is expensive, so should be used sparingly during production runs.

land_cell_num_max
integer
dimensionless

Maximum number of land cells where will printout nonzero velocity points. Default land_cell_num_max=100.

max_cfl_value
real
dimensionless

Critical value for Courant number, above which the model will be brought down.

large_cfl_value
real
dimensionless

Large value for Courant number, above which will write some diagnostics.

verbose_cfl
logical

For printing out lots of information about regions of large Courant numbers.

do_bitwise_exact_sum
logical

Set true to do bitwise exact global sum. When it is false, the global sum will be non-bitwise_exact, but will significantly increase efficiency. The default value is false.

debug_this_module
logical

For some debugging purposes

src/mom5/ocean_param/gotm-4.0/turbulence

Name
Type
Default
Units
Description
Ric
REALTYPE
kpp_interior
logical
clip_mld
logical
Name
Type
Default
Units
Description
scnd_method
integer
kb_method
integer
epsb_method
integer
scnd_coeff
integer
cc1
REALTYPE
Name
Type
Default
Units
Description
ce1
REALTYPE
ce2
REALTYPE
ce3minus
REALTYPE
ce3plus
REALTYPE
sig_k
REALTYPE
sig_e
REALTYPE
sig_peps
logical
Name
Type
Default
Units
Description
cm0_fix
REALTYPE
Prandtl0_fix
REALTYPE
cw
REALTYPE
compute_kappa
logical
kappa
REALTYPE
compute_c3
logical
ri_st
REALTYPE
length_lim
logical
galp
REALTYPE
const_num
REALTYPE
const_nuh
REALTYPE
k_min
REALTYPE
eps_min
REALTYPE
kb_min
REALTYPE
epsb_min
REALTYPE
Name
Type
Default
Units
Description
k_ubc
integer
k_lbc
integer
kb_ubc
integer
kb_lbc
integer
psi_ubc
integer
psi_lbc
integer
ubc_type
integer
lbc_type
integer
Name
Type
Default
Units
Description
compute_param
logical
gen_m
REALTYPE
gen_n
REALTYPE
gen_p
REALTYPE
cpsi1
REALTYPE
cpsi2
REALTYPE
cpsi3minus
REALTYPE
cpsi3plus
REALTYPE
sig_kpsi
REALTYPE
sig_psi
REALTYPE
gen_d
REALTYPE
gen_alpha
REALTYPE
gen_l
REALTYPE
Name
Type
Default
Units
Description
iw_model
integer
alpha
REALTYPE
klimiw
REALTYPE
rich_cr
REALTYPE
numiw
REALTYPE
nuhiw
REALTYPE
numshear
REALTYPE
Name
Type
Default
Units
Description
turb_method
integer
tke_method
integer
len_scale_method
integer
stab_method
integer
Name
Type
Default
Units
Description
e1
REALTYPE
e2
REALTYPE
e3
REALTYPE
sq
REALTYPE
sl
REALTYPE
my_length
integer
new_constr
logical

src/mom5/ocean_param/lateral

Filename: src/mom5/ocean_param/lateral/ocean_bih_friction.F90

Namelist: ocean_bih_friction_nml

Name
Type
Default
Units
Description
bih_friction_scheme
character(len=10)

To determine the biharmonic friction scheme: "const" or "general"

debug_this_module
logical

For debugging.

write_a_restart
logical

Set true to write a restart. False setting only for rare cases where wish to benchmark model without measuring the cost of writing restarts and associated chksums. Default is write_a_restart=.true.

Filename: src/mom5/ocean_param/lateral/ocean_bih_tracer.F90

Namelist: ocean_bih_tracer_nml

Name
Type
Default
Units
Description
abih
real
m^4/sec

This is the value for the space-time constant biharmonic diffusivity.

vel_micom
real
m/sec

Velocity scale that is used for computing the MICOM diffusivity.

tracer_mix_micom
logical

If .true., then the diffusivity is set according to a velocity scale times the cube of the grid spacing. It is based on an approach recommended by Eric Chassignet that is used in the Miami Isopycnal Model.

use_this_module
logical

Must be true to use this module

horz_z_diffuse
logical

To compute fluxes along surfaces of constant depth. This operation must necessarily be approximate for the two cases (i) non-geopotential vertical coordinates, (2) next to partial bottom step topography. There are cases where use of this operator can lead to spurious creation of extrema due to truncation errors associated with the "slope" term. The option to use horz_z_diffuse=.true. is maintained for legacy purposes alone.

horz_s_diffuse
logical

To compute diffusion along surfaces of constant vertical s-coordinate.

read_diffusivity_mask
logical

Allows for reading of a mask that to apply diffusivity only in selected regions. Default read_diffusivity_mask=.false.

Filename: src/mom5/ocean_param/lateral/ocean_bihcgrid_friction.F90

Namelist: ocean_bihcgrid_friction_nml

Name
Type
Default
Units
Description
k_smag_iso
real
dimensionless

This is the dimensionless Smagorinsky coefficient used to set the scale of the Smagorinsky isotropic viscosity.

k_smag_aniso
real
dimensionless

This is the dimensionless Smagorinsky coefficient used to set the scale of the Smagorinsky anisotropic viscosity.

vel_micom_iso
real
m/sec

Velocity scale that is used for computing the MICOM isotropic viscosity.

vel_micom_aniso
real
m/sec

Velocity scale that is used for computing the MICOM anisotropic viscosity.

eq_vel_micom_iso
real

Velocity scale that is used for computing the MICOM isotropic viscosity within a user specified equatorial band.

eq_vel_micom_aniso
real

Velocity scale that is used for computing the MICOM anisotropic viscosity within a user specified equatorial band.

eq_lat_micom
real

Equatorial latitude band (degrees) within which the MICOM viscosity is set according to eq_vel_micom_iso and eq_vel_micom_aniso.

equatorial_zonal_lat
real

Latitudinal band to use the zonal friction orientation.

equatorial_zonal
logical

Orient the anisotropic friction within a latitudinal band according to zonal direction.

ncar_boundary_scaling
logical
ncar_boundary_scaling_read
logical
ncar_vconst_4
real
ncar_vconst_5
integer
ncar_rescale_power
integer
neptune
logical

Set to true for computing friction relative to Neptune barotropic velocity. Default neptune=.false.

neptune_smooth
logical

For doing a horizontal 1-2-1 smoothing on the diagnosed neptune velocity scale. Default neptune_smooth=.true.

neptune_smooth_num
integer

Number of smoothing passes for neptune velocity. Default neptune_smooth_num=1.

neptune_length_eq
real
m

Length scale used to compute Neptune velocity at equator.

neptune_length_pole
real
m

Length scale used to compute Neptune velocity at pole.

neptune_depth_min
real
m

Minimum depth scale used for computing Neptune velocity. Default neptune_depth_min=100.0

use_side_drag_friction
logical

For converting friction at U-cells next to walls into a drag law, as per Deremble et al. Use cdbot_array from ocean_core/ocean_bbc.F90 to compute drag force. Default use_side_drag_friction=.false.

side_drag_friction_scaling
real

Dimensionless scaling used for cdbot_array when setting side drag friction. So the effective side dragy coefficient is side_drag_friction_scaling*cdbot_array. Default side_drag_friction_scaling=1.0.

side_drag_friction_max
real
N/m^2

Maximum magnitude of the side drag induced friction. This parameter can be useful especially for pressure models where the bottom cells can be quite thin and subject to sporadic large magnitudes. We do the same thing with bottom drag calculations in ocean_bbc. Default side_drag_friction_max=1.0.

side_drag_friction_uvmag_max
real
m/s

Maximum magnitude of horizontal velocity used to compute the side drag friction. This parameter can be useful especially for pressure models where the bottom cells can be quite thin and subject to sporadic large magnitudes. We do the same thing with bottom drag calculations. Default side_drag_friction_uvmag_max=10.0.

use_this_module
logical

Must be true to use this module. Default is false.

debug_this_module
logical

For debugging by printing checksums.

Filename: src/mom5/ocean_param/lateral/ocean_bihcst_friction.F90

Namelist: ocean_bihcst_friction_nml

Name
Type
Default
Units
Description
use_this_module
logical

Must be true to use this module. Default is false.

debug_this_module
logical

For debugging by printing checksums.

abih
real
m^4/sec

This is the value for the space-time constant biharmonic viscosity.

vel_micom
real
m/sec

Velocity scale that is used for computing the MICOM viscosity.

eq_vel_micom
real
m/sec

Velocity scale that is used for computing the MICOM viscosity within a latitude band surrounding the equator. This is useful for some models of enhanced equatorial resolution that can maintain numerical integrity in this region with less friction than outside the tropical band.

eq_lat_micom
real

Equatorial latitude band (degrees) within which the MICOM viscosity is set according to eq_vel_micom.

velocity_mix_micom
logical

If .true., then the viscosity is set according to a velocity scale times the cube of the grid spacing. It is based on an approach recommended by Eric Chassignet that is used in the Miami Isopycnal Model.

Filename: src/mom5/ocean_param/lateral/ocean_bihgen_friction.F90

Namelist: ocean_bihgen_friction_nml

Name
Type
Default
Units
Description
k_smag_iso
real
dimensionless

This is the dimensionless Smagorinsky coefficient used to set the scale of the Smagorinsky isotropic viscosity.

k_smag_aniso
real
dimensionless

This is the dimensionless Smagorinsky coefficient used to set the scale of the Smagorinsky anisotropic viscosity.

vel_micom_iso
real
m/sec

Velocity scale that is used for computing the MICOM isotropic viscosity.

vel_micom_aniso
real
m/sec

Velocity scale that is used for computing the MICOM anisotropic viscosity.

eq_vel_micom_iso
real

Velocity scale that is used for computing the MICOM isotropic viscosity within a user specified equatorial band.

eq_vel_micom_aniso
real

Velocity scale that is used for computing the MICOM anisotropic viscosity within a user specified equatorial band.

eq_lat_micom
real

Equatorial latitude band (degrees) within which the MICOM viscosity is set according to eq_vel_micom_iso and eq_vel_micom_aniso.

vel_micom_bottom
real
m/sec

Velocity scale that is used for computing the MICOM viscosity for 5point Laplacian at the bottom.

equatorial_zonal_lat
real

Latitudinal band to use the zonal friction orientation.

visc_crit_scale
real
dimensionless

Scaling factor used to determine the critical viscosity, above which the viscosity is not allowed to reach. Use visc_crit_scale < 1.0 for cases where the visc_crit from linear stability allows for still too large of a viscosity. Use visc_crit_scale>1.0 when wish to allow for larger viscosity. Default is visc_crit_scale=1.0.

equatorial_zonal
logical

Orient the anisotropic friction within a latitudinal band according to zonal direction.

bottom_5point
logical

To alleviate problems with small partial cells, it is often necessary to reduce the operator to the traditional 5-point Laplacian at the ocean bottom. This logical implements this mixing. Default bottom_5point=.false.

ncar_boundary_scaling
logical

To enhance the velocity scale used in western boundaries for the isotropic and anisotropic background viscosities, we compute a scaling using the algorithm from the laplacian NCAR anisotropic scheme. Default ncar_boundary_scaling=.false.

ncar_boundary_scaling_read
logical

To read in the ncar boundary scaling field rather than generating it during initialization. Generating during initialization can be a bottle-neck on fine resolution models since there are some global 2d fields needed. So if the rescaling is produced once and then saved, it can be read in during subsequent runs without incurring the slowdown of re-generating the scalings. Default ncar_boundary_scaling_read=.false.

ncar_vconst_4
real
1/cm

Inverse damping length for exponential falloff of the velocity scale as move eastward away from western boundary. Default ncar_vconst_4=2.e-8.

ncar_vconst_5
integer
dimensionless

For determining number of grid points in boundary calculation. Default ncar_vconst_5=3.

ncar_rescale_power
integer
dimensionless

For determining rescaling of the viscosity so to enhance the friction near the western boundaries. Default ncar_rescale_power=1.

neptune
logical

Set to true for computing friction relative to Neptune barotropic velocity. Default neptune=.false.

neptune_smooth
logical

For doing a horizontal 1-2-1 smoothing on the diagnosed neptune velocity scale. Default neptune_smooth=.true.

neptune_smooth_num
integer

Number of smoothing passes for neptune velocity. Default neptune_smooth_num=1.

neptune_length_eq
real
m

Length scale used to compute Neptune velocity at equator. Default neptune_length_eq= 4.2e3 from Maltrud and Holloway.

neptune_length_pole
real
m

Length scale used to compute Neptune velocity at pole. Default neptune_length_pole= 17.0e3 from Maltrud and Holloway.

neptune_depth_min
real
m

Minimum depth scale used for computing Neptune velocity. Default neptune_depth_min=100.0 from Maltrud and Holloway.

neptune_scaling
real

Overall scaling parameter to help tune neptune. Default neptune_scaling=1.0

visc_diverge_scaling
real

Dimensionless scaling used for divergence based viscosity. Default visc_diverge_scaling=0.0 turns off the scheme. visc_diverge_scaling=10.0 produces sensible viscosities for 1-degree model. May need tuning for different resolutions.

use_side_drag_friction
logical

For converting friction at U-cells next to walls into a drag law, as per Deremble et al. Use cdbot_array from ocean_core/ocean_bbc.F90 to compute drag force. Default use_side_drag_friction=.false.

side_drag_friction_scaling
real

Dimensionless scaling used for cdbot_array when setting side drag friction. So the effective side dragy coefficient is side_drag_friction_scaling*cdbot_array. Default side_drag_friction_scaling=1.0.

side_drag_friction_max
real
N/m^2

Maximum magnitude of the side drag induced friction. This parameter can be useful especially for pressure models where the bottom cells can be quite thin and subject to sporadic large magnitudes. We do the same thing with bottom drag calculations. Default side_drag_friction_max=1.0.

side_drag_friction_uvmag_max
real
m/s

Maximum magnitude of horizontal velocity used to compute the side drag friction. This parameter can be useful especially for pressure models where the bottom cells can be quite thin and subject to sporadic large magnitudes. We do the same thing with bottom drag calculations. Default side_drag_friction_uvmag_max=10.0.

use_this_module
logical

Must be true to use this module. Default is false.

debug_this_module
logical

For debugging by printing checksums.

read_aiso_bih_back
logical

Filename: src/mom5/ocean_param/lateral/ocean_lap_friction.F90

Namelist: ocean_lap_friction_nml

Name
Type
Default
Units
Description
lap_friction_scheme
character(len=10)

To determine the laplacian friction scheme: "const" or "general"

debug_this_module
logical

For debugging.

write_a_restart
logical

Set true to write a restart. False setting only for rare cases where wish to benchmark model without measuring the cost of writing restarts and associated chksums. Default is write_a_restart=.true.

Filename: src/mom5/ocean_param/lateral/ocean_lap_tracer.F90

Namelist: ocean_lap_tracer_nml

Name
Type
Default
Units
Description
alap
real
m^2/sec

This is the value for the space-time constant Laplacian diffusivity.

vel_micom
real
m/sec

Velocity scale that is used for computing the MICOM diffusivity.

tracer_mix_micom
logical

If .true., then the diffusivity is set according to a velocity scale times the grid spacing. It is based on an approach recommended by Eric Chassignet that is used in the Miami Isopycnal Model (MICOM).

verbose_init
logical

For verbose writes during initialization

use_this_module
logical

Must be true to use this module. Default is false.

horz_z_diffuse
logical

To compute diffusion along surfaces of constant depth. This operation must necessarily be approximate for the two cases (i) non-geopotential vertical coordinates, (2) next to partial bottom step topography. There are cases where use of this operator can lead to spurious creation of extrema due to truncation errors associated with the "slope" term. For most cases where lateral diffusion is required, we will want it to be "diffusive" in the sense that no extrema are created. So the default is horz_z_diffuse=.false. The option to use horz_z_diffuse=.true. is maintained for legacy purposes alone.

horz_s_diffuse
logical

To compute diffusion along surfaces of constant vertical s-coordinate. This operation is ensured of obtaining a smoothing operator that does not create extrema. It is the default for this reason.

read_diffusivity_mask
logical

Allows for reading of a mask that to apply diffusivity only in selected regions. Default read_diffusivity_mask=.false.

Filename: src/mom5/ocean_param/lateral/ocean_lapcgrid_friction.F90

Namelist: ocean_lapcgrid_friction_nml

Name
Type
Default
Units
Description
k_smag_iso
real
dimensionless

This is the dimensionless Smagorinsky coefficient used to set the scale of the Smagorinsky isotropic viscosity.

k_smag_aniso
real
dimensionless

This is the dimensionless Smagorinsky coefficient used to set the scale of the Smagorinsky anisotropic viscosity.

vel_micom_iso
real
m/sec

Velocity scale that is used for computing the MICOM isotropic viscosity.

vel_micom_aniso
real
m/sec

Velocity scale that is used for computing the MICOM anisotropic viscosity.

eq_vel_micom_iso
real

Velocity scale that is used for computing the MICOM isotropic viscosity within a user specified equatorial band.

eq_vel_micom_aniso
real

Velocity scale that is used for computing the MICOM anisotropic viscosity within a user specified equatorial band.

eq_lat_micom
real

Equatorial latitude band (degrees) within which the MICOM viscosity is set according to eq_vel_micom_iso and eq_vel_micom_aniso.

equatorial_zonal_lat
real

Latitudinal band to use the zonal friction orientation.

equatorial_zonal
logical

Orient the anisotropic friction within a latitudinal band according to zonal direction.

equatorial_no_smag
logical

Turn smag off within equatorial_zonal_lat region.

viscosity_scale_by_rossby
logical

To scale down the laplacian viscosity according to the relative scale of the horizontal grid and the first baroclinic Rossby radius. This is a useful scheme for models that resolve the Rossby radius in the lower latitudes, and so presumably do not wish to have much laplacian friction, whereas the higher latitudes need more friction. Default viscosity_scale_by_rossby=.false.

viscosity_scale_by_rossby_power
real

The power used to determine the viscosity scaling function. Default viscosity_scale_by_rossby_power=2.0.

restrict_polar_visc
logical

For restricting the background viscosity poleward of a latitude. This method may be useful for coupling to an ice model in which case the horizontal viscosity may need to be a bit smaller to maintain time step constraints. This is because the effective friction is larger than that just within the ocean.

restrict_polar_visc_lat
real

Latitude poleward of which we restrict the viscosity.

restrict_polar_visc_ratio
real

Ratio of the normal critical value that we limit the viscosity to be no greater than. If restrict_polar_visc_ratio=1.0 then there is no special limitation of the viscosity beyond that of the one-dimensional stability constraint.

divergence_damp
logical

To damp the divergence field.

divergence_damp_vel_micom
real
m/s

Velocity scale to set the viscosity used with divergence damping.

neptune
logical

Set to true for computing friction relative to Neptune barotropic velocity. Default neptune=.false.

neptune_smooth
logical

For doing a horizontal 1-2-1 smoothing on the diagnosed neptune velocity scale. Default neptune_smooth=.true.

neptune_smooth_num
integer

Number of smoothing passes for neptune velocity. Default neptune_smooth_num=1.

neptune_length_eq
real
m

Length scale used to compute Neptune velocity at equator.

neptune_length_pole
real
m

Length scale used to compute Neptune velocity at pole.

neptune_depth_min
real
m

Minimum depth scale used for computing Neptune velocity. Default neptune_depth_min=100.0

use_side_drag_friction
logical

For converting friction at U-cells next to walls into a drag law, as per Deremble et al. Use cdbot_array from ocean_core/ocean_bbc.F90 to compute drag force. Default use_side_drag_friction=.false.

side_drag_friction_scaling
real

Dimensionless scaling used for cdbot_array when setting side drag friction. So the effective side dragy coefficient is side_drag_friction_scaling*cdbot_array. Default side_drag_friction_scaling=1.0.

side_drag_friction_max
real
N/m^2

Maximum magnitude of the side drag induced friction. This parameter can be useful especially for pressure models where the bottom cells can be quite thin and subject to sporadic large magnitudes. We do the same thing with bottom drag calculations in ocean_bbc. Default side_drag_friction_max=1.0.

side_drag_friction_uvmag_max
real
m/s

Maximum magnitude of horizontal velocity used to compute the side drag friction. This parameter can be useful especially for pressure models where the bottom cells can be quite thin and subject to sporadic large magnitudes. We do the same thing with bottom drag calculations. Default side_drag_friction_uvmag_max=10.0.

use_this_module
logical

Must be true to use this module. Default is false.

debug_this_module
logical

For debugging by printing checksums.

Filename: src/mom5/ocean_param/lateral/ocean_lapcst_friction.F90

Namelist: ocean_lapcst_friction_nml

Name
Type
Default
Units
Description
alap
real
m^2/sec

This is the value for the space-time constant Laplacian viscosity.

vel_micom
real
m/sec

Velocity scale that is used for computing the MICOM viscosity.

alap_taper_start_lat
real
alap_taper_end_lat
real
alap_taper_min_fac
real
alap_taper_hi_lats
logical
velocity_mix_micom
logical

If .true., then the viscosity is set according to a velocity scale times the cube of the grid spacing. It is based on an approach recommended by Eric Chassignet that is used in the Miami Isopycnal Model.

use_this_module
logical

Must be true to use this module. Default is false.

debug_this_module
logical

For debugging by printing checksums.

read_alap
logical

Filename: src/mom5/ocean_param/lateral/ocean_lapgen_friction.F90

Namelist: ocean_lapgen_friction_nml

Name
Type
Default
Units
Description
k_smag_iso
real
dimensionless

This is the dimensionless Smagorinsky coefficient used to set the scale of the Smagorinsky isotropic viscosity.

k_smag_aniso
real
dimensionless

This is the dimensionless Smagorinsky coefficient used to set the scale of the Smagorinsky anisotropic viscosity.

vel_micom_iso
real
m/sec

Velocity scale that is used for computing the MICOM isotropic viscosity.

vel_micom_aniso
real
m/sec

Velocity scale that is used for computing the MICOM anisotropic viscosity.

eq_vel_micom_iso
real

Velocity scale that is used for computing the MICOM isotropic viscosity within a user specified equatorial band.

eq_vel_micom_aniso
real

Velocity scale that is used for computing the MICOM anisotropic viscosity within a user specified equatorial band.

eq_lat_micom
real

Equatorial latitude band (degrees) within which the MICOM viscosity is set according to eq_vel_micom_iso and eq_vel_micom_aniso.

equatorial_zonal_lat
real

Latitudinal band to use the zonal friction orientation.

equatorial_zonal
logical

Orient the anisotropic friction within a latitudinal band according to zonal direction.

equatorial_no_smag
logical

Turn smag off within equatorial_zonal_lat region.

bottom_5point
logical

To alleviate problems with small partial cells, it is often necessary to reduce the operator to the traditional 5-point Laplacian at the ocean bottom. This logical implements this mixing. Default bottom_5point=.false.

viscosity_scale_by_rossby
logical

To scale down the laplacian viscosity according to the relative scale of the horizontal grid and the first baroclinic Rossby radius. This is a useful scheme for models that resolve the Rossby radius in the lower latitudes, and so presumably do not wish to have much laplacian friction, whereas the higher latitudes need more friction. Default viscosity_scale_by_rossby=.false.

viscosity_scale_by_rossby_power
real

The power used to determine the viscosity scaling function. Default viscosity_scale_by_rossby_power=2.0.

restrict_polar_visc
logical

For restricting the background viscosity poleward of a latitude. This method may be useful for coupling to an ice model in which case the horizontal viscosity may need to be a bit smaller to maintain time step constraints. This is because the effective friction is larger than that just within the ocean.

restrict_polar_visc_lat
real

Latitude poleward of which we restrict the viscosity.

restrict_polar_visc_ratio
real

Ratio of the normal critical value that we limit the viscosity to be no greater than. If restrict_polar_visc_ratio=1.0 then there is no special limitation of the viscosity beyond that of the one-dimensional stability constraint.

divergence_damp
logical

To damp the divergence field.

divergence_damp_vel_micom
real
m/s

Velocity scale to set the viscosity used with divergence damping.

vconst_1
real
cm^2/sec

Background viscosity for NCAR algorithm.

vconst_2
real

For NCAR viscosity algorithm.

vconst_3
real

For NCAR viscosity algorithm.

vconst_4
real
1/cm

For NCAR viscosity algorithm.

vconst_5
integer

For NCAR viscosity algorithm.

vconst_6
real
cm^2/sec

For NCAR viscosity algorithm.

vconst_7
real
cm/sec

For NCAR viscosity algorithm.

vconst_8
real
degrees

For NCAR viscosity algorithm.

visc_vel_scale_length
real
cm

For NCAR viscosity algorithm: efolding depth for depth dependent background viscosity. Default visc_vel_scale_length=1500.e2 cm

viscosity_ncar
logical

Anisotropic background viscosities used by NCAR.

viscosity_ncar_2000
logical

Anisotropic background viscosities used by NCAR, using the formulation as of 2000. Default viscosity_ncar_2000=.true.

viscosity_ncar_2007
logical

Anisotropic background viscosities used by NCAR, using the formulation as of 2007. Default viscosity_ncar_2007=.false.

debug_ncar_A
logical

Sets f_perp=f_para for debugging purposes with the NCAR scheme.

debug_ncar_B
logical

Sets f_para=f_perp for debugging purposes with the NCAR scheme.

ncar_isotropic_off_equator
logical

Polewards of equatorial_zonal_lat, revert NCAR scheme to isotropic

ncar_only_equatorial
logical
ncar_isotropic_at_depth
logical

Sets the NCAR scheme to be isotropic beneath a chosen depth.

ncar_isotropic_depth
real
m

Sets the NCAR scheme to be isotropic beneath this chosen depth.

ncar_isotropic_at_depth_visc
real
m2/sec

Sets the NCAR scheme to be isotropic beneath this chosen depth, with minimum viscosity set according to this value.

neptune
logical

Set to true for computing friction relative to Neptune barotropic velocity. Default neptune=.false.

neptune_smooth
logical

For doing a horizontal 1-2-1 smoothing on the diagnosed neptune velocity scale. Default neptune_smooth=.true.

neptune_smooth_num
integer

Number of smoothing passes for neptune velocity. Default neptune_smooth_num=1.

neptune_length_eq
real
m

Length scale used to compute Neptune velocity at equator.

neptune_length_pole
real
m

Length scale used to compute Neptune velocity at pole.

neptune_depth_min
real
m

Minimum depth scale used for computing Neptune velocity. Default neptune_depth_min=100.0

use_side_drag_friction
logical

For converting friction at U-cells next to walls into a drag law, as per Deremble et al. Use cdbot_array from ocean_core/ocean_bbc.F90 to compute drag force. Default use_side_drag_friction=.false.

side_drag_friction_scaling
real

Dimensionless scaling used for cdbot_array when setting side drag friction. So the effective side dragy coefficient is side_drag_friction_scaling*cdbot_array. Default side_drag_friction_scaling=1.0.

side_drag_friction_max
real
N/m^2

Maximum magnitude of the side drag induced friction. This parameter can be useful especially for pressure models where the bottom cells can be quite thin and subject to sporadic large magnitudes. We do the same thing with bottom drag calculations. Default side_drag_friction_max=1.0.

side_drag_friction_uvmag_max
real
m/s

Maximum magnitude of horizontal velocity used to compute the side drag friction. This parameter can be useful especially for pressure models where the bottom cells can be quite thin and subject to sporadic large magnitudes. We do the same thing with bottom drag calculations. Default side_drag_friction_uvmag_max=10.0.

use_this_module
logical

Must be true to use this module. Default is false.

debug_this_module
logical

For debugging by printing checksums.

async_domain_update
logical
blocksize
integer

Filename: src/mom5/ocean_param/lateral/ocean_mixdownslope.F90

Namelist: ocean_mixdownslope_nml

Name
Type
Default
Units
Description
use_this_module
logical

For using this module. Default use_this_module=.false.

debug_this_module
logical

For debugging

do_bitwise_exact_sum
logical

Set true to do bitwise exact global sum. When it is false, the global sum will be non-bitwise_exact, but will significantly increase efficiency. The default value is false.

mixdownslope_weight_far
logical

To place more weight on points further from central point. This may be done to enhance properties getting downslope. Default is mixdownslope_weight_far=.false.

read_mixdownslope_mask
logical

For reading in a mask that selects regions of the domain where mixdownslope is allowed to function (mask=1) or not to function (mask=0). Default read_mixdownslope_mask=.false., whereby mixdownslope_mask is set to tmask(k=1).

mixdownslope_mask_gfdl
logical

For modifying the mixdownslope mask based on reading in the GFDL regional mask. Default mixdownslope_mask_gfdl=.false.

mixdownslope_npts
integer

Number of horizontally distant points used in search downslope. Note: it is not possible to have mixdownslope_npts greater than or equal to the computational domain extents, as this would require updates across multiple processors. Default mixdownslope_npts=1.

mixdownslope_width
integer

Width of the re-weighting function used to emphasize points further along in the search for exchange points. Default mixdownslope_width=1.

mixdownslope_frac_central
real

Fraction of the central cell that participates in downslope mixing in any particular direction. Default mixdownslope_frac_central=0.25

Filename: src/mom5/ocean_param/lateral/ocean_sigma_transport.F90

Namelist: ocean_sigma_transport_nml

Name
Type
Default
Units
Description
tmask_sigma_on
logical

IF .true. then masks out fluxes passing into the sigma layer, except those associated with sigma transport. Typically set to .false.

use_this_module
logical

Must be true to use this module. Default is false.

debug_this_module
logical

For debugging.

verbose_init
logical
sigma_diffusion_on
logical

For using sigma diffusion. Default is true.

sigma_advection_on
logical

For using sigma advection. Default is false.

sigma_advection_sgs_only
logical

In many cases, adding the resolved transport to the sigma-advective transport produces a tremendous level of noise at the bottom. The problem is that there are grid-scale features that may cause large jumps in whether the velocity should be added or not, depending on the logic of the scheme. For this reason, it may be prudent to remove the resolved velocity from that contributing to the sigma transport scheme. Note that its removal from sigma transport does not remove the contributions of the resolved velocity from the resolved advective transport arising from ocean_tracer_advect_mod. It simply removes it from the added transport arising in the sigma transport module. Default is sigma_advection_sgs_only=.true.

sigma_advection_check
logical

If true, then will only include the resolved advection velocity in the sigma-layer if the direction of transport is downslope favorable for enhancing deep density. IF false, then will include the velocity regardless. This option aims to reduce the large divergences that occur for the case when only include the velocity if it is favorable for deep water getting more dense. Default is sigma_advection_check=.true.

sigma_diffusivity
real
m^2/sec

Sigma tracer diffusivity for use if not using micom diffusivity.

sigma_diffusivity_ratio
real
dimensionless

When flow along sigma surface is stable (i.e., heavy parcels are below lighter parcels) then sigma diffusivity is reduced by sigma_diffusivity_ratio from the case where heavy parcels are above lighter parcels.

thickness_sigma_max
real
meter

Maximum thickness of the bottom sigma layer.

thickness_sigma_min
real
meter

Minimum thickness of the bottom sigma layer.

thickness_sigma_layer
real
meter

Initial thickness of the bottom sigma layer.

vel_micom
real
m/sec

Velocity scale that is used for computing the MICOM diffusivity.

campingoose_mu
real
inverse seconds

Dissipation rate for the bottom friction. Campin and Goosse suggest campingoose_mu=10^-4

campingoose_delta
real
dimensionless

Fraction of a grid cell participating in the overflow process. Campin and Goosse suggest campingoose_delta=1/3.

sigma_umax
real
m/s

Maximum downslope speed allowed in sigma layer. In some cases, the model will be unstable if sigma_umax is too large.

tracer_mix_micom
logical

If .true., then the sigma diffusivity is set according to a velocity scale times the grid spacing.

sigma_just_in_bottom_cell
logical

For just having sigma layer in the bottom cell, as in mom4p0. This option must be .false. in order to use sigma_advection_on=.true. Default sigma_just_in_bottom_cell=.true.

write_a_restart
logical
smooth_sigma_thickness
logical

To smooth the sigma thickness. This may be needed especially for case with sigma advection, in which case the thickness can become noisy. Default is smooth_sigma_thickness=.true.

smooth_sigma_velocity
logical

To smooth the sigma advective transport velocity. Default is smooth_sigma_velocity=.true.

smooth_velmicom
real

Filename: src/mom5/ocean_param/lateral/ocean_submesoscale.F90

Namelist: ocean_submesoscale_nml

Name
Type
Default
Units
Description
use_this_module
logical
debug_this_module
logical

For debugging purposes.

submeso_skew_flux
logical

For computing the tendency as convergence of skew flux. This is the recommended method. Default submeso_skew_flux=.true.

submeso_advect_flux
logical

For computing the tendency as convergence of advective flux. This approach uses either a flux limited sweby advection or first order upwind, both of which ensure that the resulting tendency will not create extrema in the tracer field. Default submeso_advect_flux=.false.

submeso_advect_upwind
logical

For computing the tendency as convergence of a first order advective flux. Default submeso_advect_upwind=.true.

submeso_advect_sweby
logical

For computing the tendency as convergence of a sweby advective flux. This routine is incomplete and has a bug. Default submeso_advect_sweby=.false.

submeso_advect_limit
logical

For limiting the value of the horizontal transports to be less than a velocity scale set by limit_psi_velocity_scale. This option is not needed if limit_psi=.true. Default submeso_advect_limit=.false.

submeso_advect_zero_bdy
logical

For removing the advective transport next to boundaries. This is useful since computation of the advective transport velocity components can be problematic next to boundaries. Default submeso_advect_zero_bdy=.false.

submeso_limit_flux
logical

For limiting the fluxes arising from submeso scheme, according to tmask_limit. When reach a point where tmask_limit=1.0, then set the submeso flux for this cell to zero. Default submeso_limit_flux=.true.

use_hblt_constant
logical

For running with a constant boundary layer depth. This for the case when not using a realistic mixed layer scheme. Default use_hblt_constant=.false.

use_hblt_equal_mld
logical

For using the diagnosed mld as the hblt for submeso. This is useful for those test models that do not have a mixed layer scheme enabled, such as KPP, where the mixed layer scheme provides a boundary layer depth. In this case, it is sensible to employ the diagnosed mixed layer depth for the submeso scheme. Additionally, in general it is more physical to use the mld than the KPP hblt as the depth over which the submesoscale eddies act. Hence, default use_hblt_equal_mld=.true.

smooth_hblt
logical

For smoothing on the submeso bldepth field. This is useful since the bldepth obtained from KPP or diagnosed mld can have some grid noise. Default smooth_hblt=.false. since this agrees with legacy. Note that this scheme fails to reproduce across processor layout, so it remains broken.

smooth_psi
logical

For doing a horizontal 1-2-1 smoothing on the psix_horz and psiy_horz fields. Default smooth_psi=.true.

smooth_advect_transport
logical

For doing a horizontal 1-2-1 smoothing on the diagnosed uhrho_et_submeso and vhrho_nt_submeso fields. Default smooth_advect_transport=.true.

front_length_deform_radius
logical

To compute the front length using the mixed layer deformation radius. Default front_length_deform_radius=.true. Note, will have a floor on the variable front length set by the nml setting for front_length_const.

limit_psi
logical

For limiting the magnitude of psi in order to reduce possibility of model crashes. Rescales the full psi to maintain vertical structure but to keep overall magnitude within bounds. Default limit_psi=.false.

use_psi_legacy
logical

For computing psi using older legacy methods. These methods are not ideal, and can be problematic depending on nml settings for the limiters and smoothers. This option is retained only for legacy purposes. Default use_psi_legacy=.false.

submeso_diffusion
logical

For computing a horizontal diffusive flux in the boundary layer as determined by the strength of the vector streamfunction. Default submeso_diffusion=.false.

submeso_diffusion_biharmonic
logical

The default submeso diffusion is Laplacian. However, one may wish to use a biharmonic mixing operator instead. Default submeso_diffusion_biharmonic=.false.

limit_psi_velocity_scale
real
metre/sec

Velocity scale used to limit the value of psi when limit_psi=.true. Default limit_psi_velocity_scale=5.0

coefficient_ce
real
dimensionless

The dimensionless coefficient from the Fox-Kemper etal scheme. They recommend setting coefficient_ce between 0.06 and 0.08. Default coefficient_ce=0.07.

time_constant
real
seconds

Timescale to mix momentum across the mixed layer. Default time_constant=86400.0 = 1day.

front_length_const
real
metre

Take constant horizontal length scale of submesoscale front. Default front_length_const=5e3.

constant_hblt
real
metre

The boundary layer depth for the case when use_hblt_constant=.true. Default constant_hblt=100.0.

minimum_hblt
real
metre

For setting a floor to the hblt used for submesoscale scheme. Default minimum_hblt=0.0.

submeso_diffusion_scale
real
dimensionless

A dimensionless scaling to be used for scaling up or down the effects from horizontal diffusion in the boundary layer. Default submeso_diffusion_scale=1.0.

min_kblt
integer
dimensionless

The minimum number of vertical cells in the surface boundary layer that are required in order to compute the submesoscale streamfunction. Default min_kblt=4. Need at least three to fit a parabola with zero streamfunction at the top and bottom of the boundary layer.

diag_step
integer

Number of time steps between computing max bottom value for wrho_bt_submeso. Default diag_step=1200.

smooth_psi_num
integer

Number of iterations for the smooothing of psi. Default smooth_psi_num=2.

smooth_advect_transport_num
integer

Number of iterations for the smooothing of horizontal transport. Default smooth_advect_transport_num=2.

smooth_hblt_num
integer

Number of iterations for the smooothing of bldepth. Default smooth_hblt_num=1.

src/mom5/ocean_param/neutral

Filename: src/mom5/ocean_param/neutral/ocean_nphysics.F90

Namelist: ocean_nphysics_nml

Name
Type
Default
Units
Description
use_nphysicsA
logical

For using the nphysicsA method of neutral physics, based on that developed in MOM4.0. This scheme is more robust and recommended for general use. Default use_nphysicsA=.true.

use_nphysicsB
logical

For using the nphysicsB method of neutral physics. This method is experimental, and is not recommended for general use. Default use_nphysicsB=.false.

use_nphysicsC
logical

For using the nphysicsC method of neutral physics. This method is experimental, and is not recommended for general use. Default use_nphysicsC=.false.

use_this_module
logical

Must be true to use this module. Default use_this_module=.false.

debug_this_module
logical

For printing starting and ending checksums for restarts Default debug_this_module=.false.

write_a_restart
logical

Set true to write a restart. False setting only for rare cases where wish to benchmark model without measuring the cost of writing restarts and associated chksums. Default is write_a_restart=.true.

Filename: src/mom5/ocean_param/neutral/ocean_nphysics_diff.F90

Namelist: ocean_nphysics_diff_nml

Name
Type
Default
Units
Description
agm_const
logical
agm
real
agm_closure_micom
logical
agm_micom_vel
real
agm_lat_bands
logical
agm_lat_bands_boundary
real
agm_lat_bands_ratio
real
agm_closure
logical
agm_max
real
agm_min
real
agm_scaling
real
agm_closure_rate_len2
logical
agm_grid_scaling
logical
agm_grid_scaling_power
real
agm_smooth_space
logical
agm_smooth_time
logical
agm_damping_time
real
agm_closure_n2_scale
logical
agm_n2_scale_coeff
real
agm_n2_scale_nref_cst
logical
agm_n2_scale_buoy_freq
real
agm_rate_upper_depth
real
agm_rate_lower_depth
real
agm_rate_eady
logical
agm_rate_baroclinic
logical
agm_rate_baro_buoy_freq
real
agm_rate_smooth_vert
logical
agm_rate_smooth_horiz
logical
agm_rate_cap
logical
agm_rate_cap_scale
real
agm_rate_ave_mixed
logical
agm_rate_zave
logical
agm_rate_eden_greatbatch
logical
agm_rate_eg_alpha
real
agm_length_eden_greatbatch
logical
agm_length_cap
logical
agm_length_max
real
agm_length_fixed
logical
agm_length
real
agm_length_rossby
logical
agm_length_bczone
logical
agm_bczone_max_pts
integer
agm_bczone_crit_rate
real
aredi_equal_agm
logical
aredi
real
aredi_fixed
logical
aredi_grid_scaling
logical
aredi_grid_scaling_power
real
neutral_horiz_mix_bdy
logical
ah_micom
logical
ah_micom_vel
real
ah_const
logical
ah
real

Filename: src/mom5/ocean_param/neutral/ocean_nphysics_flux.F90

Namelist: ocean_nphysics_flux_nml

Name
Type
Default
Units
Description
diffusion_all_explicit
logical

To compute K33 explicitly in time. This setting is meant only for debugging tests, since in general the simulation will go unstable. Default diffusion_all_explicit=.false.

neutral_physics_limit
logical

Revert to horizontal diffusion when tracer falls outside specified range. Default neutral_physics_limit=.true., so to keep tracers from going too far outside of physical range.

Filename: src/mom5/ocean_param/neutral/ocean_nphysics_new.F90

Namelist: ocean_nphysics_new_nml

Name
Type
Default
Units
Description
use_this_module
logical

Must be set .true. to use this module. Default use_this_module = .false.

smax
real

Slope maximum parameter for setting behaviour of neutral physics. Default smax=0.01.

drhodz_smooth_vert
logical

For smoothing vertical density gradient before computing neutral slope. Exercise caution if using this option. Default drhodz_smooth_vert=.false.

drhodz_smooth_horz
logical

For smoothing vertical density gradient before computing neutral slope. Exercise caution if using this option. Default drhodz_smooth_horz=.false.

vel_micom_smooth
real
m/s

For horizontal smoothing of drhodz before computing neutral slopes. Default vel_micom_smooth=0.2.

Filename: src/mom5/ocean_param/neutral/ocean_nphysics_skew.F90

Namelist: ocean_nphysics_skew_nml

Name
Type
Default
Units
Description
gm_transport
logical

To compute tendency from GM skewsion. Default gm_transport=.false.

bc_modes_transport
logical

To compute tendency from GM skewsion using streamfunction established by baroclinic modes. Default bc_modes_transport=.false.

number_bc_modes
integer

The number of baroclinic modes used to construct the eddy induced streamfunction when bc_modes_transport. Default number_bc_modes=1.

regularize_transport
logical

To reduce the magnitude of psi in regions of weak stratification, using the slope = smax_psi to set the overall scale of the max allowed for psi. Default regularize_transport=.true.

smax_psi
real

Maximum slope used for setting the overall scale of a modal contribution to the parameterized transport. Default smax_psi=0.1.

bvp_transport
logical

To compute tendency from GM skewsion using streamfunction established by a boundary value problem. Default bvp_transport=.false.

bvp_constant_speed
logical

For taking a constant speed to be used for the calculation of the BVP streamfunction. Default bvp_constant_speed=.false.

bvp_speed
real
m/s

For setting the speed weighting the second order derivative operator in the BVP streamfunction method: c^2 = max[bvp_min_speed, (bvp_speed-c_mode)^2]. If bvp_constant_speed, then c^2 = bvp_speed^2. Default bvp_speed=0.0, in which case c^2 = c_mode^2.

bvp_bc_mode
integer

The particular baroclinic mode used to construct the BVP streamfunction. If bvp_bc_mode=0, then will set bc_speed=0 when computing the BVP streamfunction. Default bvp_bc_mode=1.

bvp_min_speed
real
m/s

For setting a minimum speed for use with the calculation of the BVP streamfunction. We need bvp_min_speed>0 to ensure that the second order derivative operator contributes to the calculation of the streamfunction. Default bvp_min_speed=0.1.

smooth_transport
logical

For doing a horizontal 1-2-1 smoothing on the psix and psiy fields. This is useful to reduce noise. Default smooth_psi=.true.

Filename: src/mom5/ocean_param/neutral/ocean_nphysics_tensor.F90

Namelist: ocean_nphysics_tensor_nml

Name
Type
Default
Units
Description
neutral_sine_taper
logical
turb_blayer_min
real
rossby_radius_max
real
rossby_radius_min
real
dm_taper
logical
swidth
real
neutral_taper_diagonal
logical
tmask_neutral_on
logical

Filename: src/mom5/ocean_param/neutral/ocean_nphysics_util.F90

Namelist: ocean_nphysics_util_nml

Name
Type
Default
Units
Description
drhodz_mom4p1
logical

For computing the vertical deriviative of locally referenced potrho as in the preferred MOM algorithm rather than the earlier mom4p0 approach. Default drhodz_mom4p1=.true.

drhodz_smooth_horz
logical

For horizontal laplacian smoothing the vertical derivative of density prior to its use in computing the neutral slopes. This smoothing helps to produce regularized slopes. Note that this option breaks the integrity of the triads and is thus NOT generally recommended. Default drhodz_smooth_horz=.false.

drhodz_smooth_vert
logical

For vertical 1-2-1 smoothing the vertical derivative of density prior to its use in computing the neutral slopes. This smoothing helps to produce regularized slopes. Note that this option breaks the integrity of the triads and is thus NOT generally recommended. Default drhodz_smooth_vert=.false.

num_121_passes
integer

For number of 1-2-1 passes through to smooth drhodz or eady_rate in vertical. Default num_121_passes=1.

vel_micom_smooth
real
m/sec

Velocity scale that is used for computing the MICOM Laplacian mixing coefficient used in smoothing of drhodzb. Default vel_micom_smooth=0.2.

epsln_drhodz
real
kg/m^3

For computing drhodz used in slope calculation. We must keep drhodz < 0 in order to maintain integrity of the quasi-Stokes streamfunction as well as computation of buoyancy frequency. Default epsln_drhodz=1e-30.

aredi
real

Neutral diffusivity used for experiments using a constant diffusivity.

agm
real

GM-skew diffusivity used for experiments using a constant diffusivity.

aredi_equal_agm
logical

Will set aredi_array=agm_array, over-riding any other specification of aredi_array. Default aredi_equal_agm=.true.

smax
real

Value of the maximum neutral direction slope above which the neutral fluxes are either tapered to zero or saturated. Typical value is smax=0.01 or smaller.

swidth
real

Width in slope over which use tanh with dm_taper scheme to taper fluxes in steep sloped regions. Typical value swidth=0.1*smax

neutral_horz_mix_bdy
logical

If .true., then use a horizontal diffusivity in the neutral boundary layer.

vel_micom_bdy
real
m/sec

Velocity scale that is used for computing the MICOM horizontal diffusivity within the neutral boundary layer.

ah_bdy
real
m^2/sec

Constant horizontal diffusivity for the boundary layer. Default ah_bdy=0.0.

bryan_lewis_aredi
logical

Set bryan_lewis_aredi=.true. when want to have aredi a function of depth according to the Bryan and Lewis (1979) profile. Maintained for legacy purposes, and not recommended for new models.

ahs
real

ahs = adjustable parameter at the surface for bryan_lewis_aredi

ahb
real

ahb = adjustable parameter at the bottom for bryan_lewis_aredi

agm_lat_bands
logical
agm_lat_bands_boundary
real
agm_lat_bands_ratio
real
tracer_mix_micom
logical

If .true., then the GM-skew diffusivity is set according to a velocity scale times the grid spacing.

vel_micom
real
m/sec

Velocity scale that is used for computing the MICOM diffusivity.

agm_read_restart
logical

For those cases with agm_closure=.false. where we wish to read in the agm_array from restart files and keep the value from the restart. This approach allows us to read in a spatially dependent agm_array that may have been computed from another integration, but to leave the coefficient static in time. Default agm_read_restart=.false.

agm_closure
logical

If .true. then will compute the GM-skew diffusivity as a function of the flow. The length scale is determined by the Rossby radius and the time scale is determined by the Eady growth rate. Diffusivities are depth independent.

agm_closure_scaling
real
dimensionless

Dimensionless tuning parameter for computing flow dependent diffusivities.

agm_closure_max
real
m^2/sec

Maximum GM diffusivity allowed when using agm_closure=.true.

agm_closure_min
real
m^2/sec

Minimum GM diffusivity allowed when using agm_closure=.true.

agm_closure_length_fixed
logical

Use fixed length scale for computing agm_closure diffusivity

agm_closure_length
real
meter

Fixed length scale for use with agm_closure_fixed_length

agm_closure_length_rossby
logical

For computing the agm_closure length scale according to Rossby radius.

rossby_radius_max
real
meter

Maximum Rossby radius used for agm_closure_length_rossby and the neutral_sine_taper. Default = 100e3 m.

rossby_radius_min
real
meter

Minimum Rossby Radius used for agm_closure_length_rossby and the neutral_sine_taper. Default = 15e3 m.

agm_closure_length_bczone
logical

For computing the agm_closure length scale according to radius of baroclinic zone.

bczone_max_pts
integer

Max number of horizontal grid points for use in computing the baroclinic zone radius.

agm_closure_bczone_crit_rate
real
sec^-1

Critical growth rate for determining width of the baroclinic zone.

agm_closure_length_cap
logical

For setting a maximum length scale for the agm_closure calculation. Default agm_closure_length_cap=.false.

agm_closure_length_max
real
metre

Maximum length scale used for computing agm_closure. Default agm_closure_length_max=50e3.

agm_closure_n2_scale
logical

For computing the agm coefficient using a 3-dimensional scaling by (N/Nref)^2, with N=buoyancy frequency and Nref the buoyancy frequency at the base of the neutral blayer. Default agm_closure_n2_scale=.false.

agm_closure_n2_scale_nref_cst
logical

For taking the reference buoyancy frequency as agm_closure_buoy_freq for the (N/Nref)^2 scaling. Default agm_closure_n2_scale_nref_cst=.false.

agm_closure_n2_scale_coeff
real
m^2/s

Coefficient setting the scale for the diffusivity computed from agm_closure_n2_scale. Default agm_closure_n2_scale_coeff=1e3.

agm_closure_eden_greatbatch
logical

For computing the agm_closure length scale according to minimum of the Rhines scale and the Rossby radius, and using 3d Eady growth rate.

agm_closure_eden_length_const
logical

To set the length scale for agm_closure_eden_greatbatch to constant. Default agm_closure_eden_length_const=.false.

agm_closure_eden_gamma
real
dimensionless

For use in regularizing the growth rate used in the eden/greatbatch approach. Default agm_closure_eden_gamma=200. Setting to zero removes the regularization.

agm_closure_eden_length
real
metre

Length scale for use with agm_closure_eden_length_const=.true. Default agm_closure_eden_length=10e3.

agm_closure_baroclinic
logical

For computing the agm coefficient using only the vertically averaged magnitude of the horizontal density gradient (i.e., the "baroclinicity").

agm_closure_buoy_freq
real
sec^-1

For computing the agm coefficient using only the vertically averaged horizontal density gradient, we need to specify a buoyancy frequency, which is taken to be fixed over all space-time.

agm_closure_upper_depth
real
m

Upper depth where start the depth integration to compute the Eady growth rate and/or baroclinicity.

agm_closure_lower_depth
real
m

Deeper depth where finish the depth integration to compute the Eady growth rate and/or baroclinicity.

agm_closure_eady_smooth_vert
logical

For vertical 1-2-1 smoothing the eady_rate Default agm_closure_eady_smooth=.false.

agm_closure_eady_smooth_horz
logical

For horizontal Laplacian smoothing of eady growth rate. Default agm_closure_eady_smooth_horz=.false.

agm_closure_eady_cap
logical

For capping the eady growth rate to avoid huge values. Default agm_closure_eady_cap=.false.

agm_closure_eady_ave_mixed
logical

To set the Eady growth rate to its average within mixed layer region. This is used to avoid spuriously large values which often appear just in the upper regions of the ocean mixed layer. Default agm_closure_eady_ave_mixed=.false.

agm_closure_growth_scale
real
dimensionless

Dimensionless scaling used to set a maximum for agm_growth.

agm_smooth_space
logical

For smoothing the agm diffusivity in space when nonconstant diffusivity used. Default is agm_smooth_space=.false.

agm_smooth_time
logical

For smoothing the agm diffusivity in time when nonconstant diffusivity used. Default is agm_smooth_time=.false.

agm_damping_time
real
days

The damping time used for time smoothing agm_array. Default agm_damping_time=10days.

agm_closure_grid_scaling
logical

For an overall scaling of the agm coefficient, according to the relative resolution of the grid and deformation radius. Default is agm_closure_grid_scaling=.false.

agm_closure_grid_scaling_power
real

Power used to scale the agm_closure diffusivity. Default is agm_closure_grid_scaling_power=2.0

aredi_diffusivity_grid_scaling
logical

For an overall scaling of the aredi coefficient, according to the relative resolution of the grid and deformation radius. This option is used only when aredi_equal_agm=.false. Default is aredi_diffusivity_grid_scaling=.false.

nphysics_util_zero_init
logical

For Time%init=.true. and wishing to ensure starting with a clean suite of nphysics_util fields, even if ocean_neutral.res.nc exists.

wdianeutral_smooth
logical

For smoothing the diagnosed dianeutral velocity component using a horizontal 1-2-1 smoother. Default is wdianeutral_smooth=.true.

epsln_drhodz_diagnostics
real
kg/m4

For drhodz used in calculation of dianeutral velocity component from cabbeling and thermobaricity. Default epsln_drhodz_diagnostics=1e-7.

smax_grad_gamma_scalar
real

For calculation of gradients of scalars along a neutral direction, then when abs(slope) > smax_grad_gamma_scalar, will compute the gradient using only the vertical scalar gradient, since the slopes are so large they are effectively infinite. Default smax_grad_gamma_scalar=.01

smooth_eta_tend_gm90
logical

For smoothing the diagnosed contribution to steric sea level time tendency associated with the GM90 scheme. Default is smooth_eta_tend_gm90=.false.

debug_this_module
logical

For printing starting and ending checksums for restarts

Filename: src/mom5/ocean_param/neutral/ocean_nphysics_util_new.F90

Namelist: ocean_nphysics_util_new_nml

Name
Type
Default
Units
Description
num_121_passes
integer

For number of 1-2-1 passes through to smooth drhodz or eady_rate in vertical. Default num_121_passes=1.

Filename: src/mom5/ocean_param/neutral/ocean_nphysicsA.F90

Namelist: ocean_nphysicsA_nml

Name
Type
Default
Units
Description
use_gm_skew
logical

Must be true to use GM skewsion. Set to false if wish to incorporate the "GM-effect" through form drag, as in ocean_form_drag module. Default use_gm_skew=.true.

dm_taper
logical

Set to true to use the tanh tapering scheme of Danabasoglu and McWilliams. Default is true.

gkw_taper
logical

Set to true to use the quadradic tapering scheme of Gerdes, Koberle, and Willebrand. Default is false.

neutral_physics_simple
logical

If .true. then must have aredi_equal_agm=.true.. The horizontal fluxes are then computed as horizontal downgradient diffusive fluxes regardless the neutral slope. This approach precluds one from being able to have the GM-skew fluxes remain active in the steep sloped regions, thus shutting off their effects to reduce the slopes of isopycnals in convective and mixed layer regimes. It is for this reason that neutral_physics_simple=.false. is the recommended default in MOM.

turb_blayer_min
real

Minimum depth of a surface turbulent boundary layer used in the transition of the neutral physics fluxes to the surface. Note that in MOM4.0, turb_blayer_min was always set to zero.

neutral_blayer_diagnose
logical

Diagnose properties of the neutral physics boundary layer, whether have neutral_linear_gm_taper or neutral_sine_taper true or not.

neutral_linear_gm_taper
logical

If .true. then with neutral_physics_simple=.false., will linearly taper GM skew fluxes towards the surface within regions of steep neutral slopes. This approach leads to a constant horizontal eddy-induced velocity in the steeply sloping regions and is recommended for realistic simulations.

neutral_sine_taper
logical

If .true. then with neutral_physics_simple=.false., will apply a sine-taper to GM and neutral diffusive fluxes in regions where the penetration depth of eddies is deeper than the grid point. This method is essential for fine vertical resolution grids.

neutral_taper_diagonal
logical
dimensionless

For cases with neutral_physics_simple=.false., then neutral_taper_diagonal=.true. will taper the diagonal pieces of the horizontal flux components when neutral slopes are steep. With neutral_taper_diagonal=.false., then the horizontal flux components will remain enabled for all slopes, thus producing horizontal downgradient diffusion in regions of vertical neutral directions.

tmask_neutral_on
logical

If .true. then this logical reduces the neutral fluxes to horizontal/vertical diffusion next to boundaries. This approach has been found to reduce spurious extrema resulting from truncation of triads used to compute a neutral flux component. Default tmask_neutral_on=.false.

diffusion_all_explicit
logical

To compute all contributions from neutral diffusion explicitly in time, including the K33 diagonal piece. This approach is available only when have small time steps and/or running with just a single tracer. It is for testing purposes.

neutral_physics_limit
logical

When tracer falls outside a specified range, revert to horizontal diffusive fluxes at this cell. This is an ad hoc and incomplete attempt to maintain monotonicity with the neutral physics scheme. Default neutral_physics_limit=.true.

use_this_module
logical

Must be true to use this module. Default is false.

debug_this_module
logical

For printing starting and ending checksums for restarts

Filename: src/mom5/ocean_param/neutral/ocean_nphysicsB.F90

Namelist: ocean_nphysicsB_nml

Name
Type
Default
Units
Description
use_gm_skew
logical

Must be true to use GM skewsion. Set to false if wish to incorporate the "GM-effect" through form drag, as in ocean_form_drag module. Default use_gm_skew=.true.

neutral_damping_time
real
days

The damping time used for determining the effective surface boundary layer thickness from other portions of the model. Default neutral_damping_time=10days.

nblayer_smooth
logical

For smoothing the neutral blayer fields. This is useful when aiming to produce a smooth quasi-stokes streamfunction within the boundary layers. Default is nblayer_smooth=.true.

vel_micom_smooth
real
m/sec

Velocity scale that is used for computing the MICOM Laplacian mixing coefficient used in the Laplacian smoothing of neutral blayer fields.

dm_taper
logical
gkw_taper
logical
surf_turb_thick_min_k
integer

Minimum number of k-levels in surface turbulent boundary layer used in the transition of the neutral physics fluxes to the surface. Default surf_turb_thick_min_k = 2.

surf_turb_thick_min
real

Minimum thickness of surface turbulent boundary layer used in the transition of the neutral physics fluxes to the surface. Default surf_turb_thick_min=20m.

diffusion_all_explicit
logical

To compute all contributions from neutral diffusion explicitly in time, including the K33 diagonal piece. This approach is available only when have small time steps and/or running with just a single tracer. It is for testing purposes.

neutral_physics_limit
logical

When tracer falls outside a specified range, revert to horizontal diffusive fluxes at this cell. This is an ad hoc and incomplete attempt to maintain monotonicity with the neutral physics scheme. Default neutral_physics_limit=.true.

tmask_neutral_on
logical

If .true. then this logical reduces the neutral fluxes to horizontal/vertical diffusion next to boundaries. This approach has been found to reduce spurious extrema resulting from truncation of triads used to compute a neutral flux component. Default tmask_neutral_on=.false.

use_this_module
logical

Must be true to use this module. Default is false.

debug_this_module
logical

For printing starting and ending checksums for restarts

Filename: src/mom5/ocean_param/neutral/ocean_nphysicsC.F90

Namelist: ocean_nphysicsC_nml

Name
Type
Default
Units
Description
smooth_advect_transport
logical

For doing a horizontal 1-2-1 smoothing on the diagnosed uhrho_et_gm and vhrho_nt_gm fields. Default smooth_advect_transport=.true.

smooth_advect_transport_num
integer

Number of iterations for the smooothing of horizontal transport. Default smooth_advect_transport_num=2.

do_neutral_diffusion
logical

To compute tendency from neutral diffusion. Default do_neutral_diffusion=.true.

do_gm_skewsion
logical

To compute tendency from GM skewsion. Default do_gm_skewsion=.true.

gm_skewsion_modes
logical

To compute tendency from GM skewsion using streamfunction established by baroclinic modes. Default gm_skewsion_modes=.false.

gm_skewsion_bvproblem
logical

To compute tendency from GM skewsion using streamfunction established by a boundary value problem. Default gm_skewsion_bvproblem=.true.

number_bc_modes
integer

The number of baroclinic modes used to construct the eddy induced streamfunction. Default number_bc_modes=1.

bvp_bc_mode
integer

The particular baroclinic mode used to construct the BVP streamfunction. If bvp_bc_mode=0, then will set bc_speed=0 when computing the BVP streamfunction. Default bvp_bc_mode=1.

bvp_constant_speed
logical

For taking a constant speed to be used for the calculation of the BVP streamfunction. Default bvp_constant_speed=.false.

bvp_speed
real
m/s

For setting the speed weighting the second order derivative operator in the BVP streamfunction method: c^2 = max[bvp_min_speed, (bvp_speed-c_mode)^2]. If bvp_constant_speed, then c^2 = bvp_speed^2. Default bvp_speed=0.0, in which case c^2 = c_mode^2.

bvp_min_speed
real
m/s

For setting a minimum speed for use with the calculation of the BVP streamfunction. We need bvp_min_speed>0 to ensure that the second order derivative operator contributes to the calculation of the streamfunction. Default bvp_min_speed=0.1.

regularize_psi
logical

To reduce the magnitude of psi in regions of weak stratification, using the slope = smax_psi to set the overall scale of the max allowed for psi. Default regularize_psi=.true.

smax_psi
real
epsln_bv_freq
real
kg/m4

Minimum buoyancy frequency accepted for the computation of baroclinic modes. Default epsln_bv_freq=1e-10. Note there is also a minimum drhodz set in ocean_density.F90 via the nml epsln_drhodz in that module. We provide yet another minimum here in case we need an extra regularization for the amplitude of the baroclinic modes.

min_bc_speed
real
m/s

The minimum speed used for computing the baroclinic modes. Default min_bc_speed=1e-6

smooth_psi
logical

For doing a horizontal 1-2-1 smoothing on the psix and psiy fields. This is useful to reduce noise. Default smooth_psi=.true.

smooth_bc_modes
logical

For doing a vertical 1-2-1 smoothing on the baroclinic modes prior to normalization. This is useful to reduce noise. Default smooth_bc_modes=.false.

bv_freq_smooth_vert
logical

To smooth the buoyancy frequency for use in computing the baroclinic modes. Generally this field has already been smooted in ocean_density_mod, but we maintain the possibility of further smoothing here. Default bv_freq_smooth_vert=.false.

num_121_passes
integer

The number of 121 passes used to smooth buoyancy frequency when bv_freq_smooth_vert=.true. Default num_121_passes=1.

dm_taper
logical

Set to true to use the tanh tapering scheme of Danabasoglu and McWilliams. Default is true.

gkw_taper
logical

Set to true to use the quadradic tapering scheme of Gerdes, Koberle, and Willebrand. Default is false.

turb_blayer_min
real

Minimum depth of a surface turbulent boundary layer used in the transition of the neutral diffusion fluxes to the surface. Note that in mom4p0, turb_blayer_min was always set to zero.

neutral_eddy_depth
logical

Compute eddy_depth according to depth over which eddies feel the ocean surface. Default neutral_eddy_depth=.true.

tmask_neutral_on
logical

If .true. then this logical reduces the neutral diffusive fluxes to horizontal/vertical diffusion next to boundaries. This approach has been found to reduce spurious extrema resulting from truncation of triads used to compute a neutral flux component. Default tmask_neutral_on=.false.

diffusion_all_explicit
logical

To compute all contributions from neutral diffusion explicitly in time, including the K33 diagonal piece. This approach is available only when have small time steps and/or running with just a single tracer. It is for testing purposes.

neutral_physics_limit
logical

When tracer falls outside a specified range, revert to horizontal diffusive fluxes at this cell. This is an ad hoc and incomplete attempt to maintain monotonicity with the neutral physics scheme. Default neutral_physics_limit=.true.

use_neutral_slopes_potrho
logical

To compute the neutral slopes based on globally referenced potential density rather than locally referenced potential density. This approach is meant solely for sensitivity studies; it is not meant for realistic simulations. Default use_neutral_slopes_potrho=.false.

neutral_slopes_potrho_press
real
dbar

The reference pressure used to compute neutral slopes when setting use_neutral_slopes_potrho=.true. Default neutral_slopes_potrho_press=2000.0

use_this_module
logical

Must be true to use this module. Default is false.

debug_this_module
logical

For printing starting and ending checksums for restarts

src/mom5/ocean_param/sources

Filename: src/mom5/ocean_param/sources/ocean_increment_eta.F90

Namelist: ocean_increment_eta_nml

Name
Type
Default
Units
Description
use_this_module
logical

For using this module. Default use_this_module=.false.

fraction_increment
real

For prescribing the fraction of the increment. applied to the restoring period. Default fraction_increment=1.0

days_to_increment
integer

For specifying the amount of days to restore. Default days_to_increment=1

secs_to_increment
integer

For specifying the amount of seconds to restore. Default secs_to_increment=0

Filename: src/mom5/ocean_param/sources/ocean_increment_tracer.F90

Namelist: ocean_increment_tracer_nml

Name
Type
Default
Units
Description
use_this_module
logical

For using this module. Default use_this_module=.false.

fraction_increment
real

For prescribing the fraction of the increment. applied to the restoring period. Default fraction_increment=1.0

days_to_increment
integer

For specifying the amount of days to restore. Default days_to_increment=1

secs_to_increment
integer

For specifying the amount of seconds to restore. Default secs_to_increment=0

Filename: src/mom5/ocean_param/sources/ocean_increment_velocity.F90

Namelist: ocean_increment_velocity_nml

Name
Type
Default
Units
Description
use_this_module
logical

For using this module. Default use_this_module=.false.

fraction_increment
real

For prescribing the fraction of the increment. applied to the restoring period. Default fraction_increment=1.0

days_to_increment
integer

For specifying the amount of days to restore. Default days_to_increment=1

secs_to_increment
integer

For specifying the amount of seconds to restore. Default secs_to_increment=0

Filename: src/mom5/ocean_param/sources/ocean_momentum_source.F90

Namelist: ocean_momentum_source_nml

Name
Type
Default
Units
Description
use_rayleigh_damp_table
logical

For reading in Rayleigh damping times from a table.

rayleigh_damp_exp_from_bottom
logical

For computing a Rayleigh damping time with largest at bottom and decaying towards surface.

rayleigh_damp_exp_scale
real
metre

Exponential decay scale from bottom upwards for computing the Rayleigh damping time.

rayleigh_damp_exp_time
real
verbose_init
logical

For verbose initialization information.

use_this_module
logical

Needs to be true in order to use this scheme. Default is false.

debug_this_module
logical

For debugging.

Filename: src/mom5/ocean_param/sources/ocean_overexchange.F90

Namelist: ocean_overexchange_nml

Name
Type
Default
Units
Description
use_this_module
logical

For using this module. Default use_this_module=.false.

debug_this_module
logical

For debugging

do_bitwise_exact_sum
logical

Set true to do bitwise exact global sum. When it is false, the global sum will be non-bitwise_exact, but will significantly increase efficiency. The default value is false.

overexch_weight_far
logical

To place more weight on points further from central point. This may be done to enhance properties getting downslope. Default is overexch_weight_far=.false.

overexch_check_extrema
logical

Check to be sure there are no global tracer extrema formed due to the overexch process. Note that this approach DOES NOT conserve tracer, so it is not generally recommended. Default overexch_check_extrema=.false.

overexch_npts
integer

Number of points used in search for the exchange method. Default overexch_npts=1. Note: it is not possible to have overexch_npts greater than or equal to the computational domain extents, as this would require updates across multiple processors. Default overexch_npts=1.

overexch_width
integer

Width of the re-weighting function used to emphasize the points further along in the search for exchange points. Default overexch_width=1.

overflow_mu
real
sec^-1

Dissipation rate for the bottom friction. Campin and Goosse suggest overflow_mu=10^-4

overflow_delta
real
dimensionless

Fraction of a grid cell participating in the overflow process. Campin and Goosse suggest overflow_delta=1/3.

overflow_umax
real
m/s

Maximum downslope speed used for determining the exchange rate. Default overflow_umax=1.0.

overexch_stability
real

Stability factor for determining the maximum overexch_flux. Default overexch_stability=0.25

overexch_min_thickness
real
metre

Minimum bottom cell thickness allowed for use of this scheme. Have found that with very thin cells, the model can become very unstable. Default overexch_min_thickness=4.0

Filename: src/mom5/ocean_param/sources/ocean_overflow.F90

Namelist: ocean_overflow_nml

Name
Type
Default
Units
Description
transport_units
character(len=32)
use_this_module
logical

For using this module. Default is false.

debug_this_module
logical

For debugging

do_bitwise_exact_sum
logical

Set true to do bitwise exact global sum. When it is false, the global sum will be non-bitwise_exact, but will significantly increase efficiency. The default value is false.

no_return_flow
logical

Set true to remove the Campin and Goose return flow "piping". Default no_return_flow=.false. to recover the standard approach from Campin and Goose.

overflow_mu
real
inverse seconds

Dissipation rate for the bottom friction. Campin and Goosse suggest overflow_mu=10^-4

overflow_delta
real
dimensionless

Fraction of a grid cell participating in the overflow process. Campin and Goosse suggest overflow_delta=1/3.

overflow_umax
real
m/s

Maximum downslope speed.

Filename: src/mom5/ocean_param/sources/ocean_overflow_OFP.F90

Namelist: ocean_overflow_OFP_nml

Name
Type
Default
Units
Description
use_this_module
logical

For using this module. Default use_this_module=.false.

debug_this_module
logical

For debugging. Default is false.

crit_Fr_geo_ofp
real

Maximum overflow speed at the source region Default is 3.0 m/s

frac_exchange_src
real

Areal fraction of the overflow exchange at the source region Default is 1.0

max_ofp_speed
real

Maximum overflow speed [m^/s] Default is 2.0

do_mass_ofp
logical

Considering the mass source in the overflow process Default is .true.

diag_step
integer

Diagnostic time step for OFP. Default is diag_step = -1 The diagnostic output is saved in the ascii directory as the ascii format.

do_entrainment_para_ofp
logical

Considering the parameterization of entrainment process in the overflow process Default is .true.

Filename: src/mom5/ocean_param/sources/ocean_rivermix.F90

Namelist: ocean_rivermix_nml

Name
Type
Default
Units
Description
river_insertion_thickness
real
meter

Thickness of the column over which to insert tracers from rivers. Default river_insertion_thickness=0.0 (all in top).

runoff_insertion_thickness
real
meter

Thickness of the column over which to insert tracers carried by liquid runoff. Default runoff_insertion_thickness=0.0 (all in top).

calving_insertion_thickness
real
meter

Thickness of the column over which to insert tracers carried by solid runoff. Default calving_insertion_thickness=0.0 (all in top).

river_diffusion_thickness
real
meter

Thickness of the column over which to diffuse tracers from rivers.

river_diffusivity
real
m^2/s

Vertical diffusivity enhancement at river mouths which is applied to a depth of river_diffusion_thickness, with linear tapering to zero enhancement from the ocean surface to river_diffusion_thickness.

river_diffuse_temp
logical

Logical to determine if enhance vertical diffusion of temp at river mouths

river_diffuse_salt
logical

Logical to determine if enhance vertical diffusion of salt and all other passive tracers at river mouths

discharge_combine_runoff_calve
logical

Set discharge_combine_runoff_calve=.true. to discharge combined tracer carried by liquid and solid runoff. This approach is sensible when ocean assigns a tracer content to the liquid and solid runoff fields. The alternative is to have a land model that provides information about the tracer coming into the ocean from land water, in which case it is preferable to set discharge_combine_runoff_calve=.false., so to do the runoff and calving separately. Default discharge_combine_runoff_calve=.true.

do_bitwise_exact_sum
logical

Set true to do bitwise exact global sum. When it is false, the global sum will be non-bitwise_exact, but will significantly increase efficiency. The default value is do_bitwise_exact_sum=.false.

debug_this_module
logical

For debugging

debug_all_in_top_cell
logical

For debugging, by placing all in top cell, regardless value of river_insertion_thickness.

debug_this_module_heat
logical

For debugging, print global sum of heating rate by river water.

use_this_module
logical

Must be true to enable this module. Default=.true., since this is the only way that tracer in river water enters the ocean.

Filename: src/mom5/ocean_param/sources/ocean_riverspread.F90

Namelist: ocean_riverspread_nml

Name
Type
Default
Units
Description
use_this_module
logical

Must be true to enable this module. Default=.false.

debug_this_module
logical

For debugging. Default=.false.

riverspread_diffusion
logical

For spreading river water via a Laplacian diffusion operation. Default=.false.

riverspread_diffusion_passes
integer

Number of diffusion passes applied to the runoff/calving array. Default riverspread_diffusion_passes = 0.

vel_micom_smooth
real
m/sec

Velocity scale that is used for computing the MICOM Laplacian mixing coefficient used in the Laplacian smoothing of river water. Default vel_micom_smooth=0.2.

Filename: src/mom5/ocean_param/sources/ocean_shortwave.F90

Namelist: ocean_shortwave_nml

Name
Type
Default
Units
Description
use_this_module
logical
use_shortwave_gfdl
logical
use_shortwave_csiro
logical
use_shortwave_jerlov
logical
use_shortwave_ext
logical

Filename: src/mom5/ocean_param/sources/ocean_shortwave_csiro.F90

Namelist: ocean_shortwave_csiro_nml

Name
Type
Default
Units
Description
use_this_module
logical
read_depth
logical

If .true. then read in e folding depth for radiation attenuation.

debug_this_module
logical

For debugging purposes.

enforce_sw_frac
logical

To ensure the shortwave fraction is monotonically decreasing with depth.

sw_pen_fixed_depths
logical

To compute penetration assuming fixed depths via Grd%zw(k) depths. This is strictly incorrect when have undulating free surface or generatlized vertical coordinates. This option is here for purposes of legacy, as this was done in MOM4.0 versions. The default is .false.

depth_default
real
mg/m^3

Default efolding depth = 20m.

zmax_pen
real
meter

Maximum depth of penetration of shortwave radiation. Below this depth, shortwave penetration is exponentially small and so is ignored.

sw_frac_top
real

The fraction of shortwave radiation that should be incorporated into the sw_source array at k=1. The generic treatment in MOM is to assume that shortwave radiation is already contained inside the T_prog(index_temp)%stf field. Hence, to avoid double counting, sw_frac(k=0)=sw_frac_top should=0.0. If one removes shortwave from stf, then set sw_frac_top=1.0.

Filename: src/mom5/ocean_param/sources/ocean_shortwave_gfdl.F90

Namelist: ocean_shortwave_gfdl_nml

Name
Type
Default
Units
Description
use_this_module
logical

Must be .true. to run with module. Default is false.

read_chl
logical

If .true. then read in climatological data of chlorophyll-a.

optics_morel_antoine
logical

For using the Morel and Antoine optics. This was the default in MOM4.0 for use with chlorophyll data. This scheme is NOT available in MOM4p1 for use with the prognostic biology models, since it has been improved by the Manizza scheme. Default optics_morel_antoine=.false.

optics_manizza
logical

For using the Manizza optics with chlorophyll data. Note that when running with a prognostic biology model, GFDL scientists use the Manizza optics. Default optics_manizza=.false.

debug_this_module
logical

For debugging purposes.

enforce_sw_frac
logical

To ensure the shortwave fraction is monotonically decreasing with depth. Applied only if optics_morel=.true. Default enforce_sw_frac=.true.

override_f_vis
logical

To fix the fraction of incoming shortwave assigned to the visible at 0.57.

sw_morel_fixed_depths
logical

To compute penetration assuming fixed depths via Grd%zw(k) depths. This is strictly incorrect when have undulating free surface and/or generatlized vertical coordinates. This option is here for purposes of legacy, as this was done in MOM4.0 versions. The default is sw_morel_fixed_depths=.false.

optics_for_uniform_chl
logical

To set the coefficients for optical model assuming the chlorophyll has a uniform distribution. Default optics_for_uniform_chl=.false.

chl_default
real
mg/m^3

Default concentration chl_default=0.08 roughly yields Jerlov Type 1A optics.

zmax_pen
real
meter

Maximum depth of penetration of shortwave radiation. Below this depth, shortwave penetration is exponentially small and so is ignored. This option formerly was useful, since computation of exponentials expensive. But with more modern computers, exponentials are cheap, so the default has been changed from 200 to 1e6, making this option irrelevant. But the option remains both for legacy purposes, and for those computers where exponentials are not cheap. Default zmax_pen=1e6.

sw_frac_top
real

The fraction of shortwave radiation that should be incorporated into the sw_source array at k=1. The generic treatment in MOM is to assume that shortwave radiation is already contained inside the T_prog(index_temp)%stf field. Hence, to avoid double counting, sw_frac(k=0)=sw_frac_top should=0.0. If one removes shortwave from stf, then set sw_frac_top=1.0.

Filename: src/mom5/ocean_param/sources/ocean_shortwave_jerlov.F90

Namelist: ocean_shortwave_jerlov_nml

Name
Type
Default
Units
Description
f_vis_in
real

F_vis is the amount of light in the shortwave versus the long wave. F_vis=0.54 on sunny days and F_vis=0.60 on cloudy days. With override_f_vis = .true. F_vis is defined from f_vis_in. We believe, that this effect is in the first exponential in Paulson and Simpson (1977). The default is f_vis_in=1., instead of .57 but it is still possible to define this quantity.

use_this_module
logical
debug_this_module
logical

For debugging purposes.

enforce_sw_frac
logical

To ensure the shortwave fraction is monotonically decreasing with depth.

override_f_vis
logical

With override_f_vis = .true. F_vis is defined from f_vis_in, otherwise it is the shortwave versus the long wave amount of light. The default is .true.

override_coeff
logical

With override_coeff = .true. rpart_in, coef1_in, coef2_in specify the parameters for the double exponential. The default is .false..

sw_pen_fixed_depths
logical

To compute penetration assuming fixed depths via Grd%zw(k) depths. This is strictly incorrect when have undulating free surface or generatlized vertical coordinates. This option is here for purposes of legacy, as this was done in MOM4.0 versions. It saves some compute time if the surface elevation is small compared with the upper cells' thickness. The default is .false.

jerlov_1
logical
jerlov_2
logical
jerlov_3
logical
jerlov_1a
logical
jerlov_1b
logical
baltic_optics
logical
rpart_in
real

rpart_in = (0..1)

coef1_in
real
meter
coef2_in
real
meter
zmax_pen
real
meter

Maximum depth of penetration of shortwave radiation. Below this depth, shortwave penetration is exponentially small and so is ignored.

sw_frac_top
real

The fraction of shortwave radiation that should be incorporated into the sw_source array at k=1. The generic treatment in MOM is to assume that shortwave radiation is already contained inside the T_prog(index_temp)%stf field. Hence, to avoid double counting, sw_frac(k=0)=sw_frac_top should=0.0. If one removes shortwave from stf, then set sw_frac_top=1.0.

Filename: src/mom5/ocean_param/sources/ocean_sponges_eta.F90

Namelist: ocean_sponges_eta_nml

Name
Type
Default
Units
Description
use_this_module
logical

For using this module. Default use_this_module=.false.

Filename: src/mom5/ocean_param/sources/ocean_sponges_tracer.F90

Namelist: ocean_sponges_tracer_nml

Name
Type
Default
Units
Description
damp_coeff_3d
logical

For case when damping coefficients are full 3d field of values. Default damp_coeff_3d=.false., which means damping coeffs are 2d horizontal array.

use_this_module
logical

For using this module. Default use_this_module=.false.

Filename: src/mom5/ocean_param/sources/ocean_sponges_velocity.F90

Namelist: ocean_sponges_velocity_nml

Name
Type
Default
Units
Description
damp_coeff_3d
logical

For case when damping coefficients are full 3d field of values. Default damp_coeff_3d=.false., which means damping coeffs are 2d horizontal array.

use_this_module
logical

For using this module. Default use_this_module=.false.

Filename: src/mom5/ocean_param/sources/ocean_xlandinsert.F90

Namelist: ocean_xlandinsert_nml

Name
Type
Default
Units
Description
verbose_init
logical

For verbose initialization information.

use_this_module
logical

Needs to be true in order to use this scheme. Default is false.

debug_this_module
logical

For debugging.

Filename: src/mom5/ocean_param/sources/ocean_xlandmix.F90

Namelist: ocean_xlandmix_nml

Name
Type
Default
Units
Description
verbose_init
logical

For verbose initialization information.

use_this_module
logical

Needs to be true in order to use this scheme. Default is false.

xlandmix_kmt
logical

To allow xlandmixing to occur at k=kmt cell. Default is xlandmix_kmt=.false.

src/mom5/ocean_param/vertical

Filename: src/mom5/ocean_param/vertical/ocean_convect.F90

Namelist: ocean_convect_nml

Name
Type
Default
Units
Description
use_this_module
logical

Must be true to use this module. Default is false.

convect_ncon
logical

If true, will use the old NCON convection scheme from Cox. Retained only for legacy purposes to reproduce very old results.

convect_full_scalar
logical

If true, will use the full convection scheme as implemented at GFDL for scalar machines.

convect_full_vector
logical

If true, will use the full convection scheme as optimized for vector machines by russell.fiedler@csiro.au.

ncon
integer

Number of passes through the NCON-scheme.

Filename: src/mom5/ocean_param/vertical/ocean_form_drag.F90

Namelist: ocean_form_drag_nml

Name
Type
Default
Units
Description
use_form_drag_aiki
logical

For using the Aiki form drag approach.

form_drag_aiki_bottom_layer
logical

For implementing the Aiki form drag just in a selected number of bottom layers. Will still insist that the scheme conserves momentum, as a form drag scheme should do. Default form_drag_aiki_bottom_layer=.false.

form_drag_aiki_scale_by_gradH
logical

For scaling the coefficient used by the form drag scheme with the bottom slope.

form_drag_aiki_gradH_max
real

For scaling setting the maximum of the bottom slope for use with scaling the form drag coefficient. Default form_drag_aiki_gradH_max=.05

form_drag_aiki_gradH_power
real

For scaling the coefficient used by the form drag scheme with the bottom slope raised to the power "form_drag_aiki_gradH_power".

form_drag_aiki_bottom_klevels
integer

Number of klevels above the bottom that we choose to close the Aiki form drag scheme. Default form_drag_aiki_bottom_klevels=3. This should ideally be less than the minimum number of klevels in the model.

cprime_aiki
real
dimensionless

Dimensionless parameters from the Aiki etal scheme. Default cprime_aiki=0.3.

use_form_drag_gbatch
logical

For using the Greatbatch form drag approach, which places the contributions from "GM" into the momentum equation. use_form_drag_gbatch, is the traditional transformed Eulerian mean approach as per Greatbatch and Lamb (1990) and Greatbatch (1998). In this approach, we modify visc_cbu so that the the "GM-effects" occur through vertical viscosity. Since thise scheme is experimental, it is not recommended for general use, so we set default use_form_drag_gbatch=.false.

form_drag_gbatch_surf_layer
logical

Logical to enable the use of a diabatic layer over which the eddy-induce velocity is assumed to be constant with depth. Default form_drag_gbatch_surf_layer=.false.

form_drag_gbatch_alpha_f2
logical

For use of a vertical viscosity with the form_drag_gbatch that is equal to visc = form_drag_gbatch_alpha * f^2. This form of the vertical viscosity is used by Ferreira and Marshall, 2006. Default form_drag_gbatch_alpha_f2=.false.

form_drag_gbatch_f2overN2
logical

To compute vertical viscosity according to visc=kappa(f/N)*2 with kappa=gm-diffusivity, f=Coriolis, and N=buoyancy frequency. This is the form suggested by Greatbatch and Lamb (1990). Default form_drag_gbatch_f2overN2=.false.

form_drag_gbatch_f2overNb2
logical

To compute vertical viscosity according to visc=kappa(f/Nb)*2 with kappa=gm-diffusivity, f=Coriolis, and Nb=buoyancy frequency just below the diabatic mixed layer. This is the form suggested by Danabasoglu and Marshall (2007). Default form_drag_gbatch_f2overNb2=.false.

form_drag_gbatch_f2overNo2
logical

To compute vertical viscosity according to visc=kappa(f/No)*2 with kappa=gm-diffusivity, f=Coriolis, and No=constant buoyancy frequency set via namelist. Default form_drag_gbatch_f2overNo2=.false.

form_drag_gbatch_smooth_N2
logical

For vertically smoothing the squared buoyancy frequency for use in computing the vertical viscosity in the form drag approach. Default form_drag_gbatch_smooth_N2=.false.

form_drag_aiki_scale_by_gm
logical

Compute a dimensionless scale function proportional to the GM-diffusivity, for use with the Aiki etal form drag scheme. Default form_drag_aiki_scale_by_gm=.false.

num_121_passes
integer

Number of 1-2-1 passes for vertically smoothing the squared buoyancy frequency. Default num_121_passes=1.

ksurf_blayer_min
integer

Minimum number of vertical grid points in the surface turbulent boundary layer for use with form_drag_gbatch_surf_layer=.true. Default ksurf_blayer_min=3.

form_drag_gbatch_alpha
real
m^2*sec

For use of a vertical viscosity with the form_drag_gbatch that is equal to visc = form_drag_gbatch_alpha * f^2. Default form_drag_gbatch_alpha=3e8

form_drag_gbatch_No
real
sec^-1

To compute vertical viscosity according to visc=kappa(f/No)*2 with kappa=gm-diffusivity, f=Coriolis, and No=constant buoyancy frequency. Default form_drag_gbatch_No=5e-3

visc_cbu_form_drag_max
real
m^2/sec

Maximum vertical viscosity used for the form drag contribution to vertical friction from the Greatbatch TEM approach. Default visc_cbu_form_drag_max=1m^2/sec.

vel_form_drag_max
real
m/sec

For diagnostic purpuses, maximum form drag eddy induced velocity. Default vel_form_drag_max=1m/sec.

N_squared_min
real
1/sec

Minimum sequared buoyancy frequency (N^2) for use in computing the vertical viscosity from the Greatbatch form drag scheme. Default N_squared_min=1e-10.

agm_form_drag
real
verbose_init
logical

For verbose initialization information.

use_this_module
logical

Needs to be true in order to use this scheme. Default is false.

debug_this_module
logical

For debugging.

Filename: src/mom5/ocean_param/vertical/ocean_vert_chen.F90

Namelist: ocean_vert_chen_nml

Name
Type
Default
Units
Description
visc_cbu_limit
real
m^2/sec

Enhanced vertical viscosity due to shear instability

diff_cbt_limit
real
m^2/sec

Enhanced vertical diffusivity due to shear instability

visc_con_limit
real
diff_con_limit
real
visc_cbu_iw
real
m^2/sec

Background vertical viscosity

diff_cbt_iw
real
m^2/sec

Background vertical diffusivity. Note that if using Bryan-Lewis as a background diffusivity, then should set diff_cbt_iw=0.0.

bulk_tm
real

Bulk turblence parameter m_0

bulk_tn
real

Bulk turblence parameter n_0

hbl_growth_max
real
m/sec

Maximum growth rate of kraus mixed layer

use_this_module
logical

Must be true to use this module. Default is false.

debug_this_module
logical

For debugging. Default debug_this_module=.false.

Filename: src/mom5/ocean_param/vertical/ocean_vert_const.F90

Namelist: ocean_vert_const_nml

Name
Type
Default
Units
Description
use_this_module
logical

Must be true to use this module. Default is false.

kappa_h
real
m^2/sec

The constant vertical diffusivity. Used for cases when wanting a space-time independent diffusivity. The "h" is historical and stands for "heat".

kappa_m
real
m^2/sec

The constant vertical viscosity. Used for cases when wanting a space-time independent viscosity.

diff_cbt_limit
real
m^2/sec

The largest allowable vertical diffusivity. Of use for cases where vertically unstable columns are stabilized with a large vertical diffusivity.

Filename: src/mom5/ocean_param/vertical/ocean_vert_gotm.F90

Namelist: ocean_vert_gotm_nml

Name
Type
Default
Units
Description
advect_gotm_method
character(len=10)

For choosing how to advect the GOTM scalar fields tke and diss. Options are advect_gotm_method='upwind' (the default) advect_gotm_method='sweby'

use_this_module
logical

Must be true to use this module. Default is .false.

debug_this_module
logical

For debugging. Default is .false.

do_turbulence_gotm
logical

For debugging. If do_turbulence_gotm=.false., then will not invoke the GOTM scheme. Will only advect tke and diss using 3d advection scheme. Default is .true., so that will invoke GOTM scheme.

do_advection_gotm
logical

For debugging. If do_advection_gotm=.false., then will not invoke the advection of tke and diss. Default is .true., so that will 3d advect tke and diss.

write_a_restart
logical

Set true to write a restart. False setting only for rare cases where wish to benchmark model without measuring the cost of writing restarts and associated chksums. Default is write_a_restart=.true.

map_velocity_gotm
logical
map_production_gotm
logical
correct_adv_errors
logical
diff_cbt_min
real
m^2/sec

Background diffusivity. Default is 1.0e-5.

visc_cbu_min
real
m^2/sec

Background viscosity. Default is 1.0e-5.

z0s
real
m

Surface roughness length. Default is 1m.

z0b
real
m

Bottom roughness length. Default is .002m.

min_tke
real
m^2/s^2

Minimum turbulent kinetic energy. Default=1.0e-6.

min_diss
real
m^2/s^3

Minimum energy dissipation. Default=1.0e-10.

Filename: src/mom5/ocean_param/vertical/ocean_vert_kpp_mom4p0.F90

Namelist: ocean_vert_kpp_mom4p0_nml

Name
Type
Default
Units
Description
Ricr
real
dimensionless

Critical bulk Richardson number. Default from NCAR is 0.3, though this number has a large uncertainty and some find that 1.0 can be of use.

visc_cbu_limit
real
m^2/sec

Enhanced vertical viscosity due to shear instability

diff_cbt_limit
real
m^2/sec

Enhanced vertical diffusivity due to shear instability

visc_con_limit
real
m^2/sec

Enhanced vertical viscosity in regions of convection

diff_con_limit
real
m^2/sec

Enhanced vertical diffusivity in regions of convection

visc_cbu_iw
real
m^2/sec

Background vertical viscosity

diff_cbt_iw
real
m^2/sec

Background vertical diffusivity. Note that if using Bryan-Lewis as a background diffusivity, then should set diff_cbt_iw=0.0.

concv
real
dimensionless

constant for pure convection (eqn. 23 of Large etal)

use_this_module
logical

Logical switch to enable kpp diffusion. Default is false.

shear_instability
logical

logical switch for shear instability mixing. Default shear_instability=.true.

double_diffusion
logical

Logical switch for double-diffusive mixing. Default double_diffusion=.true.

wsfc_combine_runoff_calve
logical

For computing wsfc as in the mom4p0d code, where we combine the runoff+calving into a single field called river. The alternative keeps the fields separate, as would be appropriate for a land model that separately tracks the tracer content in the calving and runoff. Default wsfc_combine_runoff_calve=.true., as this will recover the previous behaviour, to the bit.

non_local_kpp
logical

logical switch for enabling the non-local mixing aspect of kpp. Default is .true. as this is what the original KPP scheme suggests.

smooth_blmc
logical

Smooth boundary layer diffusitivies to remove grid scale noise. Such noise is apparent in the diagnosed mixed layer depth as well as the SST, especially when running coupled models where forcing has high temporal frequency.

coastal_tidal_mix
logical

For adding an extra vertical shear associated with tidal mixing. This method has found to be of use for mixing near shelves.

sigma_tide
real

The sigma constant in the Munk-Anderson scheme Default sigma_tide=3.0

p_tide
real

The p constant in the Munk-Anderson scheme Default p_tide=-0.25

int_tidal_mix
logical

For adding an internal tidal mixing over rough topography. This method has found to be of use for mixing in the rough topography in open ocean. Default int_tidal_mix=.false.

int_tide_zeta1
real
metre

Shallow depth for computation of internal tide. Default int_tide_zeta1=300.0

int_tide_zeta2
real
metre

Deeper depth for computation of internal tide. Default int_tide_zeta2=1800.0

int_tide_min_depth
real
metre

Minimum depth for internal tide mixing to be computed. Default int_tide_min_depth=100.0

int_tide_q
real
dimensionless

Fraction of internal tide energy locally dissipated. Default int_tide_q=.33333

int_tide_gamma
real
dimensionless

Dimensionless efficiency for converting energy dissipation to diffusivity. Default int_tide_gamma=0.2

Filename: src/mom5/ocean_param/vertical/ocean_vert_kpp_mom4p1.F90

Namelist: ocean_vert_kpp_mom4p1_nml

Name
Type
Default
Units
Description
Ricr
real
dimensionless

Critical bulk Richardson number. Default from NCAR is 0.3, though this number has a large uncertainty and some find that 1.0 can be of use.

visc_cbu_limit
real
m^2/sec

Enhanced vertical viscosity due to shear instability

diff_cbt_limit
real
m^2/sec

Enhanced vertical diffusivity due to shear instability

visc_con_limit
real
m^2/sec

Enhanced vertical viscosity in regions of convection

diff_con_limit
real
m^2/sec

Enhanced vertical diffusivity in regions of convection

visc_cbu_iw
real
m^2/sec

Background vertical viscosity

diff_cbt_iw
real
m^2/sec

Background vertical diffusivity. Note that if using Bryan-Lewis as a background diffusivity, then should set diff_cbt_iw=0.0.

concv
real
dimensionless

constant for pure convection (eqn. 23 of Large etal)

kl_min
integer

Lower loop index for finding new kbl. Needed for use with certain tests of OBC, where kl_min=1 needed, whereas default in original implementation has kl_min=2. Default in MOM is kl_min=2.

kbl_standard_method
logical

For computing kbl as in the MOM4p0d code, which is taken from the original NCAR scheme. If false, then will slightly modify the logic. The modified logic has been found necessary when running with as few as two grid cells in the vertical. Default kbl_standard_method=.true.

use_this_module
logical

Logical switch to enable kpp diffusion. Default is false.

shear_instability
logical

logical switch for shear instability mixing. Default shear_instability=.true.

double_diffusion
logical

Logical switch for double-diffusive mixing. Default double_diffusion=.true.

limit_ghats
logical

Limits the non-local vertical tracer flux to the value of the tracer surface flux. Default limit_ghats=.false.

limit_with_hekman
logical

Limiting the boundary layer depth with the Ekman depth may result in a shallow boundary layer. In this case the internal values of the vertical mixing and viscosity coefficients may be large. This results in unrealistically large non-local vertical mixing Default limit_with_hekman=.true.

radiation_large
logical

Remove the shortwave radiation leaving the boundary layer to the ocean interior (hence, not absorbed in the boundary layer) from non-local vertical heat flux Default radiation_large=.false.

radiation_zero
logical

Remove the all shortwave radiation from non-local vertical heat flux. Default radiation_zero=.false.

radiation_iow
logical

Keep only the shortwave radiation absorbed between the surface and a certain level in non-local vertical heat flux through this level. Default radiation_iow=.false.

hbl_with_rit
logical

The default method for determination of the boundary layer depth may fail if the water column is instable (negative Richardson number) below or above the layer that contains the diagnosed hbl. With hbl_with_rit=.true. the search for the boundary layer depth is continued downward in this case even if the bulk Richardson number exceeds the critical value. This removes a lot of noise from the boundary layer depth. Default hbl_with_rit=.false.

use_sbl_bottom_flux
logical
wsfc_combine_runoff_calve
logical

For computing wsfc as in the MOM4p0d code, where we combine the runoff+calving into a single field called river. The alternative keeps the fields separate, as would be appropriate for a land model that separately tracks the tracer content in the calving and runoff. Default wsfc_combine_runoff_calve=.true., as this will recover the previous behaviour, to the bit.

bvf_from_below
logical

Use BV-freq. at the cell bottom instead of the cell top as in Danabasoglu et al. (2006). Default bvf_from_below=.false., as this will recover older behaviour.

variable_vtc
logical

Make vtc dependent on BV-freq. as in Danabasoglu et al. (2006). Default variable_vtc=.false., as this will recover older behaviour.

use_max_shear
logical

Use maximum shear instead of 4-point average (as in Danabasoglu et al. (2006)). Default use_max_shear=.false., as this will recover older behaviour.

linear_hbl
logical

Use linear interpolation to find the position of hbl. If set to false, then use the quadratic interpolation as in Danabasoglu et al. (2006). The quadratic approach generally yields a slightly deeper surface boundary layer. Default linear_hbl=.true., as this will recover older behaviour.

calc_visc_on_cgrid
logical
smooth_ri_kmax_eq_kmu
logical

When smoothing the Richardson number, we do so over a vertical column with max k-levels set by either kmt or kmu. The proper approach is kmu, since we are smoothing riu. But for backwards compatibility, we default to smooth_ri_kmax_eq_kmu=.false.

non_local_kpp
logical

logical switch for enabling the non-local mixing aspect of kpp. Default is .true. as this is what the original KPP scheme suggests.

smooth_blmc
logical

Smooth boundary layer diffusitivies to remove grid scale noise. Such noise is apparent in the diagnosed mixed layer depth as well as the SST, especially when running coupled models where forcing has high temporal frequency. Default smooth_blmc=.false. Warning: This smoother can cause some problems with ghat in regions of zero surface forcing. To understand details, one needs the paper of Large et al. Vertical diffusion has the general form wx = K(x_z - ghats) In the surface layer a vertical scale function ws is estimated. We have K ~ ws and ghats ~1/ws. If wind stress is zero the vertical scale ws becomes zero too. Hence, ghats is very large (something finite, since it is divided by ws+epsln). Now it may happen, that the bouyancy flux becomes negative (~ -10-30). This enables the nonlocal scheme. Because the mixing coefficient in the surface boundary layer scales with ws the corresponding time tendency should be of the order (1/ws * ws = finite). However, if smooth_blmc is enabled, it may happen, that from neighbouring points with different mixing depth a finite value for the mixing coefficient leaks in. In this case the tracer time tendency from the nonlocal scheme becomes huge and the model fails. The smoother destroys the consistency between ghats and diff_cbt. In most cases this should not matter, but the example shows, that sudden model failure is possible under otherwise stable and smooth conditions.

debug_this_module
logical

Logical switch for debugging. Default debug_this_module=.false.

Filename: src/mom5/ocean_param/vertical/ocean_vert_kpp_test.F90

Namelist: ocean_vert_kpp_test_nml

Name
Type
Default
Units
Description
Ricr
real
dimensionless

Critical bulk Richardson number. Default from NCAR is 0.3, though this number has a large uncertainty and some find that 1.0 can be of use.

visc_cbu_limit
real
m^2/sec

Enhanced vertical viscosity due to shear instability

diff_cbt_limit
real
m^2/sec

Enhanced vertical diffusivity due to shear instability

visc_con_limit
real
m^2/sec

Enhanced vertical viscosity in regions of convection

diff_con_limit
real
m^2/sec

Enhanced vertical diffusivity in regions of convection

visc_cbu_iw
real
m^2/sec

Background vertical viscosity

diff_cbt_iw
real
m^2/sec

Background vertical diffusivity. Note that if using Bryan-Lewis as a background diffusivity, then should set diff_cbt_iw=0.0.

concv
real
dimensionless

constant for pure convection (eqn. 23 of Large etal)

kl_min
integer

Lower loop index for finding new kbl. Needed for use with certain tests of OBC, where kl_min=1 needed, whereas default in original implementation has kl_min=2. Default in MOM is kl_min=2.

kbl_standard_method
logical

For computing kbl as in the MOM4p0d code, which is taken from the original NCAR scheme. If false, then will slightly modify the logic. The modified logic has been found necessary when running with as few as two grid cells in the vertical. Default kbl_standard_method=.true.

use_this_module
logical

Logical switch to enable kpp diffusion. Default is false.

shear_instability
logical

logical switch for shear instability mixing. Default shear_instability=.true.

double_diffusion
logical

Logical switch for double-diffusive mixing. Default double_diffusion=.true.

limit_ghats
logical

Limits the non-local vertical tracer flux to the value of the tracer surface flux. Default limit_ghats=.false.

limit_with_hekman
logical

Limiting the boundary layer depth with the Ekman depth may result in a shallow boundary layer. In this case the internal values of the vertical mixing and viscosity coefficients may be large. This results in unrealistically large non-local vertical mixing Default limit_with_hekman=.true.

radiation_large
logical

Remove the shortwave radiation leaving the boundary layer to the ocean interior (hence, not absorbed in the boundary layer) from non-local vertical heat flux Default radiation_large=.false.

radiation_zero
logical

Remove the all shortwave radiation from non-local vertical heat flux. Default radiation_zero=.false.

radiation_iow
logical

Keep only the shortwave radiation absorbed between the surface and a certain level in non-local vertical heat flux through this level. Default radiation_iow=.false.

hbl_with_rit
logical

The default method for determination of the boundary layer depth may fail if the water column is instable (negative Richardson number) below or above the layer that contains the diagnosed hbl. With hbl_with_rit=.true. the search for the boundary layer depth is continued downward in this case even if the bulk Richardson number exceeds the critical value. This removes a lot of noise from the boundary layer depth. Default hbl_with_rit=.false.

use_sbl_bottom_flux
logical
wsfc_combine_runoff_calve
logical

For computing wsfc as in the MOM4p0d code, where we combine the runoff+calving into a single field called river. The alternative keeps the fields separate, as would be appropriate for a land model that separately tracks the tracer content in the calving and runoff. Default wsfc_combine_runoff_calve=.true., as this will recover the previous behaviour, to the bit.

bvf_from_below
logical

Use BV-freq. at the cell bottom instead of the cell top as in Danabasoglu et al. (2006). Default bvf_from_below=.false., as this will recover older behaviour.

variable_vtc
logical

Make vtc dependent on BV-freq. as in Danabasoglu et al. (2006). Default variable_vtc=.false., as this will recover older behaviour.

use_max_shear
logical

Use maximum shear instead of 4-point average (as in Danabasoglu et al. (2006)). Default use_max_shear=.false., as this will recover legacy behaviour.

linear_hbl
logical

Use linear interpolation to find the position of hbl. If set to false, then use the quadratic interpolation as in Danabasoglu et al. (2006). The quadratic approach generally yields a slightly deeper surface boundary layer. Default linear_hbl=.true., as this will recover older behaviour.

smooth_ri_kmax_eq_kmu
logical

When smoothing the Richardson number, we do so over a vertical column with max k-levels set by either kmt or kmu. The proper approach is kmu, since we are smoothing riu. But for backwards compatibility, we default to smooth_ri_kmax_eq_kmu=.false.

non_local_kpp
logical

logical switch for enabling the non-local mixing aspect of kpp. Default is .true. as this is what the original KPP scheme suggests.

smooth_blmc
logical

Smooth boundary layer diffusitivies to remove grid scale noise. Such noise is apparent in the diagnosed mixed layer depth as well as the SST, especially when running coupled models where forcing has high temporal frequency. Default smooth_blmc=.false. Warning: This smoother can cause some problems with ghat in regions of zero surface forcing. To understand details, one needs the paper of Large et al. Vertical diffusion has the general form wx = K(x_z - ghats) In the surface layer a vertical scale function ws is estimated. We have K ~ ws and ghats ~1/ws. If wind stress is zero the vertical scale ws becomes zero too. Hence, ghats is very large (something finite, since it is divided by ws+epsln). Now it may happen, that the bouyancy flux becomes negative (~ -10-30). This enables the nonlocal scheme. Because the mixing coefficient in the surface boundary layer scales with ws the corresponding time tendency should be of the order (1/ws * ws = finite). However, if smooth_blmc is enabled, it may happen, that from neighbouring points with different mixing depth a finite value for the mixing coefficient leaks in. In this case the tracer time tendency from the nonlocal scheme becomes huge and the model fails. The smoother destroys the consistency between ghats and diff_cbt. In most cases this should not matter, but the example shows, that sudden model failure is possible under otherwise stable and smooth conditions.

debug_this_module
logical

Logical switch for debugging. Default debug_this_module=.false.

Filename: src/mom5/ocean_param/vertical/ocean_vert_mix.F90

Namelist: ocean_vert_mix_nml

Name
Type
Default
Units
Description
vert_mix_scheme
character(len=10)

To determine the vertical mixing scheme: "const", "kpp", "kpp_mom4p0","kpp_mom4p1", "chen", "pp", or "gotm".

aidif
real

aidif=1 for implicit in time solution of the vertical mixing equation. aidif=0 for explicit in time solution of the vertical mixing equation. semi-implicit method with 0 < aidif < 1 is not fully supported in MOM.

vert_diff_back_via_max
logical

If .true. then include a static background diffusivity via the max function, as used in mom4p0d. The alternative is via simply adding the background to the diffusivity obtained via other approaches. This option remains for legacy. Default is vert_diff_back_via_max=.true.

use_explicit_vert_diffuse
logical

Must be true to use time-explicit vertical tracer diffusion.

bryan_lewis_diffusivity
logical

If .true. then add a Bryan-Lewis background to the diffusivity. This background is a time-independent function of depth. This diffusivity is NOT used when have use_pp_vert_mix_coeff=.true. This scheme should NOT be used if HWF is used.

bryan_lewis_lat_depend
logical

If .true. then allow for Bryan-Lewis background to be different outside of a tropical band than inside the band.

bryan_lewis_lat_transition
real

North/South latitude where transition from Bryan-Lewis values in the tropic to those in the higher latitudes.

vert_visc_back
logical

If .true. then include a static depth dependent vertical viscosity which is used only if running w/ constant vertical viscosity scheme. Standard application is when have a model with fine vertical resolution, yet no mixed layer scheme. Wind stress must be spread deeper than the top cell, or the model may go unstable, or at the least it will produce spuriously large vertical shears.

visc_cbu_back_max
real
m^2/sec

For use in setting background vertical viscosity.

visc_cbu_back_min
real
m^2/sec

For use in setting background vertical viscosity.

visc_cbu_back_zmid
real
m

Mid-point of tanh function used to define background vertical viscosity.

visc_cbu_back_zwid
real
m

Width of tanh function used to define background vertical viscosity.

diff_cbt_tanh
logical

For enabling tanh background vertical diffusivity profile. Default diff_cbt_tanh=.false.

diff_cbt_tanh_max
real
m^2/sec

For use in setting background vertical diffusivity. Default diff_cbt_tanh_max=1e-3.

diff_cbt_tanh_min
real
m^2/sec

For use in setting background vertical diffusivity. Default diff_cbt_tanh_min=2e-5.

diff_cbt_tanh_zmid
real
m

Mid-point of tanh function used to define background vertical diffusivity. Default diff_cbt_tanh_zmid=150.0.

diff_cbt_tanh_zwid
real
m

Width of tanh function used to define background vertical diffusivity. Default diff_cbt_tanh_zwid=30.0.

use_diff_cbt_table
logical

If .true., then read in a table that specifies (i,j,ktop-->kbottom) and the diffusivity. This method is useful when aiming to mix vertically at points where do cross-land insertion or where may wish to enhance mixing at river mouths.

linear_taper_diff_cbt_table
logical

If .true., then linear taper the diff_cbt_table value from so that it gets smaller with depth.

hwf_diffusivity
logical

3D background diffusivity which gets smaller in equatorial region. Based on the work of Henyey etal (1986). This scheme should NOT be used if Bryan-Lewis is used. Default hwf_diffusivity=.false.

hwf_diffusivity_3d
logical

3D background diffusivity which gets smaller in equatorial region. Based on the work of Henyey etal (1986). This form has not been used much at GFDL, with preference given to a simpler two-dimensional (depth independent) form assessed with the default hwf_diffusivity_3d=.false.

hwf_depth_transition
real
m

Depth of transition for hwf scheme. The HWF method actually has no depth dependence. But we include the atan depth dependency from Bryan-Lewis, for those cases where we wish to replace Bryan-Lewis with the HWF scheme. To get the usual Bryan-Lewis transition, set hwf_depth_transition=2500.0. However, since we often use hwf in the presence of tide mixing, we do not wish to have any depth dependence, in which case the default is hwf_depth_transition=2500.0e4.

hwf_min_diffusivity
real
m^2/sec

Minimum diffusivity for the HWF scheme. Default hwf_min_diffusivity=2e-6.

hwf_30_diffusivity
real
m^2/sec

Diffusivity at 30deg latitude for the HWF scheme. Default hwf_30_diffusivity=2e-5.

hwf_N0_2Omega
real
dimensionless

Ratio of the typical Buoyancy frequency to twice the earth's rotation period. Default hwf_N0_2Omega=20.0.

vmix_rescale_nonbouss
logical

To rescale the vertical mixing coefficients by rho0/rho in order to bring the effects from vertical diffusion in a non-Boussinesq model more in line with that from a Boussinesq model. Default vmix_rescale_nonbouss=.false.

vmix_set_min_dissipation
logical

To set a minimum dissipation rate. This scheme will compute the dissipation from the full diffusivity. If the resulting dissipation is smaller than a specified dissipation, then the diffusivity will be locally increased so that the min dissipation is maintained. Default vmix_set_min_dissipation=.false.

vmix_min_diss_const
real
W/m^3

Minimum dissipation rate as a constant. Default vmix_min_diss_const=1e-7.

vmix_min_diss_bvfreq_scale
real
J/m^3

Scaling use to set the minimum dissipation rate as determined by the local stratification. Default vmix_min_diss_bvfreq_scale=6e-4.

vmix_min_diss_flux_ri_max
real
dimensionless

Maximum flux Richardson number for computation of diffusivity from dissipation. Default vmix_min_diss_flux_ri_max=0.2.

smooth_rho_N2
logical
num_121_passes
integer
debug_this_module
logical

For debugging purposes.

verbose_init
logical

For verbose writes during initialization.

quebec_2009_10_bug
logical

Filename: src/mom5/ocean_param/vertical/ocean_vert_pp.F90

Namelist: ocean_vert_pp_nml

Name
Type
Default
Units
Description
use_this_module
logical

Must be true to use this module. Default is false.

fricmx
real
m^2/sec

Maximum mixing

wndmix
real
m^2/sec

Minimum viscosity at bottom of 1st level to simulate missing high frequency windstress components.

diff_cbt_back_pp
real
m^2/sec

Space-time independent background vertical diffusivity thought to be that arising from internal waves. Note that if using Bryan-Lewis background diffusivity, then should set diff_cbt_back_pp=0.0.

visc_cbu_back_pp
real
m^2/sec

Background vertical viscosity

visc_cbu_limit
real
diff_cbt_limit
real

Filename: src/mom5/ocean_param/vertical/ocean_vert_tidal.F90

Namelist: ocean_vert_tidal_nml

Name
Type
Default
Units
Description
use_this_module
logical
use_legacy_methods
logical

To compute all mixing coefficients using legacy methods. There are good reasons to prefer the newer approaches, which motivates setting the default use_legacy_methods=.false.

debug_this_module
logical

For debugging purposes.

use_wave_dissipation
logical
use_drag_dissipation
logical
use_leewave_dissipation
logical
read_roughness
logical

If .true. then read in bottom roughness amplitude h, where roughness_length = kappa*h^2, with kappa a representative roughness wavelength and h a representative topographic amplitude. This information is used for the Simmons etal wave dissipation parameterization.

read_wave_dissipation
logical

If .true. then read in wave dissipation computed from Jayne and St.Laurent (2001) tide model (or another model). Default read_wave_dissipation=.false.

read_leewave_dissipation
logical

If .true. then read in leewave dissipation from a file. Default read_leewave_dissipation=.false.

reading_roughness_amp
logical

If .true., then the field in the roughness file is roughness_amp=h, where roughness_length=kappa*h^2. This information is used for the Simmons etal wave dissipation parameterization. Default reading_roughness_amp=.false.

reading_roughness_length
logical

If .true., then the field in the roughness file is roughness_length = kappa*h^2, with kappa a representative roughness wavelength and h a representative topographic amplitude. This information is used for the Simmons etal wave dissipation parameterization. Default reading_roughness_length=.false.

read_tide_speed
logical

If .true. then read in tidal speed (m/s) from a tidal model. This information is used for the computing the energy dissipation from tides. scheme.

wave_diffusivity_monotonic
logical

Enforce a monotonic decay of the wave dissipation diffusivity, with largest values near bottom and smaller as move to shallower water. This behaviour is not guaranteed in general, since the division by the buoyancy frequency can give non-monotone diffusivities. Default wave_diffusivity_monotonic=.true.

tide_speed_data_on_t_grid
logical

To set the input tide speed data on T-grid, set to true. Otherwise, set to false. Default tide_speed_data_on_t_grid=.true.

fixed_wave_dissipation
logical

If .true. then fix the wave dissipation from that read in by the tide model, such as Jayne and St.Laurent (2001). This power dissipation will be employed for computing wave induced mixing. Default fixed_wave_dissipation=.false.

mixing_efficiency_n2depend
logical

Allow for mixing efficiency to be a function of N^2/(N^2+Omega^2), which is close to unity except in regions where N is very small. Default mixing_efficiency_n2depend=.false.

drag_dissipation_efold
logical

For setting an efolding whereby the drag dissipation diffusivity exponentially decreases as move upward in the water column. There are good reasons to set this logical to true, as the scheme can produce unreasonably large diffusivities far from the bottom, if there are tides in the deep ocean. Default drag_dissipation_efold=.true.

smooth_bvfreq_bottom
logical

For smoothing the buoyancy frequency at the bottom. Default smooth_bvfreq_bottom=.true.

drag_mask_deep
logical

For masking out the deep ocean regions for the drag dissipation scheme. This scheme is meant to apply only in shallow shelves, so it is physically relevant to mask it out. We apply a mask as determined by the ratio of the frictional tide depth scale and the total ocean depth. Default drag_mask_deep=.true.

smooth_rho_N2
logical

For smoothing the rho_N2 field via a 1-2-1 filter in vertical. This is useful to produce smoother diffusivities. Default is smooth_rho_N2=.true.

num_121_passes
integer

Number of passes of 1-2-1 filter in vertical for smoothing the rho_N2 field. Default num_121_passes=1.

drag_mask_deep_ratio
real

For determining the drag dissipation mask. The mask = 0 in regions where tide_depth/total_depth < drag_mask_deep_ratio Default drag_mask_deep_ratio=0.1

roughness_scale
real
m

Scale for the roughness that characterizes the roughness affecting the tidal dissipation process. Used for setting roughness_length via roughness_length = kappa*h^2, with kappa = 2pi/(roughness_scale) and h=topography amplitude. Default roughness_scale=1e4 as in Jayne and St. Laurent (2001)

default_roughness_length
real
m

Default value for kappa*h^2 = roughness length for use in the absence of a roughness length dataset. MOM default is default_roughness_length=25.0m.

default_tide_speed
real
m/s

Default value for tidal speed for use in the absence of a value from a tidal model.

shelf_depth_cutoff
real
m

For use in defining a mask for the Simmons scheme, with depths shallower than shelf_depth_cutoff removed from the scheme. shelf_depth_cutoff=1000m in Simmons etal. Default shelf_depth_cutoff=-1000m so there is no cutoff.

decay_scale
real
m

In the Simmons etal vertical profile function, the exponential decay scale is determined by this parameter. Default = 500m as in Simmons etal (2004). This vertical profile determines how to deposit the internal wave energy within a vertical column.

tidal_diss_efficiency
real
dimensionless

Fraction of barotropic tidal energy that is dissipated locally, as opposed to that which propagates away. Default=1/3 as in Simmons etal (2004).

mixing_efficiency
real
dimensionless

Fraction of energy that is dissipated which is converted into dianeutral diffusion of tracer. Default=0.2 based on Osborn (1980).

munk_anderson_p
real
dimensionless

The p constant in the Munk-Anderson scheme employed by Lee etal. This parameter is minus the "p_tide" parameter in the KPP schemes. Default munk_anderson_p=0.25

munk_anderson_sigma
real
dimensionless

The sigma constant in the Munk-Anderson scheme employed by Lee etal. This parameter is called "sigma_tide" in the KPP schemes. Default munk_anderson_sigma=3.0

bottom_drag_cd
real
dimensionless

Bottom drag coefficient from Lee etal. Default bottom_drag_cd=2.4e-3

background_diffusivity
real
m^2/s

Background vertical diffusivity not accounted for by the tidal schemes nor any other scheme such as KPP. Default=0.1e-4.

background_viscosity
real
m^2/s

Background vertical viscosity not accounted for by the tidal schemes nor any other scheme such as KPP. Default=0.1e-4.

max_wave_diffusivity
real
m^2/s

Maximum tracer diffusivity deduced from the wave dissipation scheme from Simmons etal. Default = 5.e-3 m^2/sec.

max_drag_diffusivity
real
m^2/s

Maximum tracer diffusivity deduced from the drag dissipation scheme from Lee etal. Default = 5.e-3 m^2/sec.

drhodz_min
real
kg/m^3

Minimum absolute value for the drhodz used to compute N^2 and rhoN2. This value is needed in order to regularize the diffusivity computed from the tide mixing schemes. Default is drhodz_min=1e-10, which is much smaller than the (N^2)min = 10^-8 sec^-2 used by Simmons etal. There is some sensitivity to the choice of drhodz_min, with larger values leading to reduced deep diffusivities, due to the N^-2 dependence in the diffusivity calculation.

speed_min
real
m/s

For the drag scheme, we set the diffusivity as well as the Richardson number to zero if the tide speed is less than speed_min. This serves two purposes: 1/ to reduce overflows in some of the diagnostics; 2/ to set the drag induced diffusivity to zero in regions where the tide speed is small. Default speed_min=5e-3m/s.

wave_energy_flux_max
real
W/m2

The maximum mechanical energy from internal tides that is provided for mixing. Default wave_energy_flux_max=0.1Watt/m^2.

drag_dissipation_tide_period
real
s

Characteristic tide period for use in computing efolding depth for the tide drag scheme. Default = 126060 = 12hours for semi-diurnal tide.

vel_micom_smooth
real
m/sec

Velocity scale that is used for computing the MICOM Laplacian mixing coefficient used in the Laplacian smoothing of diffusivities. Default vel_micom_smooth=0.2.

drag_dissipation_use_cdbot
logical

For using the cdbot_array computed from ocean_bbc.F90 module. Default drag_dissipation_use_cdbot=.false., as this is consistent with earlier simulations.

Filename: src/mom5/ocean_param/vertical/ocean_vert_util.F90

Namelist: ocean_vert_util_nml

Name
Type
Default
Units
Description
smooth_n2
logical

For vertical smoothing the N2 calculation for Richardson number. Default smooth_n2 = .true.

smooth_ri_number
logical

For vertical smoothing richardson number. Default smooth_ri_number = .true.

num_n2_smooth
integer

For vertical smoothing N2 for Richardson number. Default num_n2_smooth = 1.

num_ri_smooth
integer

For vertical smoothing richardson number. Default num_ri_smooth = 1.

debug_this_module
logical

For debugging purposes.

src/mom5/ocean_tracers

Filename: src/mom5/ocean_tracers/ocean_frazil.F90

Namelist: ocean_frazil_nml

Name
Type
Default
Units
Description
use_this_module
logical

If true, then compute frazil heating.

debug_this_module
logical

For debugging this module

freezing_temp_simple
logical

To use the simplified freezing point temperature of seawater, as used in MOM4.0.

freezing_temp_preteos10
logical
freezing_temp_teos10
logical
air_saturated_water
logical
frazil_only_in_surface
logical

For typical case where compute frazil heating only in the surface grid cell. Will assume the gauge pressure is zero in this case when computing freezing temperature.

frazil_factor
real
dimensionless

This factor accounts for possibly different time stepping used in the sea ice model relative to the ocean model. If sea-ice and ocean use same time stepping schemes, then frazil_factor=1.0. If sea-ice uses a twolevel scheme and ocean a threelevel leap-frog, then frazil_factor=0.5. Default is 1.0 since the GFDL sea ice model SIS uses a two-level time stepping scheme and MOM defaults to a staggered two-level scheme.

Filename: src/mom5/ocean_tracers/ocean_passive.F90

Namelist: ocean_passive_nml

Name
Type
Default
Units
Description
debug_this_module
logical

For debugging the module.

common_init_condition
character(len=32)

Default for the tracer initial conditions. Options are the following: commoninit_condition='level' common_init_condition='wall' common_init_condition='patch' common_init_condition='patch'klevel, with "klevel" an integer for the k-level that will place the patch. common_init_condition='exponential' common_init_condition='shelfbowl' common_init_condition='rho_surface' common_init_condition='temp_sq_init' common_init_condition='salt_sq_init' Default=common_init_condition='patch'

layer_value
real

Value of tracer concentration within the layer. Default=1.0.

layer_ztop
real

Depth at the top of the tracer layer.

layer_zbot
real

Depth at the bottom of the tracer layer.

wall_value
real

Value of tracer concentration within the wall. Default=1.0.

wall_ratio_south
real

Ratio of the full j-range, northward of which we place the wall.

wall_ratio_north
real

Ratio of the full j-range, southward of which we place the wall.

patch_value
real

Value of the tracer concentration within a patch. Default=1.0.

patch_ztop
real

Depth at the top of the tracer patch.

patch_zbot
real

Depth at the bottom of the tracer patch.

patch_ratio1
real

For setting position of tracer patch.

patch_ratio2
real

For setting position of tracer patch.

patch_init_klevel_gaussian
logical

To initialize on the klevel with a gaussian region. Default=patch_init_klevel_gaussian=.false.

shelfbowl_north
real
shelf_value
real
efold_depth
real
metre

The efolding depth used for exponential tracer profile. Default=1000.0.

exponential_value
real
dimensionless

The tracer value at zero depth when choosing the exponential profile. Default=1.0.

Filename: src/mom5/ocean_tracers/ocean_tempsalt.F90

Namelist: ocean_tempsalt_nml

Name
Type
Default
Units
Description
reinit_ts_with_ideal
logical

For setting up an ideal temperature and salinity profile that is generated in the model. This profile can be generated after the model has already been running, hence the name "reinit" for "reinitialize."

reinit_ts_with_ideal_efold
real
metre

For setting efolding of reinitialized temp and salinity profile. Default reinit_ts_with_ideal_efold=1000.

reinit_ts_with_ideal_tvalue
real
C

For setting the reinitialized temperature value using the ideal profile. Default reinit_ts_with_ideal_tvalue = 10.0

reinit_ts_with_ideal_svalue
real
psu

For setting the reinitialized temperature value using the ideal profile. Default reinit_ts_with_ideal_svalue = 30.0

t_min
real
deg C

Minimum potential/conservative temperature below which we gracefully bring down the model.

t_max
real
deg C

Maximum potential/conservative temperature above which we gracefully bring down the model.

s_min
real
ppt

Minimum salinity below which we gracefully bring down the model.

s_max
real
ppt

Maximum salinity below which we gracefully bring down the model.

t_min_limit
real
deg C

Minimum potential/conservative temperature below which will employ upwind advection instead of quicker, and horizontal diffusion instead of neutral physics.

t_max_limit
real
deg C

Maximum potential/conservative temperature above which will employ upwind advection instead of quicker, and horizontal diffusion instead of neutral physics.

s_min_limit
real
psu

Minimum salinity below which will employ upwind advection instead of quicker, and horizontal diffusion instead of neutral physics.

s_max_limit
real
psu

Maximum salinity below which will employ upwind advection instead of quicker, and horizontal diffusion instead of neutral physics.

debug_this_module
logical

For debugging the module.

pottemp_2nd_iteration
logical

For taking extra iteration in computation of potential temperature from conservative temperature and salinity. Default is true.

pottemp_equal_contemp
logical

For certain idealized cases where the difference between potential temperature and conservative temperature is irrelevant. Default=.false.

teos10
logical

For choosing whether to use the TEOS-10 equation of state. This usage requires conservative temperature as the temperature variable, and two salinity variables: Preformed Salinity and Absolute Salinity anomaly. Default teos10=.false.

temperature_variable
character(len=32)

For choosing the temperature variable used in the model. Choices are 'conservative_temp' and 'potential_temp'. Since conservative temperature is more accurate, it is the default.

Filename: src/mom5/ocean_tracers/ocean_tracer.F90

Namelist: ocean_tracer_nml

Name
Type
Default
Units
Description
zero_tendency
logical

If true, then will freeze the tracer fields.

zero_tracer_source
logical

To remove the T_prog%source contribution to tracer evolution. For debugging purposes. Default zero_tracer_source=.false.

debug_this_module
logical

For debugging the tracer module

tmask_limit_ts_same
logical

tmask_limit is derived separately for the tracers. However, it may be appropriate to have the mask be the same for temp and salinity, in which case the neutral physics fluxes are self-consistent. But for some cases, such as when running with linear eos, may not wish to have the temp and salinity coupled when computing the mask.

write_a_restart
logical

Set true to write a restart. False setting only for rare cases where wish to benchmark model without measuring the cost of writing restarts and associated chksums. Default is write_a_restart=.true.

remap_depth_to_s_init
logical

For remapping initial tracer distributions, generally determined according to depth vertical coordinates using the mom preprocessing schemes, onto s-coordinates. This method is of use for initializing terrain following coordinate simulations with mom.

inflow_nboundary
logical

For adding an inflow transport from the northern boundary which brings in temp and salinity according to inflow data files. Default is inflow_nboundary=.false.

interpolate_tprog_to_pbott
logical

To linear interpolate the initial conditions for prognostic tracers to the partial bottom cells. Default interpolate_tprog_to_pbott=.true.

interpolate_tdiag_to_pbott
logical

To linear interpolate the initial conditions for diagnostic tracers to the partial bottom cells. Default interpolate_tdiag_to_pbott=.false.

limit_age_tracer
logical

Limit the values of age tracer to be less than total run time and greater than zero. Default limit_age_tracer=.false.

frazil_heating_before_vphysics
logical

For computing frazil heating before the implicit vertical physics (which includes boundary fluxes), and before vertical convection. This is the order that CM2.0 and CM2.1 performed their calculations of frazil. It is arguable that one should NOT do frazil until the end of a time step, after vertical physics and after surface boundary fluxes. Default frazil_heating_before_vphysics=.false.

frazil_heating_after_vphysics
logical

For computing frazil heating after the implicit vertical physics (which includes boundary fluxes), and after vertical convection. This is the recommended method. Default frazil_heating_after_vphysics=.false.

compute_tmask_limit_on
logical

For updating the tmaks_limit array. This calculation is recommended for the following physics and advection schemes: 1/ quicker advection 2/ neutral physics 3/ submesoscale closure. The default is compute_tmask_limit_on=.true., but if none of the above schemes is used, then some time savings can be realized by setting compute_tmask_limit_on=.false.

use_tempsalt_check_range
logical

To call a check to see that temperature and salinity are within their pre-selected range. Default use_tempsalt_check_range=.false. since this check may incur some cost that users should be aware of.

age_tracer_max_init
real
years

Initial maximum age tracer. This nml provides the ability to start an integration with an age tracer that is not initialized to zero, say if we took an age tracer from another spin-up. Default age_tracer_max_init=0.0.

ocean_tpm_debug
logical

For debugging ocean tracer package manager.

Filename: src/mom5/ocean_tracers/ocean_tracer_advect.F90

Namelist: ocean_tracer_advect_nml

Name
Type
Default
Units
Description
read_basin_mask
logical

For reading in a mask that selects regions of the domain for performing gyre and overturning diagnostics. The basin-mask convention used at GFDL has Southern=1.0,Atlantic=2.0,Pacific=3.0,Arctic=4.0,Indian=5.0 Default read_basin_mask=.false., whereby basin_mask is set to tmask(k=1).

limit_with_upwind
logical

If true, will compute tracer fluxes entering a cell using upwind if the tracer value is outside a specified range. Implemented only for quick at this time. This is an ad hoc and incomplete attempt to maintain monotonicity with the quicker scheme.

debug_this_module
logical

For debugging

advect_sweby_all
logical

For running all tracers with sweby, thereby utilizing a bitwise same routine that reorganizes loops and can be faster for certain configurations. Default advect_sweby_all=.false.

zero_tracer_advect_horz
logical

For debugging. Set to .true. to turn off horizontal advection.

zero_tracer_advect_vert
logical

For debugging. Set to .true. to turn off vertical advection.

write_a_restart
logical

Set true to write a restart. False setting only for rare cases where wish to benchmark model without measuring the cost of writing restarts and associated chksums. Default is write_a_restart=.true.

psom_limit_prather
logical

For running with the original Prather limiter for the PSOM scheme. The limiter is positive definite, but not monotonic. This limiter is NOT recommended for most applications. The default is psom_limit_prather=.false., since we prefer to use the limiter from Merryfield and Holloway (2003).

async_domain_update
logical

src/mom5/ocean_wave

Filename: src/mom5/ocean_wave/ocean_wave.F90

Namelist: ocean_wave_nml

Name
Type
Default
Units
Description
wavedamp
real
damp_where_ice
logical
filter_wave_mom
logical
write_a_restart
logical
use_this_module
logical
use_TMA
logical