Functions

Name

Module

Description

a_calculate_compress_array

mom_eos_base_type

Compute the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature and pressure for array inputs.

a_calculate_density_array

mom_eos_base_type

Calculate the in-situ density for 1D arraya inputs and outputs.

a_calculate_density_derivs_array

mom_eos_base_type

Calculate the derivatives of density with respect to temperature, salinity and pressure for array inputs.

a_calculate_density_derivs_scalar

mom_eos_base_type

Calculate the derivatives of density with respect to temperature, salinity and pressure for scalar inputs.

a_calculate_density_scalar

mom_eos_base_type

Calculate the in-situ density for scalar inputs and outputs.

a_calculate_density_second_derivs_array

mom_eos_base_type

Calculate the second derivatives of density with respect to temperature, salinity and pressure for array inputs.

a_calculate_density_second_derivs_scalar

mom_eos_base_type

Calculate the second derivatives of density with respect to temperature, salinity and pressure for scalar inputs.

a_calculate_spec_vol_array

mom_eos_base_type

Calculate the in-situ specific volume for 1D array inputs and outputs.

a_calculate_spec_vol_scalar

mom_eos_base_type

Calculate the in-situ specific volume for scalar inputs and outputs.

a_calculate_specvol_derivs_array

mom_eos_base_type

Calculate the partial derivatives of specific volume with temperature and salinity for array inputs.

a_density_fn

mom_eos_base_type

In situ density [kg m-3].

a_grow

mom_diag_buffers

Signature for the grow methods on n-dimension diagnostic buffer types.

a_set_debug

recon1d_type

Turns on debugging.

a_spec_vol_fn

mom_eos_base_type

In situ specific volume [m3 kg-1].

abs_saln_to_prac_saln

mom_eos

Converts an array of absolute salinity to practical salinity. The input arguments use the dimensionally rescaling as specified within the EOS type. The output potential temperature uses this same scaling, but this can be replaced by the factor given by scale.

absolute_position

mom_neutral_diffusion

Converts non-dimensional position within a layer to absolute position (for debugging)

absolute_positions

mom_neutral_diffusion

Converts non-dimensional positions within layers to absolute positions (for debugging)

absorbremainingsw

mom_opacity

Apply shortwave heating below the boundary layer (when running with the bulk mixed layer inherited from GOLD) or throughout the water column.

accumulate_net_input

mom_sum_output

This subroutine accumulates the net input of volume, salt and heat, through the ocean surface for use in diagnosing conservation.

activation_fn

mom_ann

The default activation function.

adcroft_reciprocal

mom_grid

Adcroft_reciprocal(x) = 1/x for |x|>0 or 0 for x=0.

adcroft_reciprocal

mom_dyn_horgrid

Adcroft_reciprocal(x) = 1/x for |x|>0 or 0 for x=0.

adcroft_reciprocal

mom_grid_initialize

This function implements Adcroft’s rule for reciprocals, namely that Adcroft_Inv(x) = 1/x for |x|>0 or 0 for x=0.

add_detangling_kh

mom_thickness_diffuse

Modifies isopycnal height diffusivities to untangle layer structures.

add_diag_to_list

mom_diag_mediator

Create a diagnostic type and attached to list.

add_diag_to_list

mom_is_diag_mediator

Create a diagnostic type and attached to list.

add_drag_diffusivity

mom_set_diffusivity

This routine adds diffusion sustained by flow energy extracted by bottom drag.

add_int_tide_diffusivity

mom_tidal_mixing

This subroutine adds the effect of internal-tide-driven mixing to the layer diffusivities. The mechanisms considered are (1) local dissipation of internal waves generated by the barotropic flow (“itidal”), (2) local dissipation of internal waves generated by the propagating low modes (rays) of the internal tide (“lowmode”), and (3) local dissipation of internal lee waves. Will eventually need to add diffusivity due to other wave-breaking processes (e.g. Bottom friction, Froude-number-depending breaking, PSI, etc.).

add_interface_kh

mom_thickness_diffuse

Add a diffusivity that acts on the isopycnal heights, regardless of the densities.

add_lotw_bbl_diffusivity

mom_set_diffusivity

Calculates a BBL diffusivity use a Prandtl number 1 diffusivity with a law of the wall turbulent viscosity, up to a BBL height where the energy used for mixing has consumed the mechanical TKE input.

add_mlrad_diffusivity

mom_set_diffusivity

This routine adds effects of mixed layer radiation to the layer diffusivities.

add_output_for_gcm

marbl_interface

Dummy version of MARBL’s add_output_for_GCM() function.

add_scaling

mom_check_scaling

Augment the count the valid unit descriptions, and add the provided description and its weight to the end of the list if that list is allocated.

add_shelf_flux

mom_ice_shelf

Updates surface fluxes that are influenced by sub-ice-shelf melting.

add_shelf_forces

mom_ice_shelf

This subroutine adds the mechanical forcing fields and perhaps shelf areas, based on the ice state in ice_shelf_CS.

add_shelf_pressure

mom_ice_shelf

This subroutine adds the ice shelf pressure to the fluxes type.

add_unit_test_basic

mom_unit_testing

add_unit_test_full

mom_unit_testing

add_xyz_method

mom_diag_mediator

Adds the encoded “cell_methods” for a diagnostics as a diag% property This allows access to the cell_method for a given diagnostics at the time of sending.

adiabatic

mom_diabatic_driver

Routine called for adiabatic physics.

adiabatic_driver_init

mom_diabatic_driver

A simplified version of diabatic_driver_init that will allow tracer column functions to be called without allowing any of the diabatic processes to be used.

adjust_area_mean_to_zero

mom_spatial_means

Adjust 2d array such that area mean is zero without moving the zero contour.

adjust_ice_sheet_frazil

mom_ice_shelf

Copies frazil from the ocean surface state to the ice sheet state. Removes frazil that will be used by the ice sheet from the ocean surface state.

adjust_interface_motion

mom_regridding

Adjust dz_Interface to ensure non-negative future thicknesses.

adjust_local_bt_cont_types

mom_barotropic

Adjust_local_BT_cont_types expands the range of velocities with a cubic curve translating velocities into transports to match the initial values of velocities and summed transports when the velocities are larger than the first guesses of the cubic transition velocities used to set up the local_BT_cont types.

adjust_salt

mom_diabatic_aux

This subroutine keeps salinity from falling below a small but positive threshold. This usually occurs when the ice model attempts to extract more salt then is actually available to it from the ocean.

adjust_ssh_for_p_atm

mom

Apply a correction to the sea surface height to compensate for the atmospheric pressure (the inverse barometer).

adjustetatofitbathymetry

mom_state_initialization

Adjust interface heights to fit the bathymetry and diagnose layer thickness.

adjustgridforintegrity

mom_ale

Crudely adjust (initial) grid for integrity. This routine is typically called (from initialize_MOM in file

adjustment_initialize_temperature_salinity

adjustment_initialization

Initialization of temperature and salinity in the adjustment test case.

adjustment_initialize_thickness

adjustment_initialization

Initializes the layer thicknesses in the adjustment test case.

adjustsegmentetatofitbathymetry

mom_open_boundary

Adjust interface heights to fit the bathymetry and diagnose layer thickness.

advect_tracer

mom_tracer_advect

This routine time steps the tracer concentration using a monotonic, conservative, weakly diffusive scheme.

advect_x

mom_tracer_advect

This subroutine does 1-d flux-form advection in the zonal direction using a monotonic piecewise linear scheme.

advect_y

mom_tracer_advect

This subroutine does 1-d flux-form advection using a monotonic piecewise linear scheme.

advection_test_stock

advection_test_tracer

Calculate the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.

advection_test_tracer_column_physics

advection_test_tracer

Applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this package. This is a simple example of a set of advected passive tracers.

advection_test_tracer_end

advection_test_tracer

Deallocate memory associated with this module.

advection_test_tracer_surface_state

advection_test_tracer

This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler.

ale_end

mom_ale

End of regridding (memory deallocation). This routine is typically called (from MOM_end in file

ale_getcoordinate

mom_ale

Query the target coordinate interfaces positions.

ale_getcoordinateunits

mom_ale

Query the target coordinate units.

ale_init

mom_ale

This routine is typically called (from initialize_MOM in file

ale_initregridding

mom_ale

Initializes regridding for the main ALE algorithm.

ale_initthicknesstocoord

mom_ale

Set h to coordinate values for fixed coordinate systems.

ale_offline_inputs

mom_ale

Regrid/remap stored fields used for offline tracer integrations. These input fields are assumed to have the same layer thicknesses at the end of the last offline interval (which should be a Zstar grid). This routine builds a grid on the runtime specified vertical coordinate.

ale_plm_edge_values

mom_ale

Calculate edge values (top and bottom of layer) 3d scalar array. Boundary reconstructions are PCM unless bdry_extrap is true.

ale_register_diags

mom_ale

Initialize diagnostics for the ALE module.

ale_regrid

mom_ale

Takes care of building a new grid. The creation of the new grid can be based on z coordinates, target interface densities, sigma coordinates or any arbitrary coordinate system.

ale_regrid_accelerated

mom_ale

For a state-based coordinate, accelerate the process of regridding by repeatedly applying the grid calculation algorithm.

ale_regridding_and_remapping

mom

ALE_regridding_and_remapping does regridding (the generation of a new grid) and remapping (from the old grid to the new grid). This is done after the themrodynamic step.

ale_remap_init_conds

mom_ale

Returns true if initial conditions should be regridded and remapped.

ale_remap_interface_vals

mom_ale

Interpolate to find an updated array of values at interfaces after remapping.

ale_remap_scalar

mom_ale

Remaps a single scalar between grids described by thicknesses h_src and h_dst. h_dst must be dimensioned as a model array with GVke layers while h_src can have an arbitrary number of layers specified by nk_src.

ale_remap_set_h_vel

mom_ale

This routine sets the thicknesses at velocity points used for vertical remapping.

ale_remap_set_h_vel_obc

mom_ale

ale_remap_set_h_vel_partial

mom_ale

Mask out the thicknesses at velocity points where they are below the minimum depth at adjacent tracer points.

ale_remap_set_h_vel_via_dz

mom_ale

This routine sets the thicknesses at velocity points used for vertical remapping using a combination of the old grid and interface movements.

ale_remap_tracers

mom_ale

This routine takes care of remapping all tracer variables between the old and the new grids. This routine is called during initialization of the model at time=0, to remap initial conditions to the model grid. It is also called during a time step to update the state.

ale_remap_velocities

mom_ale

This routine remaps velocity components between the old and the new grids, with thicknesses at velocity points taken to be arithmetic averages of tracer thicknesses. This routine may be called during initialization of the model at time=0, to remap initial conditions to the model grid. It is also called during a time step to update the state.

ale_remap_vertex_vals

mom_ale

Interpolate to find an updated array of values at vertices of tracer cells after remapping.

ale_set_extrap_boundaries

mom_ale

Sets the boundary extrapolation set for the remapping type.

ale_set_om4_remap_algorithm

mom_ale

Sets the remapping algorithm to that of OM4.

ale_update_regrid_weights

mom_ale

Updates the weights for time filtering the new grid generated in regridding.

ale_updateverticalgridtype

mom_ale

Update the vertical grid type with ALE information. This subroutine sets information in the verticalGrid_type to be consistent with the use of ALE mode.

ale_writecoordinatefile

mom_ale

Write the vertical coordinate information into a file. This subroutine writes out a file containing any available data related to the vertical grid used by the MOM ocean model when in ALE mode.

align_aniso_tensor_to_grid

mom_hor_visc

Calculates factors in the anisotropic orientation tensor to be align with the grid. With n1=1 and n2=0, this recovers the approach of Large et al, 2001.

alloc_bt_cont_type

mom_variables

Allocates the arrays contained within a BT_cont_type and initializes them to 0.

alloc_diag_with_id

mom_diag_mediator

Make a new diagnostic. Either use memory which is in the array of ‘primary’ diagnostics, or if that is in use, insert it to the list of secondary diagnostics.

alloc_diag_with_id

mom_is_diag_mediator

Make a new diagnostic. Either use memory which is in the array of ‘primary’ diagnostics, or if that is in use, insert it to the list of secondary diags.

allocate_forcing_by_group

mom_forcing_type

Conditionally allocate fields within the forcing type.

allocate_forcing_by_ref

mom_forcing_type

Allocate elements of a new forcing type based on their status in an existing type.

allocate_mech_forcing_by_group

mom_forcing_type

Conditionally allocate fields within the mechanical forcing type using control flags.

allocate_mech_forcing_from_ref

mom_forcing_type

Conditionally allocate fields within the mechanical forcing type based on a reference forcing.

allocate_metrics

mom_grid

Allocate memory used by the

allocate_obc_segment_data

mom_open_boundary

Allocate segment data fields.

allocate_rotated_array_integer

mom_array_transform

Allocate a 2d integer array on the rotated index map of a reference array.

allocate_rotated_array_real_2d

mom_array_transform

Allocate a 2d real array on the rotated index map of a reference array.

allocate_rotated_array_real_3d

mom_array_transform

Allocate a 3d real array on the rotated index map of a reference array.

allocate_rotated_array_real_4d

mom_array_transform

Allocate a 4d real array on the rotated index map of a reference array.

allocate_rotated_seg_data

mom_open_boundary

Allocate an array of data for a field on a segment based on the size of a potentially rotated source array.

allocate_segment_field_data

mom_open_boundary

Allocate data (buffer_src, buffer_dst and dz_src) for a field at an OBC segment.

allocate_surface_state

mom_variables

Allocates the fields for the surface (return) properties of the ocean model. Unused fields are unallocated.

allocate_vbf_cs

mom_diagnose_kdwork

Allocates arrays only when needed.

analytic_int_density_dz

mom_eos

This subroutine calculates analytical and nearly-analytical integrals of pressure anomalies across layers, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model.

analytic_int_specific_vol_dp

mom_eos

Calls the appropriate subroutine to calculate analytical and nearly-analytical integrals in pressure across layers of geopotential anomalies, which are required for calculating the finite-volume form pressure accelerations in a non-Boussinesq model. There are essentially no free assumptions, apart from the use of Boole’s rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34.

angled_coast

basin_builder

An “angled coast profile” [nondim].

ann_allocate

mom_ann

Allocate an ANN.

ann_apply_array_sio

mom_ann

Single application of ANN inference using array input and output with (space,feature) indexing.

ann_apply_vector_oi

mom_ann

Single application of ANN inference using vector input and output.

ann_apply_vector_orig

mom_ann

Single application of ANN inference using vector input and output.

ann_end

mom_ann

Deallocates memory of ANN.

ann_init

mom_ann

Initialization of ANN. Allocates memory and reads ANN parameters from NetCDF file. The NetCDF file must contain: Integer num_layers. Integer arrays: layer_sizes, input_norms, output_norms Matrices and biases for Linear layers can be Real(4) or Real(8) and are named as: A0, b0 for the first layer; A1, b1 for the second layer and so on.

ann_random

mom_ann

Create a random ANN.

ann_test

mom_ann

Test ANN by comparing the prediction with the test data.

ann_unit_tests

mom_ann

Runs unit tests on ANN functions.

aof_set_coupler_flux

atmos_ocean_fluxes_mod

This subroutine duplicates an interface used by the FMS coupler, but only returns a value of -1. None of the arguments are used for anything.

append_axis_list_infra

mom_io_file

Append a new axis to the list.

append_axis_list_nc

mom_io_file

Append a new axis to the list.

append_field_list_infra

mom_io_file

Append a new field to the list.

append_field_list_nc

mom_io_file

Append a new field to the list.

append_to_list

database_client_interface

Appends a dataset to the aggregation list When appending a dataset to an aggregation list, the list will automatically be created if it does not exist (i.e. this is the first entry in the list). Aggregation lists work by referencing the dataset by storing its key, so appending a dataset to an aggregation list does not create a copy of the dataset. Also, for this reason, the dataset must have been previously placed into the database with a separate call to

apply_ctrl_forcing

mom_controlled_forcing

This subroutine determines corrective surface forcing fields using simple control theory.

apply_flux_adjustments

mom_surface_forcing_gfdl

Adds thermodynamic flux adjustments obtained via data_override Component name is ‘OCN’ Available adjustments are:

apply_force_adjustments

mom_surface_forcing_gfdl

Adds mechanical forcing adjustments obtained via data_override Component name is ‘OCN’ Available adjustments are:

apply_oda_incupd

mom_oda_incupd

This subroutine applies oda increments to layers thicknesses, temp, salt, U and V everywhere .

apply_oda_tracer_increments

mom_oda_driver_mod

Apply increments to tracers.

apply_partial_cell_mask

mom_ale

Mask out thicknesses to 0 when their running sum exceeds a specified value.

apply_skeb

mom_stochastics

apply_sponge

mom_sponge

This subroutine applies damping to the layers thicknesses, mixed layer buoyancy, and a variety of tracers for every column where there is damping.

apply_topography_edits_from_file

mom_shared_initialization

Applies a list of topography overrides read from a netcdf file.

apply_u_velocity_obcs

mom_barotropic

This subroutine applies the open boundary conditions on barotropic zonal velocities and mass transports, as developed by Mehmet Ilicak.

apply_v_velocity_obcs

mom_barotropic

This subroutine applies the open boundary conditions on barotropic meridional velocities and mass transports, as developed by Mehmet Ilicak.

applyboundaryfluxesinout

mom_diabatic_aux

Update the thickness, temperature, and salinity due to thermodynamic boundary forcing (contained in fluxes type) applied to h, tvT and tvS, and calculate the TKE implications of this heating.

applytracerboundaryfluxesinout

mom_tracer_diabatic

This routine is modeled after applyBoundaryFluxesInOut in

archaic_param_name_message

mom_file_parser

Issue error messages or warnings about the use of an archaic parameter name.

array_global_min_max

mom_spatial_means

Find the global maximum and minimum of a tracer array and return the locations of the extrema. When there multiple cells with the same extreme values, the reported locations are from the uppermost layer where they occur, and then from the logically northernmost and then eastermost such location on the unrotated version of the grid within that layer. Only ocean points (as indicated by a positive value of Gmask2dT) are evaluated, and if there are no ocean points anywhere in the domain, the reported extrema and their locations are all returned as 0.

assert

mom_error_handler

Issues a FATAL error if the assertion fails, i.e. the first argument is false.

astro_longitudes_init

mom_tidal_forcing

Finds astronomical longitudes s, h, p, and N, the mean longitude of the moon, sun, lunar perigee, and ascending node, respectively, at the specified reference time time_ref. These formulas were obtained from Kowalik and Luick, “Modern Theory and Practice of Tide Analysis and Tidal Power”, 2019 (their Equation I.71), which are based on Schureman, 1958. For simplicity, the time associated with time_ref should be at midnight. These formulas also only make sense if the calendar is Gregorian.

attach_cell_methods

mom_diag_mediator

Attaches “cell_methods” attribute to a variable based on defaults for

attach_cell_methods

mom_is_diag_mediator

Attaches “cell_methods” attribute to a variable based on defaults for

average

recon1d_ppm_cwk

Average between xa and xb for cell k of a 1D PPM reconstruction [A].

average

recon1d_plm_cw

Average between xa and xb for cell k of a 1D PLM reconstruction [A].

average

recon1d_pcm

Average between xa and xb for cell k of a 1D PCM reconstruction [A].

average

recon1d_ppm_h4_2019

Average between xa and xb for cell k of a 1D PPM reconstruction [A].

average

recon1d_plm_wls

Average between xa and xb for cell k of a 1D PLM reconstruction [A].

average

recon1d_plm_hybgen

Average between xa and xb for cell k of a 1D PLM reconstruction [A].

average

recon1d_ppm_cw

Average between xa and xb for cell k of a 1D PPM reconstruction [A].

average

recon1d_mplm_wa_poly

Average between xa and xb for cell k of a 1D PLM reconstruction [A] Note: this uses the simple polynomial form a + b * x on x E (0,1) which can overshoot at x=1.

average_discontinuous_edge_values

regrid_edge_values

Replace discontinuous collocated edge values with their average.

average_specific_vol

mom_eos

Calls the appropriate subroutine to calculate the layer averaged specific volume either using Boole’s rule quadrature or analytical and nearly-analytical averages in pressure.

average_value_ppoly

mom_remapping

Returns the average value of a reconstruction within a single source cell, i0, between the non-dimensional positions xa and xb (xa<=xb) with dimensional separation dh.

avg_spec_vol_buggy_wright

mom_eos_wright

Calculates analytical and nearly-analytical integrals, in pressure across layers, to determine the layer-average specific volumes. There are essentially no free assumptions, apart from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34.

avg_spec_vol_linear

mom_eos_linear

Calculates the layer average specific volumes. The analytical solution is SpV_avg = 1 / (drho_dp*dp) * ln[(1+eps)/(1-eps)] and the expression here is the first five terms of its Taylor series with a trunction error of O(eps**10). |eps|<0.02 for real ocean parameters.

avg_spec_vol_wright_full

mom_eos_wright_full

Calculates analytical and nearly-analytical integrals, in pressure across layers, to determine the layer-average specific volumes. There are essentially no free assumptions, apart from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34.

avg_spec_vol_wright_red

mom_eos_wright_red

Calculates analytical and nearly-analytical integrals, in pressure across layers, to determine the layer-average specific volumes. There are essentially no free assumptions, apart from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34.

avg_specific_vol

mom_density_integrals

Calculate the average in situ specific volume across layers.

axes_grp_end

mom_diag_mediator

baroclinic_zone_init_temperature_salinity

baroclinic_zone_initialization

Initialization of temperature and salinity with the baroclinic zone initial conditions.

barotropic_end

mom_barotropic

Clean up the barotropic control structure.

barotropic_get_tav

mom_barotropic

Copies ubtav and vbtav from private type into arrays.

barotropic_init

mom_barotropic

barotropic_init initializes a number of time-invariant fields used in the barotropic calculation and initializes any barotropic fields that have not already been initialized.

basin_builder_topography

basin_builder

Constructs idealized topography from simple functions.

bcz_params

baroclinic_zone_initialization

Reads the parameters unique to this module.

benchmark_init_temperature_salinity

benchmark_initialization

Initializes layer temperatures and salinities for benchmark.

benchmark_initialize_thickness

benchmark_initialization

Initializes layer thicknesses for the benchmark test case, by finding the depths of interfaces in a specified latitude-dependent temperature profile with an exponentially decaying thermocline on top of a linear stratification.

benchmark_initialize_topography

benchmark_initialization

This subroutine sets up the benchmark test case topography.

bfb_buoyancy_forcing

bfb_surface_forcing

Bouyancy forcing for the boundary-forced-basin (BFB) configuration.

bfb_initialize_sponges_southonly

bfb_initialization

This subroutine sets up the sponges for the southern boundary of the domain. Maximum damping occurs within 2 degrees lat of the boundary. The damping linearly decreases northward over the next 2 degrees.

bfb_set_coord

bfb_initialization

This subroutine specifies the vertical coordinate in terms of temperature at the surface and at the bottom. This case is set up in such a way that the temperature of the topmost layer is equal to the SST at the southern edge of the domain. The temperatures are then converted to densities of the top and bottom layers and linearly interpolated for the intermediate layers.

bfb_surface_forcing_init

bfb_surface_forcing

Initialization for forcing the boundary-forced-basin (BFB) configuration.

bilinear_shape_fn_grid

mom_ice_shelf_dynamics

This subroutine calculates the gradients of bilinear basis elements that are centered at the vertices of the cell using a locally orthogoal MOM6 grid. Values are calculated at points of gaussian quadrature.

bilinear_shape_fn_grid_1qp

mom_ice_shelf_dynamics

This subroutine calculates the gradients of bilinear basis elements that are centered at the vertices of the cell using a locally orthogoal MOM6 grid. Values are calculated at a sinlge cell-centered quadrature point, which should match the grid cell h-point.

bilinear_shape_functions

mom_ice_shelf_dynamics

This subroutine calculates the gradients of bilinear basis elements that that are centered at the vertices of the cell. Values are calculated at points of gaussian quadrature.

bilinear_shape_functions_subgrid

mom_ice_shelf_dynamics

bitcount

mom_checksums

Does a bitcount of a number by first casting to an integer and then using BTEST to check bit by bit.

bkgnd_mixing_end

mom_bkgnd_mixing

Clear pointers and deallocate memory.

bkgnd_mixing_init

mom_bkgnd_mixing

Initialize the background mixing routine.

bound_edge_values

regrid_edge_values

Bound edge values by neighboring cell averages.

boundary_impulse_stock

boundary_impulse_tracer

Calculate total inventory of tracer This function calculates the mass-weighted integral of the boundary impulse, tracer stocks returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.

boundary_impulse_tracer_column_physics

boundary_impulse_tracer

Apply source or sink at boundary and do vertical diffusion.

boundary_impulse_tracer_end

boundary_impulse_tracer

Performs finalization of boundary impulse tracer.

boundary_impulse_tracer_surface_state

boundary_impulse_tracer

This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler.

boundary_k_range

mom_hor_bnd_diffusion

Find the k-index range corresponding to the layers that are within the boundary-layer region.

bt_cont_to_face_areas

mom_barotropic

This subroutine uses the BT_cont_type to find the maximum face areas, which can then be used for finding wave speeds, etc.

bt_mass_source

mom_barotropic

bt_mass_source determines the appropriately limited mass source for the barotropic solver, along with a corrective fictitious mass source that will drive the barotropic estimate of the free surface height toward the baroclinic estimate.

btcalc

mom_barotropic

btcalc determines the fraction of the total water column in each layer at velocity points.

btloop_add_dyn_pf

mom_barotropic

This routine adds a dynamic pressure force based on the temporal changes in the predicted value of eta, perhaps as an effective divergence damping to emulate the rigidity of an ice-sheet.

btloop_eta_predictor

mom_barotropic

A routine to set eta_pred and the running time integral of uhbt and vhbt.

btloop_find_pf

mom_barotropic

btloop_update_u

mom_barotropic

Update zonal velocity.

btloop_update_v

mom_barotropic

Update meridional velocity.

btstep

mom_barotropic

This subroutine time steps the barotropic equations explicitly. For gravity waves, anything between a forwards-backwards scheme and a simulated backwards Euler scheme is used, with bebt between 0.0 and 1.0 determining the scheme. In practice, bebt must be of order 0.2 or greater. A forwards-backwards treatment of the Coriolis terms is always used.

btstep_find_cor

mom_barotropic

Find the Coriolis force terms _zon and _mer.

btstep_layer_accel

mom_barotropic

Calculate the zonal and meridional acceleration of each layer due to the barotropic calculation.

btstep_timeloop

mom_barotropic

Update the barotropic solver through multiple time steps.

btstep_ubt_from_layer

mom_barotropic

Calculate the zonal and meridional velocity from the 3-D velocity.

build_adapt_column

coord_adapt

build_and_interpolate_grid

regrid_interp

Build a grid by interpolating for target values.

build_cubic_interpolant

p3m_functions

Build cubic interpolant in cell k.

build_grid_adaptive

mom_regridding

This subroutine builds an adaptive grid that follows density surfaces where possible, subject to constraints on the smoothness of interface heights.

build_grid_hycom1

mom_regridding

Builds a simple HyCOM-like grid with the deepest location of potential density interpolated from the column profile and a clipping of depth for each interface to a fixed z* or p* grid. This should probably be (optionally?) changed to find the nearest location of the target density.

build_hycom1_column

coord_hycom

Build a HyCOM coordinate column.

build_hycom1_target_anomaly

coord_hycom

Calculate interface density anomaly w.r.t. the target.

build_reconstructions_1d

mom_remapping

Creates polynomial reconstructions of u0 on the source grid h0.

build_rho_column

coord_rho

Build a rho coordinate column.

build_rho_column_iteratively

coord_rho

Iteratively build a rho coordinate column.

build_rho_grid

mom_regridding

This routine builds a new grid based on a given set of target interface densities.

build_sigma_column

coord_sigma

Build a sigma coordinate column.

build_sigma_grid

mom_regridding

This routine builds a grid based on terrain-following coordinates.

build_zstar_column

coord_zlike

Builds a z* coordinate with a minimum thickness.

build_zstar_grid

mom_regridding

Builds a z*-coordinate grid with partial steps (Adcroft and Campin, 2004). z* is defined as z* = (z-eta)/(H+eta)*H s.t. z*=0 when z=eta and z*=-H when z=-H .

bulkmixedlayer

mom_bulk_mixed_layer

This subroutine partially steps the bulk mixed layer model. See

bulkmixedlayer_init

mom_bulk_mixed_layer

This subroutine initializes the MOM bulk mixed layer module.

buoyancy_forcing_const

mom_surface_forcing

Sets up spatially and temporally constant surface heat fluxes.

buoyancy_forcing_from_data_override

mom_surface_forcing

Specifies zero surface buoyancy fluxes from data over-ride.

buoyancy_forcing_from_files

mom_surface_forcing

Specifies zero surface buoyancy fluxes from input files.

buoyancy_forcing_linear

mom_surface_forcing

Sets surface fluxes of heat and salinity by restoring to temperature and salinity profiles that vary linearly with latitude.

buoyancy_forcing_zero

mom_surface_forcing

This subroutine specifies zero surface buoyancy fluxes.

calc_delta_rho_and_derivs

mom_neutral_diffusion

Calculate the difference in density between two points in a variety of ways.

calc_depth_function

mom_lateral_mixing_coeffs

Calculates the non-dimensional depth functions.

calc_derived_thermo

mom_interface_heights

Calculate derived thermodynamic quantities for re-use later.

calc_eady_growth_rate_2d

mom_lateral_mixing_coeffs

Calculates the Eady growth rate (2D fields) for use in MEKE and the Visbeck schemes.

calc_eta_at_uv

mom_porous_barriers

calc_h_new_by_dz

mom_regridding

Calculates h_new from h + delta_k dzInterface.

calc_isoneutral_slopes

mom_isopycnal_slopes

Calculate isopycnal slopes, and optionally return other stratification dependent functions such as N^2 and dz*S^2*g-prime used, or calculable from factors used, during the calculation.

calc_kappa_shear_vertex

mom_kappa_shear

Subroutine for calculating shear-driven diffusivity and TKE in corner columns.

calc_lmax

mom_spherical_harmonics

Calculates the number of real elements (cosine) of spherical harmonics given maximum degree Nd.

calc_love_scaling

mom_self_attr_load

This subroutine calculates coefficients of the spherical harmonic modes for self-attraction and loading. The algorithm is based on the SAL implementation in MPAS-ocean, which was modified by Kristin Barton from routine written by K. Quinn (March 2010) and modified by M. Schindelegger (May 2017).

calc_oda_increments

mom_oda_incupd

calc_por_interface

mom_porous_barriers

subroutine to calculate the profile fit (the three parameter fit from Adcroft 2013)

calc_por_layer

mom_porous_barriers

subroutine to calculate the profile fit (the three parameter fit from Adcroft 2013)

calc_qg_leith_viscosity

mom_lateral_mixing_coeffs

Calculates the Leith Laplacian and bi-harmonic viscosity coefficients.

calc_qg_slopes

mom_lateral_mixing_coeffs

Calculates and returns isopycnal slopes with wider halos for use in finding QG viscosity.

calc_resoln_function

mom_lateral_mixing_coeffs

Calculates and stores the non-dimensional resolution functions.

calc_sal

mom_self_attr_load

This subroutine calculates seawater self-attraction and loading based on either sea surface height (SSH) or bottom pressure anomaly. Note that the SAL calculation applies to all motions across the spectrum. Tidal-specific methods that assume periodicity, i.e. iterative and read-in SAL, are stored in MOM_tidal_forcing module. The input field can be either SSH [Z ~> m] or total bottom pressure [R L2 T-2 ~> Pa]. If total bottom pressure is used, bottom pressure anomaly is first calculated by subtracting a reference bottom pressure from an input file. The output field is expressed as geopotential height anomaly, and therefore has the unit of [Z ~> m].

calc_sfc_displacement

mom_state_initialization

Calculate the hydrostatic equilibrium position of the surface under an ice shelf.

calc_shelf_driving_stress

mom_ice_shelf_dynamics

Calculate driving stress using cell-centered bed elevation and ice thickness.

calc_shelf_taub

mom_ice_shelf_dynamics

Update basal shear.

calc_shelf_visc

mom_ice_shelf_dynamics

Update depth integrated viscosity, based on horizontal strain rates.

calc_slope_functions

mom_lateral_mixing_coeffs

Calculates and stores functions of isopycnal slopes, e.g. Sx, Sy, S*N, mostly used in the Visbeck et al. style scaling of diffusivity.

calc_slope_functions_using_just_e

mom_lateral_mixing_coeffs

The original calc_slope_function() that calculated slopes using interface positions only, not accounting for density variations.

calc_spec_vol_1d

mom_eos

Calls the appropriate subroutine to calculate the specific volume of sea water for 1-D array inputs, potentially limiting the domain of indices that are worked on.

calc_spec_vol_derivs_1d

mom_eos

Calls the appropriate subroutine to calculate specific volume derivatives for 1-d array inputs, potentially limiting the domain of indices that are worked on.

calc_spec_vol_scalar

mom_eos

Calls the appropriate subroutine to calculate specific volume of sea water for scalar inputs.

calc_spec_vol_second_derivs_elem_roquet_spv

mom_eos_roquet_spv

Second derivatives of specific volume with respect to temperature, salinity, and pressure for a 1-d array inputs and outputs using the specific volume polynomial fit from Roquet et al. (2015).

calc_sqg_struct

mom_lateral_mixing_coeffs

Calculates and stores functions of SQG mode.

calc_tidal_forcing

mom_tidal_forcing

This subroutine calculates the geopotential anomalies that drive the tides, including tidal self-attraction and loading from previous solutions.

calc_tidal_forcing_legacy

mom_tidal_forcing

This subroutine functions the same as calc_tidal_forcing but outputs a field that combines previously calculated self-attraction and loading (SAL) and tidal forcings, so that old answers can be preserved bitwise before SAL is separated out as an individual module.

calc_visbeck_coeffs_old

mom_lateral_mixing_coeffs

Calculates factors used when setting diffusivity coefficients similar to Visbeck et al., 1997. This is on older implementation that is susceptible to large values of Eady growth rate for incropping layers.

calculate_bkgnd_mixing

mom_bkgnd_mixing

Calculates the vertical background diffusivities/viscosities.

calculate_compress_1d

mom_eos

Calls the appropriate subroutine to calculate the density and compressibility for 1-D array inputs. The inputs and outputs use dimensionally rescaled units.

calculate_compress_elem_buggy_wright

mom_eos_wright

Compute the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature and pressure using the poor implementation of the equation of state, as fit by Wright, 1997.

calculate_compress_elem_jackett06

mom_eos_jackett06

Compute the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature and pressure using Jackett et al., 2006.

calculate_compress_elem_linear

mom_eos_linear

This subroutine computes the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature, and pressure.

calculate_compress_elem_roquet_rho

mom_eos_roquet_rho

Compute the in situ density of sea water (rho in [kg m-3]) and the compressibility (drho/dp = C_sound^-2, stored as drho_dp [s2 m-2]) from absolute salinity (sal [g kg-1]), conservative temperature (T [degC]), and pressure [Pa], using the density polynomial fit EOS from Roquet et al. (2015).

calculate_compress_elem_roquet_spv

mom_eos_roquet_spv

Compute the in situ density of sea water (rho in [kg m-3]) and the compressibility (drho/dp = C_sound^-2, stored as drho_dp [s2 m-2]) from absolute salinity (sal [g kg-1]), conservative temperature (T [degC]), and pressure [Pa], using the specific volume polynomial fit from Roquet et al. (2015).

calculate_compress_elem_teos10

mom_eos_teos10

This subroutine computes the in situ density of sea water (rho in [kg m-3]) and the compressibility (drho/dp = C_sound^-2) (drho_dp [s2 m-2]) from absolute salinity (sal [g kg-1]), conservative temperature (T [degC]), and pressure [Pa]. It uses the subroutines from TEOS10 website.

calculate_compress_elem_unesco

mom_eos_unesco

Compute the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature and pressure using the UNESCO (1981) equation of state, as refit by Jackett and McDougall (1995).

calculate_compress_elem_wright_full

mom_eos_wright_full

Compute the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature and pressure using the full range equation of state, as fit by Wright, 1997.

calculate_compress_elem_wright_red

mom_eos_wright_red

Compute the in situ density of sea water (rho) and the compressibility (drho/dp == C_sound^-2) at the given salinity, potential temperature and pressure using the reduced range equation of state, as fit by Wright, 1997.

calculate_compress_scalar

mom_eos

Calculate density and compressibility for a scalar. This just promotes the scalar to an array with a singleton dimension and calls calculate_compress_1d. The inputs and outputs use dimensionally rescaled units.

calculate_cvmix_conv

mom_cvmix_conv

Subroutine for calculating enhanced diffusivity/viscosity due to convection via CVMix.

calculate_cvmix_shear

mom_cvmix_shear

Subroutine for calculating (internal) vertical diffusivities/viscosities.

calculate_cvmix_tidal

mom_tidal_mixing

Calls the CVMix routines to compute tidal dissipation and to add the effect of internal-tide-driven mixing to the interface diffusivities.

calculate_density_1d

mom_eos

Calls the appropriate subroutine to calculate the density of sea water for 1-D array inputs, potentially limiting the domain of indices that are worked on. If rho_ref is present, the anomaly with respect to rho_ref is returned.

calculate_density_array_buggy_wright

mom_eos_wright

Calculate the in-situ density for 1D arraya inputs and outputs.

calculate_density_array_linear

mom_eos_linear

Calculate the in-situ density for 1D arraya inputs and outputs.

calculate_density_array_roquet_rho

mom_eos_roquet_rho

Calculate the in-situ density for 1D arraya inputs and outputs.

calculate_density_array_roquet_spv

mom_eos_roquet_spv

Calculate the in-situ density for 1D arraya inputs and outputs.

calculate_density_array_wright_full

mom_eos_wright_full

Calculate the in-situ density for 1D arraya inputs and outputs.

calculate_density_array_wright_red

mom_eos_wright_red

Calculate the in-situ density for 1D arraya inputs and outputs.

calculate_density_derivs_1d

mom_eos

Calls the appropriate subroutine to calculate density derivatives for 1-D array inputs.

calculate_density_derivs_array

mom_eos

Calls the appropriate subroutine to calculate density derivatives for 1-D array inputs.

calculate_density_derivs_elem_buggy_wright

mom_eos_wright

Calculate the partial derivatives of density with potential temperature and salinity using the buggy implementation of the equation of state, as fit by Wright, 1997.

calculate_density_derivs_elem_jackett06

mom_eos_jackett06

Calculate the partial derivatives of density with potential temperature and salinity using Jackett et al., 2006.

calculate_density_derivs_elem_linear

mom_eos_linear

This subroutine calculates the partial derivatives of density with potential temperature and salinity.

calculate_density_derivs_elem_roquet_rho

mom_eos_roquet_rho

For a given thermodynamic state, calculate the derivatives of density with conservative temperature and absolute salinity, using the density polynomial fit EOS from Roquet et al. (2015).

calculate_density_derivs_elem_roquet_spv

mom_eos_roquet_spv

Compute an array of derivatives of densities of sea water with temperature (drho_dT in [kg m-3 degC-1]) and salinity (drho_dS in [kg m-3 ppt-1]) from absolute salinity (S [g kg-1]), conservative temperature (T [degC]) and pressure [Pa], using the specific volume polynomial fit from Roquet et al. (2015).

calculate_density_derivs_elem_teos10

mom_eos_teos10

For a given thermodynamic state, calculate the derivatives of density with conservative temperature and absolute salinity, using the TEOS10 expressions.

calculate_density_derivs_elem_unesco

mom_eos_unesco

Calculate the partial derivatives of density with potential temperature and salinity using the UNESCO (1981) equation of state, as refit by Jackett and McDougall (1995).

calculate_density_derivs_elem_wright_full

mom_eos_wright_full

Calculate the partial derivatives of density with potential temperature and salinity using the full range equation of state, as fit by Wright, 1997.

calculate_density_derivs_elem_wright_red

mom_eos_wright_red

Calculate the partial derivatives of density with potential temperature and salinity using the reduced range equation of state, as fit by Wright, 1997.

calculate_density_derivs_scalar

mom_eos

Calls the appropriate subroutines to calculate density derivatives by promoting a scalar to a one-element array.

calculate_density_elem

mom_eos

Density of sea water (in-situ if pressure is local) [R ~> kg m-3].

calculate_density_scalar

mom_eos

Calls the appropriate subroutine to calculate density of sea water for scalar inputs. If rho_ref is present, the anomaly with respect to rho_ref is returned. The pressure and density can be rescaled with the values stored in EOS. If the scale argument is present the density scaling uses the product of the two scaling factors.

calculate_density_second_derivs_1d

mom_eos

Calls the appropriate subroutine to calculate density second derivatives for 1-D array inputs.

calculate_density_second_derivs_elem_buggy_wright

mom_eos_wright

Second derivatives of density with respect to temperature, salinity, and pressure, using the poor implementation of the equation of state, as fit by Wright, 1997.

calculate_density_second_derivs_elem_jackett06

mom_eos_jackett06

Calculate second derivatives of density with respect to temperature, salinity, and pressure, using Jackett et al., 2006.

calculate_density_second_derivs_elem_linear

mom_eos_linear

This subroutine calculates the five, partial second derivatives of density w.r.t. potential temperature and salinity and pressure which for a linear equation of state should all be 0.

calculate_density_second_derivs_elem_roquet_rho

mom_eos_roquet_rho

Second derivatives of density with respect to temperature, salinity, and pressure.

calculate_density_second_derivs_elem_roquet_spv

mom_eos_roquet_spv

Second derivatives of density with respect to temperature, salinity, and pressure for a 1-d array inputs and outputs using the specific volume polynomial fit from Roquet et al. (2015).

calculate_density_second_derivs_elem_teos10

mom_eos_teos10

Calculate the 5 second derivatives of the equation of state for scalar inputs.

calculate_density_second_derivs_elem_unesco

mom_eos_unesco

Calculate second derivatives of density with respect to temperature, salinity, and pressure, using the UNESCO (1981) equation of state, as refit by Jackett and McDougall (1995)

calculate_density_second_derivs_elem_wright_full

mom_eos_wright_full

Second derivatives of density with respect to temperature, salinity, and pressure, using the full range equation of state, as fit by Wright, 1997.

calculate_density_second_derivs_elem_wright_red

mom_eos_wright_red

Second derivatives of density with respect to temperature, salinity, and pressure, using the reduced range equation of state, as fit by Wright, 1997.

calculate_density_second_derivs_scalar

mom_eos

Calls the appropriate subroutine to calculate density second derivatives for scalar inputs.

calculate_derivs

mom_diagnostics

This subroutine calculates all registered time derivatives.

calculate_diagnostic_fields

mom_diagnostics

Diagnostics not more naturally calculated elsewhere are computed here.

calculate_energy_diagnostics

mom_diagnostics

This subroutine calculates terms in the mechanical energy budget.

calculate_kappa_shear

mom_kappa_shear

Subroutine for calculating shear-driven diffusivity and TKE in tracer columns.

calculate_projected_state

mom_kappa_shear

This subroutine calculates the velocities, temperature and salinity that the water column will have after mixing for dt with diffusivities kappa. It may also calculate the projected buoyancy frequency and shear.

calculate_spec_vol_array

mom_eos

Calls the appropriate subroutine to calculate the specific volume of sea water for 1-D array inputs.

calculate_spec_vol_array_buggy_wright

mom_eos_wright

Calculate the in-situ specific volume for 1D array inputs and outputs.

calculate_spec_vol_array_linear

mom_eos_linear

Calculate the in-situ specific volume for 1D array inputs and outputs.

calculate_spec_vol_array_roquet_rho

mom_eos_roquet_rho

Calculate the in-situ specific volume for 1D array inputs and outputs.

calculate_spec_vol_array_roquet_spv

mom_eos_roquet_spv

Calculate the in-situ specific volume for 1D array inputs and outputs.

calculate_spec_vol_array_wright_full

mom_eos_wright_full

Calculate the in-situ specific volume for 1D array inputs and outputs.

calculate_spec_vol_array_wright_red

mom_eos_wright_red

Calculate the in-situ specific volume for 1D array inputs and outputs.

calculate_spec_vol_derivs_array

mom_eos

Calls the appropriate subroutine to calculate specific volume derivatives for an array.

calculate_specvol_derivs_elem_buggy_wright

mom_eos_wright

Calculate the partial derivatives of specific volume with temperature and salinity using the poor implementation of the equation of state, as fit by Wright, 1997.

calculate_specvol_derivs_elem_jackett06

mom_eos_jackett06

Calculate second derivatives of density with respect to temperature, salinity, and pressure, using Jackett et al., 2006.

calculate_specvol_derivs_elem_linear

mom_eos_linear

Calculate the derivatives of specific volume with temperature and salinity.

calculate_specvol_derivs_elem_roquet_rho

mom_eos_roquet_rho

Calculate the partial derivatives of specific volume with temperature and salinity using the density polynomial fit EOS from Roquet et al. (2015).

calculate_specvol_derivs_elem_roquet_spv

mom_eos_roquet_spv

Return the partial derivatives of specific volume with temperature and salinity for 1-d array inputs and outputs, using the specific volume polynomial fit from Roquet et al. (2015).

calculate_specvol_derivs_elem_teos10

mom_eos_teos10

For a given thermodynamic state, calculate the derivatives of specific volume with conservative temperature and absolute salinity, using the TEOS10 expressions.

calculate_specvol_derivs_elem_unesco

mom_eos_unesco

Calculate the partial derivatives of specific volume with temperature and salinity using the UNESCO (1981) equation of state, as refit by Jackett and McDougall (1995).

calculate_specvol_derivs_elem_wright_full

mom_eos_wright_full

Calculate the partial derivatives of specific volume with temperature and salinity using the full range equation of state, as fit by Wright, 1997.

calculate_specvol_derivs_elem_wright_red

mom_eos_wright_red

Calculate the partial derivatives of specific volume with temperature and salinity using the reduced range equation of state, as fit by Wright, 1997.

calculate_stanley_density_1d

mom_eos

Calls the appropriate subroutine to calculate the density of sea water for 1-D array inputs including the variance of T, S and covariance of T-S, potentially limiting the domain of indices that are worked on. The calculation uses only the second order correction in a series as discussed in Stanley et al., 2020. If rho_ref is present, the anomaly with respect to rho_ref is returned.

calculate_stanley_density_scalar

mom_eos

Calls the appropriate subroutine to calculate density of sea water for scalar inputs including the variance of T, S and covariance of T-S. The calculation uses only the second order correction in a series as discussed in Stanley et al., 2020. If rho_ref is present, the anomaly with respect to rho_ref is returned. The density can be rescaled using rho_ref.

calculate_tfreeze_1d

mom_eos

Calls the appropriate subroutine to calculate the freezing point for a 1-D array, taking dimensionally rescaled arguments with factors stored in EOS.

calculate_tfreeze_array

mom_eos

Calls the appropriate subroutine to calculate the freezing point for a 1-D array.

calculate_tfreeze_linear_array

mom_tfreeze

This subroutine computes an array of freezing point potential temperatures [degC] from salinity [ppt], and pressure [Pa] using a simple linear expression, with coefficients passed in as arguments.

calculate_tfreeze_linear_scalar

mom_tfreeze

This subroutine computes the freezing point potential temperature [degC] from salinity [ppt], and pressure [Pa] using a simple linear expression, with coefficients passed in as arguments.

calculate_tfreeze_millero_array

mom_tfreeze

This subroutine computes the freezing point potential temperature [degC] from salinity [ppt], and pressure [Pa] using the expression from Millero (1978) (and in appendix A of Gill 1982), but with the pressure dependence changed from 7.53e-8 to 7.75e-8 to make this an expression for potential temperature (not in situ temperature), using a value that is correct at the freezing point at 35 PSU and 5e6 Pa (500 dbar).

calculate_tfreeze_millero_scalar

mom_tfreeze

This subroutine computes the freezing point potential temperature [degC] from salinity [ppt], and pressure [Pa] using the expression from Millero (1978) (and in appendix A of Gill 1982), but with the of the pressure dependence changed from 7.53e-8 to 7.75e-8 to make this an expression for potential temperature (not in situ temperature), using a value that is correct at the freezing point at 35 PSU and 5e6 Pa (500 dbar).

calculate_tfreeze_scalar

mom_eos

Calls the appropriate subroutine to calculate the freezing point for scalar inputs.

calculate_tfreeze_teos10_array

mom_tfreeze

This subroutine computes the freezing point conservative temperature [degC] from absolute salinity [g kg-1], and pressure [Pa] using the TEOS10 package.

calculate_tfreeze_teos10_scalar

mom_tfreeze

This subroutine computes the freezing point conservative temperature [degC] from absolute salinity [g kg-1], and pressure [Pa] using the TEOS10 package.

calculate_tfreeze_teos_poly_array

mom_tfreeze

This subroutine computes the freezing point conservative temperature [degC] from absolute salinity [g kg-1], and pressure [Pa] using a rescaled and refactored version of the polynomial expressions from the TEOS10 package.

calculate_tfreeze_teos_poly_scalar

mom_tfreeze

This subroutine computes the freezing point conservative temperature [degC] from absolute salinity [g kg-1], and pressure [Pa] using a rescaled and refactored version of the polynomial expressions from the TEOS10 package.

calculate_tidal_mixing

mom_tidal_mixing

Depending on whether or not CVMix is active, calls the associated subroutine to compute internal tidal dissipation and to add the effect of internal-tide-driven mixing to the layer or interface diffusivities.

calculate_vertical_integrals

mom_diagnostics

This subroutine calculates vertical integrals of several tracers, along with the mass-weight of these tracers, the total column mass, and the carefully calculated column height.

calculatebuoyancyflux1d

mom_forcing_type

This routine calculates surface buoyancy flux by adding up the heat, FW & salt fluxes. These are actual fluxes, with units of stuff per time. Setting dt=1 in the call to extractFluxes routine allows us to get “stuf per time” rather than the time integrated fluxes needed in other routines that call extractFluxes.

calculatebuoyancyflux2d

mom_forcing_type

Calculates surface buoyancy flux by adding up the heat, FW and salt fluxes, for 2d arrays. This is a wrapper for calculateBuoyancyFlux1d.

call_obc_register

mom_boundary_update

The following subroutines and associated definitions provide the machinery to register and call the subroutines that initialize open boundary conditions.

call_tracer_column_fns

mom_tracer_flow_control

This subroutine calls all registered tracer column physics subroutines.

call_tracer_flux_init

mom_tracer_flow_control

This subroutine carries out a series of calls to initialize the air-sea tracer fluxes, but it does not record the generated indicies, and it may be called

call_tracer_register

mom_tracer_flow_control

This subroutine determines which tracer packages are to be used and does the calls to register their tracers to be advected, diffused, and read from restarts.

call_tracer_register_obc_segments

mom_tracer_flow_control

This subroutine calls all registered tracers to register their OBC segments similar to register_temp_salt_segments for T&S.

call_tracer_set_forcing

mom_tracer_flow_control

This subroutine calls the individual tracer modules’ subroutines to specify or read quantities related to their surface forcing.

call_tracer_stocks

mom_tracer_flow_control

This subroutine calls all registered tracer packages to enable them to add to the surface state returned to the coupler. These routines are optional.

call_tracer_surface_state

mom_tracer_flow_control

This subroutine calls all registered tracer packages to enable them to add to the surface state returned to the coupler. These routines are optional.

calltree_enter

mom_error_handler

Writes a message about entering a subroutine if call tree reporting is active.

calltree_leave

mom_error_handler

Writes a message about leaving a subroutine if call tree reporting is active.

calltree_showquery

mom_error_handler

Returns True, if the verbosity>=6 indicating to show the call tree.

calltree_waypoint

mom_error_handler

Writes a message about reaching a milestone if call tree reporting is active.

calve_to_mask

mom_ice_shelf_dynamics

carry_overflow

mom_coms

This subroutine handles carrying of the overflow.

cfc_cap_column_physics

mom_cfc_cap

Applies diapycnal diffusion, souces and sinks and any other column tracer physics to the CFC cap tracers. CFCs are relatively simple, as they are passive tracers with only a surface flux as a source.

cfc_cap_end

mom_cfc_cap

Deallocate any memory associated with the CFC cap tracer package.

cfc_cap_set_forcing

mom_cfc_cap

Orchestrates the calculation of the CFC fluxes [mol m-2 s-1], including getting the ATM concentration, and calculating the solubility, Schmidt number, and gas exchange.

cfc_cap_stock

mom_cfc_cap

Calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.

cfc_cap_unit_tests

mom_cfc_cap

Unit tests for the CFC cap module.

cg_action

mom_ice_shelf_dynamics

cg_action_subgrid_basal

mom_ice_shelf_dynamics

cg_diagonal_subgrid_basal

mom_ice_shelf_dynamics

change_in_draft

mom_ice_shelf_dynamics

change_thickness_using_melt

mom_ice_shelf

Changes the thickness (mass) of the ice shelf based on sub-ice-shelf melting.

change_thickness_using_precip

mom_ice_shelf

This subroutine applies net accumulation/ablation at the top surface to the dynamic ice shelf. acc_rate[m-s]=surf_mass_flux/density_ice is ablation/accumulation rate positive for accumulation negative for ablation.

check_bkgnd_scheme

mom_bkgnd_mixing

Sets CSbkgnd_scheme_str to check whether multiple background diffusivity schemes are activated. The string is also for error/log messages.

check_capacity_by_id

mom_diag_buffers

Check whether the id already has a slot reserved. If not, find a new empty slot and if need be, grow the buffer.

check_column_integral

mom_debugging

Returns false if the column integral of a given quantity is within roundoff.

check_column_integrals

mom_debugging

Returns false if the column integrals of two given quantities are within roundoff of each other.

check_discontinuous_edge_values

regrid_edge_values

Check discontinuous edge values and replace them with their average if not monotonic.

check_grid_column

mom_regridding

Check that the total thickness of new and old grids are consistent.

check_mask_val_consistency

mom_surface_forcing_gfdl

Check the values passed by IOB over land are zero.

check_mom6_scaling_factors

mom_check_scaling

Evaluate whether the dimensional scaling factors provide unique tests for all of the combinations of dimensions that are used in MOM6 (or perhaps widely used), and if they are not unique, explore whether another combination of scaling factors can be found that is unique or has less common cases with coinciding scaling.

check_netcdf_call

mom_netcdf

Check netCDF function return codes, report the error log, and abort the run.

check_nml_error

mom_io

Checks the iostat argument that is returned after reading a namelist variable and writes a message if there is an error.

check_reconstruction

recon1d_ppm_cwk

Checks the PPM_CWK reconstruction for consistency.

check_reconstruction

recon1d_plm_cw

Checks the PLM_CW reconstruction for consistency.

check_reconstruction

recon1d_pcm

Checks the PCM reconstruction for consistency.

check_reconstruction

recon1d_ppm_hybgen

Checks the PPM_hybgen reconstruction for consistency.

check_reconstruction

recon1d_mplm_wa

Checks the MPLM_WA reconstruction for consistency.

check_reconstruction

recon1d_emplm_wa_poly

Checks the EMPLM_WA_poly reconstruction for consistency.

check_reconstruction

recon1d_ppm_h4_2019

Checks the PPM_H4_2019 reconstruction for consistency.

check_reconstruction

recon1d_mplm_cwk

Checks the MPLM_CWK reconstruction for consistency.

check_reconstruction

recon1d_plm_wls

Checks the PLM_WLS reconstruction for consistency.

check_reconstruction

recon1d_plm_hybgen

Checks the PLM_hybgen reconstruction for consistency.

check_reconstruction

recon1d_ppm_cw

Checks the PPM_CW reconstruction for consistency.

check_reconstruction

recon1d_mplm_wa_poly

Checks the MPLM_WA_poly reconstruction for consistency.

check_reconstructions_1d

mom_remapping

Checks that edge values and reconstructions satisfy bounds.

check_redundant_sb2d

mom_debugging

Check for consistency between the duplicated points of a 2-D scalar at corner points.

check_redundant_sb3d

mom_debugging

Check for consistency between the duplicated points of a 3-D scalar at corner points.

check_redundant_st2d

mom_debugging

Check for consistency between the duplicated points of a 2-D scalar at tracer points.

check_redundant_st3d

mom_debugging

Check for consistency between the duplicated points of a 3-D scalar at tracer points.

check_redundant_vb2d

mom_debugging

Check for consistency between the duplicated points of a 2-D B-grid vector.

check_redundant_vb3d

mom_debugging

Check for consistency between the duplicated points of a 3-D B-grid vector.

check_redundant_vc2d

mom_debugging

Check for consistency between the duplicated points of a 2-D C-grid vector.

check_redundant_vc3d

mom_debugging

Check for consistency between the duplicated points of a 3-D C-grid vector.

check_redundant_vt2d

mom_debugging

Check for consistency between the duplicated points of a 2-D A-grid vector.

check_redundant_vt3d

mom_debugging

Check for consistency between the duplicated points of a 3-D A-grid vector.

check_remapped_values

mom_remapping

This subroutine checks for sufficient consistence in the extrema and total amounts on the old and new grids.

check_scaling_uniqueness

mom_unique_scales

This subroutine does a checks whether the provided dimensional scaling factors give a unique overall scaling for each of the combinations of units in description, and suggests a better combination if it is not unique. However, this subroutine does nothing if the verbosity level for this run is below 3.

chk_sum_msg1

mom_checksums

Write a message including the checksum of the non-shifted array.

chk_sum_msg2

mom_checksums

Write a message including checksums of non-shifted and southwestward shifted arrays.

chk_sum_msg3

mom_checksums

Write a message including the global mean, maximum and minimum of an array.

chk_sum_msg5

mom_checksums

Write a message including checksums of non-shifted and diagonally shifted arrays.

chk_sum_msg_nsew

mom_checksums

Write a message including checksums of non-shifted and laterally shifted arrays.

chk_sum_msg_s

mom_checksums

Write a message including checksums of non-shifted and southward shifted arrays.

chk_sum_msg_w

mom_checksums

Write a message including checksums of non-shifted and westward shifted arrays.

chksum0

mom_checksums

Checksum a scalar field (consistent with array checksums)

chksum1d

mom_checksums

chksum1d does a checksum of a 1-dimensional array.

chksum2d

mom_checksums

chksum2d does a checksum of all data in a 2-d array.

chksum3d

mom_checksums

chksum3d does a checksum of all data in a 2-d array.

chksum_b_2d

mom_checksums

Checksums a 2d array staggered at corner points.

chksum_b_3d

mom_checksums

Checksums a 3d array staggered at corner points.

chksum_error

mom_checksums

A wrapper for MOM_error used in the checksum code.

chksum_h_2d

mom_checksums

Checksums a 2d array staggered at tracer points.

chksum_h_3d

mom_checksums

Checksums a 3d array staggered at tracer points.

chksum_obc_segment_data

mom_open_boundary

Write checksums and perhaps some or all of the values of all the allocated arrays on a single OBC segment.

chksum_obc_segments

mom_open_boundary

Write checksums and perhaps some or all of the values of all the allocated arrays on the OBC segments.

chksum_pair_b_2d

mom_checksums

Checksums on a pair of 2d arrays staggered at q-points.

chksum_pair_b_3d

mom_checksums

Checksums on a pair of 3d arrays staggered at q-points.

chksum_pair_h_2d

mom_checksums

Checksums on a pair of 2d arrays staggered at tracer points.

chksum_pair_h_3d

mom_checksums

Checksums on a pair of 3d arrays staggered at tracer points.

chksum_u_2d

mom_checksums

Checksums a 2d array staggered at C-grid u points.

chksum_u_3d

mom_checksums

Checksums a 3d array staggered at C-grid u points.

chksum_uv_2d

mom_checksums

Checksums a pair of 2d velocity arrays staggered at C-grid locations.

chksum_uv_3d

mom_checksums

Checksums a pair of 3d velocity arrays staggered at C-grid locations.

chksum_v_2d

mom_checksums

Checksums a 2d array staggered at C-grid v points.

chksum_v_3d

mom_checksums

Checksums a 3d array staggered at C-grid v points.

chksum_vec_a2d

mom_debugging

Do a checksum and redundant point check on a 2d C-grid vector.

chksum_vec_a3d

mom_debugging

Do a checksum and redundant point check on a 3d C-grid vector.

chksum_vec_b2d

mom_debugging

chksum_vec_b3d

mom_debugging

Do a checksum and redundant point check on a 3d B-grid vector.

chksum_vec_c2d

mom_debugging

Do a checksum and redundant point check on a 2d C-grid vector.

chksum_vec_c3d

mom_debugging

Do a checksum and redundant point check on a 3d C-grid vector.

chmod

posix

Change mode of a file.

circ_conic_ridge

basin_builder

A circular ridge with cutoff conic profile [nondim].

circ_ridge

neverworld_initialization

A circular ridge [nondim].

circ_scurve_ridge

basin_builder

A circular ridge with cutoff scurve profile [nondim].

circle_obcs_initialize_thickness

circle_obcs_initialization

This subroutine initializes layer thicknesses for the circle_obcs experiment.

cleanup_file_parser

mom_file_parser_tests

cleanup_open_param_file_component

mom_file_parser_tests

cleanup_open_param_file_ioerr

mom_file_parser_tests

cleanup_open_param_file_netcdf

mom_file_parser_tests

clearparameterblock

mom_file_parser

Resets the parameter block name to blank.

close_file_infra

mom_io_file

Close a MOM framework file.

close_file_nc

mom_io_file

Close a MOM netCDF file.

close_file_to_read

mom_io

Close a netcdf file that had been opened for reading, with error handling.

close_netcdf_file

mom_netcdf

Close an opened netCDF file.

close_param_file

mom_file_parser

Close any open input files and deallocate memory associated with this

close_profile_file

write_ocean_obs_mod

Close a profile file.

closemultilinecomment

mom_file_parser

Return True if a */ appears on this line.

closeparameterblock

mom_file_parser

Remove the lowest level of recursion from the active block name.

cmor_long_std

mom_io

This function returns the CMOR standard name given a CMOR longname, based on the standard pattern of character conversions.

comp_cfc_schmidt

mom_cfc_cap

Compute Schmidt numbers of CFCs following Wanninkhof (2014); doi:10.4319/lom.2014.12.351 Range of validity of fit is -2:40.

compare_nsp_row

mom_neutral_diffusion

Compares a single row, k, of output from find_neutral_surface_positions()

compare_two_schemes

mom_remapping

Test class-based remapping bitwise reproduces original implementation.

compare_values

mom_cfc_cap

Test that ans and calc are approximately equal by computing the difference and comparing it against limit.

compose_dimension_list

mom_check_scaling

This routine composes a list of the commonly used dimensional scaling factors in the MOM6 code, along with weights reflecting the frequency of their occurrence in the MOM6 code or other considerations of how likely the variables are be used.

compute_c_diss

mom_zanna_bolton

Compute the attenuation parameter similarly to Klower2018, Juricke2019,2020: c_diss = 1/(1+(shear/(f*R_diss))) where shear = sqrt(sh_xx**2 + sh_xy**2) or shear = sqrt(sh_xx**2 + sh_xy**2 + vort_xy**2) In symmetric memory model, components of velocity gradient tensor should have halo 1 and zero boundary conditions. The result: c_diss having halo 1.

compute_ddiff_coeffs

mom_cvmix_ddiff

Subroutine for computing vertical diffusion coefficients for the double diffusion mixing parameterization.

compute_energy_source

mom_zanna_bolton

Computes the 3D energy source term for the ZB2020 scheme similarly to

compute_global_grid_integrals

mom_shared_initialization

Pre-compute global integrals of grid quantities (like masked ocean area) for later use in reporting diagnostics.

compute_stokesdrift

mom_cvmix_kpp

Compute Stokes Drift components at zbot < ztop <= 0 and at k=0.5*(ztop+zbot) and average components from ztop to zbot <= 0.

compute_stress

mom_zanna_bolton

Compute stress tensor T = (Txx, Txy; Txy, Tyy) Which consists of the deviatoric and trace components, respectively: T = (-vort_xy * sh_xy, vort_xy * sh_xx; vort_xy * sh_xx, vort_xy * sh_xy) + 1/2 * (vort_xy^2 + sh_xy^2 + sh_xx^2, 0; 0, vort_xy^2 + sh_xy^2 + sh_xx^2) This stress tensor is multiplied by precomputed kappa=-CSamplitude * Garea: T -> T * kappa The sign of the stress tensor is such that (neglecting h): (du/dt, dv/dt) = div(T) In symmetric memory model: sh_xy and vort_xy should have halo 1 and zero B.C.; sh_xx should have halo 2 and zero B.C. Result: Txx, Tyy, Txy with halo 1 and zero B.C.

compute_stress_ann_collocated

mom_zanna_bolton

Compute stress tensor T = (Txx, Txy; Txy, Tyy) with ANN in non-dimensional form: T = dx^2 * |grad V|^2 * ANN(grad V / |grad V|) The sign of the stress tensor is such that: (du/dt, dv/dt) = 1/h * div(h * T) Algorithm: 1) Interpolate input features (sh_xy, sh_xx, vort_xy) to grid centers 2) Compute norm of velocity gradients on a stencil 3) Non-dimensionalize input features 4) Make ANN inference in grid centers 5) Restore physical dimensionality and interpolate Txy back to corners.

compute_stress_divergence

mom_zanna_bolton

Compute the divergence of subgrid stress weighted with thickness, i.e. (fx,fy) = 1/h Div(h * [Txx, Txy; Txy, Tyy]) and update the acceleration due to eddy viscosity as diffu = diffu + dx; diffv = diffv + dy Optionally, before computing the divergence, we attenuate the stress according to the Klower formula. In symmetric memory model: Txx, Tyy, Txy, c_diss should have halo 1 with applied zero B.C.

compute_tapering_coeffs

mom_neutral_diffusion

Computes linear tapering coefficients at interfaces of the left and right columns within a region defined by the boundary layer depths in the two columns.

compute_totchl

marbl_interface

Dummy version of MARBL’s compute_totChl() function.

cone

basin_builder

Returns the value of a triangular function centered at x=x0 with value 1 and linearly decreasing to 0 at x=x0+/-L, and 0 otherwise [nondim]. If clip is present the top of the cone is cut off at “clip”, which effectively defaults to 1.

cone

neverworld_initialization

Returns the value of a triangular function centered at x=x0 with value 1 and linearly decreasing to 0 at x=x0+/-L, and 0 otherwise [nondim]. If clip is present the top of the cone is cut off at “clip”, which effectively defaults to 1.

configure_marbl_tracers

marbl_tracers

This subroutine is used to read marbl_in, configure MARBL accordingly, and then call MARBL’s initialization routine.

cons_temp_to_pot_temp

mom_eos

Converts an array of conservative temperatures to potential temperatures. The input arguments use the dimensionally rescaling as specified within the EOS type. The output potential temperature uses this same scaling, but this can be replaced by the factor given by scale.

constemp_to_potemp

mom_temperature_convert

Convert input potential temperature [degC] and absolute salinity [g kg-1] to returned conservative temperature [degC] by inverting the polynomial expressions from TEOS-10.

continuity_2d_fluxes

mom_continuity_ppm

Find the vertical sum of the thickness fluxes from the continuity solver without actually updating the layer thicknesses. Because the fluxes in the two directions are calculated based on the input thicknesses, which are not updated between the directions, the fluxes returned here are not the same as those that would be returned by a call to continuity.

continuity_3d_fluxes

mom_continuity_ppm

Finds the thickness fluxes from the continuity solver without actually updating the layer thicknesses. Because the fluxes in the two directions are calculated based on the input thicknesses, which are not updated between the direcitons, the fluxes returned here are not the same as those that would be returned by a call to continuity.

continuity_adjust_vel

mom_continuity_ppm

Correct the velocities to give the specified depth-integrated transports by applying a barotropic acceleration (subject to viscous drag) to the velocities.

continuity_merdional_convergence

mom_continuity_ppm

Updates the thicknesses due to meridional thickness fluxes.

continuity_ppm

mom_continuity_ppm

Time steps the layer thicknesses, using a monotonically limit, directionally split PPM scheme, based on Lin (1994).

continuity_ppm_init

mom_continuity_ppm

Initializes

continuity_ppm_stencil

mom_continuity_ppm

continuity_PPM_stencil returns the continuity solver stencil size

continuity_zonal_convergence

mom_continuity_ppm

Updates the thicknesses due to zonal thickness fluxes.

controlled_forcing_end

mom_controlled_forcing

Clean up this modules control structure.

controlled_forcing_init

mom_controlled_forcing

Set up this modules control structure.

convective_adjustment

mom_bulk_mixed_layer

This subroutine does instantaneous convective entrainment into the buffer layers and mixed layers to remove hydrostatic instabilities. Any water that is lighter than currently in the mixed- or buffer- layer is entrained.

convective_adjustment

mom_regridding

Achieve convective adjustment by swapping layers.

convert_date_to_string

mom_file_parser

This function converts a date into a string, valid with ticks and for dates up to year 99,999,999.

convert_driver_fields_to_forcings

marbl_forcing_mod

convert_iob_to_fluxes

mom_surface_forcing_gfdl

This subroutine translates the Ice_ocean_boundary_type into a MOM thermodynamic forcing type, including changes of units, sign conventions, and putting the fields into arrays with MOM-standard halos.

convert_iob_to_forces

mom_surface_forcing_gfdl

This subroutine translates the Ice_ocean_boundary_type into a MOM mechanical forcing type, including changes of units, sign conventions, and putting the fields into arrays with MOM-standard halos.

convert_mld_to_ml_thickness

mom_interface_heights

Convert mixed layer depths in height units into the thickness of water in the mixed in thickness units.

convert_shelf_state_to_ocean_type

ocean_model_mod

Converts the ice-shelf-to-ocean calving and calving_hflx variables from the ice-shelf state (ISS) type to the ocean public type.

convert_state_to_ocean_type

ocean_model_mod

This subroutine translates the coupler’s ocean_data_type into MOM’s surface state variable. This may eventually be folded into the MOM code that calculates the surface state in the first place. Note the offset in the arrays because the ocean_data_type has no halo points in its arrays and always uses absolute indices.

convert_temp_salt_for_teos10

mom_eos

Convert T&S to Absolute Salinity and Conservative Temperature if using TEOS10.

coordinatemode

regrid_consts

Parse a string parameter specifying the coordinate mode and return the appropriate enumerated integer.

coordinateunitsi

regrid_consts

Returns a string with the coordinate units associated with the enumerated integer,.

coordinateunitss

regrid_consts

Returns a string with the coordinate units associated with the string defining the coordinate mode.

copy_back_forcing_fields

mom_forcing_type

This subroutine copies the computational domains of common forcing fields from a

copy_common_forcing_fields

mom_forcing_type

This subroutine copies the computational domains of common forcing fields from a

copy_dataset

database_client_interface

Copy a dataset within the database to a new name.

copy_dyngrid_to_mom_grid

mom_transcribe_grid

Copies information from a dynamic (shared) horizontal grid type into an ocean_grid_type. There may also be a change in the reference height for topography between the two grids.

copy_finite_thicknesses

coord_rho

Copy column thicknesses with vanished layers removed.

copy_list

database_client_interface

Copy an aggregation list.

copy_mom_grid_to_dyngrid

mom_transcribe_grid

Copies information from an ocean_grid_type into a dynamic (shared) horizontal grid type. There may also be a change in the reference height for topography between the two grids.

copy_restart_var_3d

mom_restart

Copy the restart variable with the specified name into a 3-d array, perhaps after rotation.

copy_restart_vector_3d

mom_restart

Copy the restart vector component variables with the specified names into a pair of 3-d arrays, perhaps after rotation.

copy_tensor

database_client_interface

Copy a tensor to the destination name.

copy_thickness_reservoirs

mom_open_boundary

Fill segmenth_Reg from restart fields.

coradcalc

mom_coriolisadv

Calculates the Coriolis and momentum advection contributions to the acceleration.

coriolisadv_end

mom_coriolisadv

Destructor for

coriolisadv_init

mom_coriolisadv

Initializes the control structure for MOM_CoriolisAdv.

coriolisadv_stencil

mom_coriolisadv

coriolisstokes

mom_wave_interface

Solver to add Coriolis-Stokes to model Still in development and not meant for general use. Can be activated (with code intervention) for LES comparison CHECK THAT RIGHT TIMESTEP IS PASSED IF YOU USE THIS**.

correct_halo_rotation

mom_internal_tides

Rotates points in the halos where required to accommodate changes in grid orientation, such as at the tripolar fold.

correct_halo_rotation_2d

mom_internal_tides

Rotates points in the halos where required to accommodate changes in grid orientation, such as at the tripolar fold.

cosbell

neverworld_initialization

Returns the value of a cosine-bell function evaluated at x/L [nondim].

count_bl_layers

ideal_age_example

coupler_type_data_override

mom_coupler_types

Potentially override the values in a coupler_2d_bc_type.

coupler_type_send_data

mom_coupler_types

Write out all diagnostics of elements of a coupler_2d_bc_type.

coupler_type_set_diags

mom_coupler_types

Register the diagnostics of a coupler_2d_bc_type.

create_coord_param

mom_regridding

Construct the name of a parameter for a specific coordinate based on param_prefix and param_suffix. For the main, prognostic coordinate this will simply return the parameter name (e.g. P_REF)

create_depth_list

mom_sum_output

create_depth_list makes an ordered list of depths, along with the cross sectional areas at each depth and the volume of fluid deeper than each depth.

create_dyn_horgrid

mom_dyn_horgrid

Allocate memory used by the

create_file

mom_io

create_mom_file

mom_io

create_test_file

mom_unit_testing

Create a text file for unit testing.

create_test_suite

mom_unit_testing

Return a new test suite.

create_unit_test_basic

mom_unit_testing

Return a new unit test without a cleanup function.

create_unit_test_full

mom_unit_testing

Return a new unit test with an explicit cleanup function.

cstprof

basin_builder

Returns a “coastal” profile [nondim].

cstprof

neverworld_initialization

Returns a “coastal” profile [nondim].

ct_copy_data_2d

mom_coupler_types

Copy all elements of the data in a coupler_2d_bc_type into another. Both must have the same array sizes.

ct_copy_data_2d_3d

mom_coupler_types

Copy all elements of the data in a coupler_2d_bc_type into a coupler_3d_bc_type. Both must have the same array sizes for the first two dimensions, while the extent of the 3rd dimension that is being filled may be specified via optional arguments.

ct_copy_data_3d

mom_coupler_types

Copy all elements of the data in a coupler_3d_bc_type into another. Both must have the same array sizes.

ct_destructor_1d

mom_coupler_types

Deallocate all data associated with a coupler_1d_bc_type.

ct_destructor_2d

mom_coupler_types

Deallocate all data associated with a coupler_2d_bc_type.

ct_increment_data_2d

mom_coupler_types

Increment data in all elements of one coupler_2d_bc_type with the data from another. Both must have the same array sizes.

ct_increment_data_2d_3d

mom_coupler_types

Increment data in the elements of a coupler_2d_bc_type with weighted averages of elements of a coupler_3d_bc_type.

ct_increment_data_3d

mom_coupler_types

Increment data in all elements of one coupler_3d_bc_type with the data from another. Both must have the same array sizes.

ct_initialized_1d

mom_coupler_types

Indicate whether a coupler_1d_bc_type has been initialized.

ct_initialized_2d

mom_coupler_types

Indicate whether a coupler_2d_bc_type has been initialized.

ct_initialized_3d

mom_coupler_types

Indicate whether a coupler_3d_bc_type has been initialized.

ct_redistribute_data_2d

mom_coupler_types

Redistribute the data in all elements of one coupler_2d_bc_type into another, which may be on different processors with a different decomposition.

ct_redistribute_data_3d

mom_coupler_types

Redistribute the data in all elements of one coupler_3d_bc_type into another, which may be on different processors with a different decomposition.

ct_rescale_data_2d

mom_coupler_types

Rescales the fields in the elements of a coupler_2d_bc_type by multiplying by a factor scale. If scale is 0, this is a direct assignment to 0, so that NaNs will not persist.

ct_rescale_data_3d

mom_coupler_types

Rescales the fields in the elements of a coupler_3d_bc_type by multiplying by a factor scale. If scale is 0, this is a direct assignment to 0, so that NaNs will not persist.

ct_spawn_1d_2d

mom_coupler_types

Generate a 2-D coupler type using a 1-D coupler type as a template.

ct_spawn_1d_3d

mom_coupler_types

Generate a 3-D coupler type using a 1-D coupler type as a template.

ct_spawn_2d_2d

mom_coupler_types

Generate one 2-D coupler type using another 2-D coupler type as a template.

ct_spawn_2d_3d

mom_coupler_types

Generate a 3-D coupler type using a 2-D coupler type as a template.

ct_spawn_3d_2d

mom_coupler_types

Generate a 2-D coupler type using a 3-D coupler type as a template.

ct_spawn_3d_3d

mom_coupler_types

Generate a 3-D coupler type using another 3-D coupler type as a template.

ct_write_chksums_2d

mom_coupler_types

Write out checksums for the elements of a coupler_2d_bc_type.

ct_write_chksums_3d

mom_coupler_types

Write out checksums for the elements of a coupler_3d_bc_type.

cuberoot

mom_intrinsic_functions

Returns the cube root of a real argument at roundoff accuracy, in a form that works properly with rescaling of the argument by integer powers of 8. If the argument is a NaN, a NaN is returned.

cushn

mom_hybgen_regrid

The cushion function from Bleck & Benjamin, 1992, which returns a smoothly varying but limited value that goes between dp0 and delp.

cut_off_column_top

mom_state_initialization

Adjust the layer thicknesses by removing the top of the water column above the depth where the hydrostatic pressure matches p_surf.

cvmix_bkgnd_is_used

mom_bkgnd_mixing

Reads the parameter “USE_CVMix_BACKGROUND” and returns state. This function allows other modules to know whether this parameterization will be used without needing to duplicate the log entry.

cvmix_conv_init

mom_cvmix_conv

Initialized the CVMix convection mixing routine.

cvmix_conv_is_used

mom_cvmix_conv

Reads the parameter “USE_CVMix_CONVECTION” and returns state. This function allows other modules to know whether this parameterization will be used without needing to duplicate the log entry.

cvmix_ddiff_end

mom_cvmix_ddiff

Clear pointers and deallocate memory.

cvmix_ddiff_init

mom_cvmix_ddiff

Initialized the CVMix double diffusion module.

cvmix_ddiff_is_used

mom_cvmix_ddiff

Reads the parameter “USE_CVMIX_DDIFF” and returns state. This function allows other modules to know whether this parameterization will be used without needing to duplicate the log entry.

cvmix_shear_end

mom_cvmix_shear

Clear pointers and deallocate memory.

cvmix_shear_init

mom_cvmix_shear

Initialized the CVMix internal shear mixing routine.

cvmix_shear_is_used

mom_cvmix_shear

Reads the parameters “USE_LMD94” and “USE_PP81” and returns true if either is true. This function allows other modules to know whether this parameterization will be used without needing to duplicate the log entry.

database_comms_init

mom_database_comms

dealloc_bt_cont_type

mom_variables

Deallocates the arrays contained within a BT_cont_type.

deallocate_forcing_type

mom_forcing_type

Deallocate the forcing type.

deallocate_mech_forcing

mom_forcing_type

Deallocate the mechanical forcing type.

deallocate_obc_segment_data

mom_open_boundary

Deallocate segment data fields.

deallocate_surface_state

mom_variables

Deallocates the elements of a surface state type.

deallocate_vbf_cs

mom_diagnose_kdwork

Deallocate any arrays that were allocated.

define_axes_group

mom_diag_mediator

Define a group of “axes” from a list of handles and associate a mask with it.

define_axes_group

mom_is_diag_mediator

Define a group of “axes” from a list of handles and associate a mask with it.

define_axes_group_dsamp

mom_diag_mediator

Defines a group of downsampled “axes” from list of handles.

define_string

mom_document

This function returns a string for formatted parameter assignment.

delete_attribute_info

mom_io

Delete the information in an array of

delete_axis_info

mom_io

Delete the information in an array of

delete_dataset

database_client_interface

Delete a dataset stored within a database.

delete_list

database_client_interface

Delete an aggregation list.

delete_model

database_client_interface

Remove a model from the database.

delete_model_multigpu

database_client_interface

Remove a model from the database.

delete_script

database_client_interface

Remove a script from the database.

delete_script_multigpu

database_client_interface

Remove a script_multigpu from the database.

delete_tensor

database_client_interface

Delete a tensor.

delete_test_file

mom_unit_testing

Delete a file created during testing.

delta_rho_from_derivs

mom_neutral_diffusion

Calculate delta rho from derivatives and gradients of properties

dense_water_initialize_sponges

dense_water_initialization

Initialize the restoring sponges for the dense water experiment.

dense_water_initialize_topography

dense_water_initialization

Initialize the topography field for the dense water experiment.

dense_water_initialize_ts

dense_water_initialization

Initialize the temperature and salinity for the dense water experiment.

density_anomaly_elem_buggy_wright

mom_eos_wright

In situ density anomaly of sea water using a buggy implementation of Wright, 1997 [kg m-3].

density_anomaly_elem_jackett06

mom_eos_jackett06

In situ density anomaly of sea water using Jackett et al., 2006 [kg m-3].

density_anomaly_elem_linear

mom_eos_linear

Density anomaly computed as a linear function of T and S [kg m-3].

density_anomaly_elem_roquet_rho

mom_eos_roquet_rho

In situ density anomaly of sea water from Roquet et al., 2015 [kg m-3].

density_anomaly_elem_roquet_spv

mom_eos_roquet_spv

Roquet in situ density anomaly [kg m-3].

density_anomaly_elem_teos10

mom_eos_teos10

GSW in situ density anomaly [kg m-3].

density_anomaly_elem_unesco

mom_eos_unesco

In situ density anomaly as fit by Jackett and McDougall, 1995 [kg m-3].

density_anomaly_elem_wright_full

mom_eos_wright_full

In situ density anomaly of sea water using a full range fit by Wright, 1997 [kg m-3].

density_anomaly_elem_wright_red

mom_eos_wright_red

In situ density anomaly of sea water using a reduced range fit by Wright, 1997 [kg m-3].

density_elem_buggy_wright

mom_eos_wright

In situ density of sea water using a buggy implementation of Wright, 1997 [kg m-3].

density_elem_jackett06

mom_eos_jackett06

In situ density of sea water using Jackett et al., 2006 [kg m-3].

density_elem_linear

mom_eos_linear

Density computed as a linear function of T and S [kg m-3].

density_elem_roquet_rho

mom_eos_roquet_rho

In situ density of sea water from Roquet et al., 2015 [kg m-3].

density_elem_roquet_spv

mom_eos_roquet_spv

Roquet in situ density [kg m-3].

density_elem_teos10

mom_eos_teos10

GSW in situ density [kg m-3].

density_elem_unesco

mom_eos_unesco

In situ density as fit by Jackett and McDougall, 1995 [kg m-3].

density_elem_wright_full

mom_eos_wright_full

In situ density of sea water using a full range fit by Wright, 1997 [kg m-3].

density_elem_wright_red

mom_eos_wright_red

In situ density of sea water using a reduced range fit by Wright, 1997 [kg m-3].

depress_surface

mom_state_initialization

Depress the sea-surface based on an initial condition file.

depth_list_setup

mom_sum_output

This subroutine sets up an ordered list of depths, along with the cross sectional areas at each depth and the volume of fluid deeper than each depth. This might be read from a previously created file or it might be created anew. (For now only new creation occurs.

descale

mom_intrinsic_functions

Undo the rescaling of a real number back to its original base.

describe_option

mom_diag_mediator

Describe an option setting in the diagnostic files.

describe_option

mom_is_diag_mediator

Add a description of an option to the documentation file.

destroy

recon1d_ppm_cwk

Deallocate the PPM_CWK reconstruction.

destroy

recon1d_plm_cw

Deallocate the PLM reconstruction.

destroy

recon1d_pcm

Deallocate the PCM reconstruction.

destroy

recon1d_ppm_h4_2019

Deallocate the PPM_H4_2019 reconstruction.

destroy

recon1d_plm_wls

Deallocate the PLM reconstruction.

destroy

recon1d_plm_hybgen

Deallocate the PLM reconstruction.

destroy

recon1d_ppm_cw

Deallocate the PPM_CW reconstruction.

destroy_bt_obc

mom_barotropic

Clean up the BT_OBC memory.

destroy_dyn_horgrid

mom_dyn_horgrid

Release memory used by the

destructor

database_client_interface

A destructor for the communication client.

detect_mld

mom_mixed_layer_restrat

Detects the mixed layer depth using a density difference criterion (MLE_DENSITY_DIFF)

determine_dskb

mom_entrain_diffusive

This subroutine determines the reference density difference between the bottommost buffer layer and the first interior after the mixing between mixed and buffer layers and mixing with the layer below. Within the mixed and buffer layers, entrainment from the layer above is increased when it is necessary to keep the layers from developing a negative thickness; otherwise it equals Ent_bl. At each interface, the upward and downward fluxes average out to Ent_bl, unless entrainment by the layer below is larger than twice Ent_bl. The density difference across the first interior layer may also be returned. It could also be limited to avoid negative values or values that greatly exceed the density differences across an interface. Additionally, the partial derivatives of dSkb and dSlay with E_kb could also be returned.

determine_ea_kb

mom_entrain_diffusive

This subroutine determines the entrainment from above by the top interior layer (labeled kb elsewhere) given an entrainment by the layer below it, constrained to be within the provided bounds.

determine_is_new_run

mom_restart

determine_is_new_run determines from the value of filename and the existence automatically named restart files in directory whether this would be a new, and as a side effect stores this information in CS.

determine_land_blocks

mom_domains

Given a number of domain divisions, compute the max number of land blocks that can be eliminated, and return the resulting mask table if requested.

determine_temperature

mom_tracer_z_init

This subroutine determines the potential temperature and salinity that is consistent with the target density using provided initial guess.

dfdx

recon1d_ppm_cwk

Derivative of PPM_CWK reconstruction at a point in cell k [A].

dfdx

recon1d_plm_cw

Derivative of PLM_CW reconstruction at a point in cell k [A].

dfdx

recon1d_pcm

Derivative of PCM reconstruction at a point in cell k [A].

dfdx

recon1d_ppm_h4_2019

Derivative of PPM_H4_2019 reconstruction at a point in cell k [A].

dfdx

recon1d_plm_wls

Derivative of PLM_WLS reconstruction at a point in cell k [A].

dfdx

recon1d_plm_hybgen

Derivative of PLM_hybgen reconstruction at a point in cell k [A].

dfdx

recon1d_ppm_cw

Derivative of PPM_CW reconstruction at a point in cell k [A].

dhh85_mid

mom_wave_interface

Compute the Stokes drift at a given depth.

diabatic

mom_diabatic_driver

This subroutine imposes the diapycnal mass fluxes and the accompanying diapycnal advection of momentum and tracers.

diabatic_ale

mom_diabatic_driver

This subroutine imposes the diapycnal mass fluxes and the accompanying diapycnal advection of momentum and tracers.

diabatic_ale_legacy

mom_diabatic_driver

Applies diabatic forcing and diapycnal mixing of temperature, salinity and other tracers for use with an ALE algorithm. This version uses an older set of algorithms compared with diabatic_ALE.

diabatic_aux_end

mom_diabatic_aux

This subroutine initializes the control structure and any related memory for the diabatic_aux module.

diabatic_aux_init

mom_diabatic_aux

This subroutine initializes the parameters and control structure of the diabatic_aux module.

diabatic_driver_end

mom_diabatic_driver

Routine to close the diabatic driver module.

diabatic_driver_init

mom_diabatic_driver

This routine initializes the diabatic driver module.

diag_associate_volume_cell_measure

mom_diag_mediator

Attaches the id of cell volumes to axes groups for use with cell_measures.

diag_buffer_unit_tests_2d

mom_diag_buffers

Unit tests for the 2d version of the diag buffer.

diag_buffer_unit_tests_3d

mom_diag_buffers

Test the 3d version of the buffer.

diag_copy_diag_to_storage

mom_diag_mediator

Copy from the main diagnostic arrays to the grid storage as well as the native thicknesses.

diag_copy_storage_to_diag

mom_diag_mediator

Copy from the stored diagnostic arrays to the main diagnostic grids.

diag_found

mom_obsolete_diagnostics

Determines whether an obsolete parameter appears in the diag_table.

diag_get_volume_cell_measure_dm_id

mom_diag_mediator

Returns diag_manager id for cell measure of h-cells.

diag_grid_storage_end

mom_diag_mediator

Deallocates the fields in the remapping fields container.

diag_grid_storage_init

mom_diag_mediator

Allocates fields necessary to store diagnostic remapping fields.

diag_masks_set

mom_diag_mediator

Sets up the 2d and 3d masks for native diagnostics.

diag_masks_set

mom_is_diag_mediator

Sets up the 2d masks for native diagnostics.

diag_mediator_close_registration

mom_diag_mediator

diag_mediator_end

mom_diag_mediator

diag_mediator_infrastructure_init

mom_diag_mediator

diag_mediator_init

mom_diag_mediator

diag_mediator_init initializes the MOM diag_mediator and opens the available diagnostics file, if appropriate.

diag_register_area_ids

mom_diag_mediator

Attaches the id of cell areas to axes groups for use with cell_measures.

diag_register_area_ids

mom_is_diag_mediator

Attaches the id of cell areas to axes groups for use with cell_measures.

diag_remap_axes_configured

mom_diag_remap

Whether or not the axes for this vertical coordinated has been configured. Configuration is complete when

diag_remap_calc_hmask

mom_diag_remap

Calculate masks for target grid.

diag_remap_configure_axes

mom_diag_remap

Configure the vertical axes for a diagnostic remapping control structure. Reads a configuration parameters to determine coordinate generation.

diag_remap_diag_registration_closed

mom_diag_remap

Inform that all diagnostics have been registered. If _set_active() has not been called on the remapping control structure will be disabled. This saves time in the case that a vertical coordinate was configured but no diagnostics which use the coordinate appeared in the diag_table.

diag_remap_do_remap

mom_diag_remap

Remap diagnostic field to alternative vertical grid.

diag_remap_end

mom_diag_remap

De-init a diagnostic remapping type. Free allocated memory.

diag_remap_get_axes_info

mom_diag_remap

Get layer and interface axes ids for this coordinate Needed when defining axes groups.

diag_remap_init

mom_diag_remap

Initialize a diagnostic remapping type with the given vertical coordinate.

diag_remap_set_active

mom_diag_remap

Indicate that this remapping type is actually used by the diag manager. If this is never called then the type will be disabled to save time. See further explanation with diag_remap_registration_closed.

diag_remap_update

mom_diag_remap

Build/update target vertical grids for diagnostic remapping.

diag_restore_grids

mom_diag_mediator

Restore the diagnostic grids from the temporary structure within diag.

diag_save_grids

mom_diag_mediator

Save the current diagnostic grids in the temporary structure within diag.

diag_set_state_ptrs

mom_diag_mediator

Set pointers to the default state fields used to remap diagnostics.

diag_update_remap_grids

mom_diag_mediator

Build/update vertical grids for diagnostic remapping.

diagnose_boundary_forcing_tendency

mom_diabatic_driver

This routine diagnoses tendencies from application of boundary fluxes. These impacts are generally 3d, in particular for penetrative shortwave. Other fluxes contribute 3d in cases when the layers vanish or are very thin, in which case we distribute the flux into k > 1 layers.

diagnose_diabatic_diff_tendency

mom_diabatic_driver

This routine diagnoses tendencies from application of diabatic diffusion using ALE algorithm. Note that layer thickness is not altered by diabatic diffusion.

diagnose_frazil_tendency

mom_diabatic_driver

This routine diagnoses tendencies for temperature and heat from frazil formation. This routine is called twice from within subroutine diabatic; at start and at end of the diabatic processes. The impacts from frazil are generally a function of depth. Hence, when checking heat budget, be sure to remove HFSIFRAZIL from HFDS in k=1.

diagnose_mass_weight_p

mom_density_integrals

Diagnose the fractional mass weighting in a layer that might be used with a non-Boussinesq calculation.

diagnose_mass_weight_z

mom_density_integrals

Diagnose the fractional mass weighting in a layer that might be used with a Boussinesq calculation.

diagnosekdwork

mom_diagnose_kdwork

Diagnose the implied “work”, or buoyancy forcing & its integral, due to a given diffusivity and column state.

diagnosemaximumdepth

mom_shared_initialization

Return the global maximum ocean bottom depth in the same units as the input depth.

diagnosemldbydensitydifference

mom_diagnose_mld

Diagnose a mixed layer depth (MLD) determined by a given density difference with the surface. This routine is appropriate in MOM_diabatic_aux due to its position within the time stepping.

diagnosemldbyenergy

mom_diagnose_mld

Diagnose a mixed layer depth (MLD) determined by the depth a given energy value would mix. This routine is appropriate in MOM_diabatic_aux due to its position within the time stepping.

diapyc_energy_req_calc

mom_diapyc_energy_req

This subroutine uses a substantially refactored tridiagonal equation for diapycnal mixing of temperature and salinity to estimate the potential energy change due to diapycnal mixing in a column of water. It does this estimate 4 different ways, all of which should be equivalent, but reports only one. The various estimates are taken because they will later be used as templates for other bits of code.

diapyc_energy_req_end

mom_diapyc_energy_req

Clean up and deallocate memory associated with the diapycnal energy requirement module.

diapyc_energy_req_init

mom_diapyc_energy_req

Initialize parameters and allocate memory associated with the diapycnal energy requirement module.

diapyc_energy_req_test

mom_diapyc_energy_req

This subroutine helps test the accuracy of the diapycnal mixing energy requirement code by writing diagnostics, possibly using an intensely mixing test profile of diffusivity.

differential_diffuse_t_s

mom_diabatic_aux

This subroutine applies double diffusion to T & S, assuming no diapycnal mass fluxes, using a simple tridiagonal solver.

disable_averaging

mom_diag_mediator

Call this subroutine to avoid averaging any offered fields.

disable_averaging

mom_is_diag_mediator

Call this subroutine to avoid averaging any offered fields.

disable_fatal_errors

mom_error_handler

Enable error handling, replacing FATALs in MOM_error with err_handler.

dist_line_fixed_x

basin_builder

Distance between points x,y and a line segment (x0,y0) and (x0,y1) in arbitrary units [A].

dist_line_fixed_x

neverworld_initialization

Distance between points x,y and a line segment (x0,y0) and (x0,y1) in arbitrary units [A].

dist_line_fixed_y

basin_builder

Distance between points x,y and a line segment (x0,y0) and (x1,y0) in arbitrary units [A].

dist_line_fixed_y

neverworld_initialization

Distance between points x,y and a line segment (x0,y0) and (x1,y0) in arbitrary units [A].

distribute_residual_uh_barotropic

mom_offline_aux

In the case where offline advection has failed to converge, redistribute the u-flux into remainder of the water column as a barotropic equivalent.

distribute_residual_uh_upwards

mom_offline_aux

In the case where offline advection has failed to converge, redistribute the u-flux into layers above.

distribute_residual_vh_barotropic

mom_offline_aux

Redistribute the v-flux as a barotropic equivalent.

distribute_residual_vh_upwards

mom_offline_aux

In the case where offline advection has failed to converge, redistribute the u-flux into layers above.

dl

mom_grid_initialize

This function returns the contribution from the line integral along one of the four sides of a cell face to the area of a cell, in [radians2], assuming that the sides follow a linear path in latitude and longitude (i.e., on a Mercator grid).

do_remap

mom_diag_remap

The internal routine to remap a diagnostic field to an alternative vertical grid.

doc_closeblock

mom_document

This subroutine handles documentation for closing a parameter block.

doc_end

mom_document

This subroutine closes the files controlled by doc, and sets flags in doc to indicate that parameterization is no longer permitted.

doc_function

mom_document

This subroutine handles the function documentation.

doc_init

mom_document

Initialize the parameter documentation.

doc_module

mom_document

This subroutine handles the module documentation.

doc_openblock

mom_document

This subroutine handles documentation for opening a parameter block.

doc_param_char

mom_document

This subroutine handles parameter documentation for character strings.

doc_param_int

mom_document

This subroutine handles parameter documentation for integers.

doc_param_int_array

mom_document

This subroutine handles parameter documentation for arrays of integers.

doc_param_logical

mom_document

This subroutine handles parameter documentation for logicals.

doc_param_logical_array

mom_document

This subroutine handles parameter documentation for arrays of logicals.

doc_param_none

mom_document

This subroutine handles parameter documentation with no value.

doc_param_real

mom_document

This subroutine handles parameter documentation for reals.

doc_param_real_array

mom_document

This subroutine handles parameter documentation for arrays of reals.

doc_param_time

mom_document

This subroutine handles parameter documentation for time-type variables.

doc_subroutine

mom_document

This subroutine handles the subroutine documentation.

dome2d_initialize_sponges

dome2d_initialization

Set up sponges in 2d DOME configuration.

dome2d_initialize_temperature_salinity

dome2d_initialization

Initialize temperature and salinity in the 2d DOME configuration.

dome2d_initialize_thickness

dome2d_initialization

Initialize thicknesses according to coordinate mode.

dome2d_initialize_topography

dome2d_initialization

Initialize topography with a shelf and slope in a 2D domain.

dome_initialize_sponges

dome_initialization

This subroutine sets the inverse restoration time (Idamp), and the values toward which the interface heights and an arbitrary number of tracers will be restored within the sponges for the DOME configuration. !

dome_initialize_thickness

dome_initialization

This subroutine initializes layer thicknesses for the DOME experiment.

dome_initialize_topography

dome_initialization

This subroutine sets up the DOME topography.

dome_set_obc_data

dome_initialization

This subroutine sets the properties of flow at open boundary conditions. This particular example is for the DOME inflow describe in Legg et al. 2006.

dome_tracer_column_physics

dome_tracer

This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers.

dome_tracer_end

dome_tracer

Clean up memory allocations, if any.

dome_tracer_surface_state

dome_tracer

This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler.

double_diffusion

mom_set_diffusivity

This subroutine sets the additional diffusivities of temperature and salinity due to double diffusion, using the same functional form as is used in MOM4.1, and taken from the appendix of Danabasoglu et al. (2006), which updates what was in Large et al. (1994). All the coefficients here should probably be made run-time variables rather than hard-coded constants.

downsample_diag_field_2d

mom_diag_mediator

This subroutine allocates and computes a downsampled array from an input array. It also determines the diagnostic computational grid indices for the downsampled array. 2d interface.

downsample_diag_field_3d

mom_diag_mediator

This subroutine allocates and computes a downsampled array from an input array. It also determines the diagnostic computational grid indices for the downsampled array. 3d interface.

downsample_diag_indices_get

mom_diag_mediator

Get the diagnostics-compute indices (to be passed to send_data) based on the shape of the diagnostic field (the same way they are deduced for non-downsampled fields)

downsample_diag_masks_set

mom_diag_mediator

downsample_field_2d

mom_diag_mediator

This subroutine allocates and computes a down sampled 2d array given an input array The down sample method is based on the “cell_methods” for the diagnostics as explained in the above table.

downsample_field_3d

mom_diag_mediator

This subroutine allocates and computes a down sampled 3d array given an input array The down sample method is based on the “cell_methods” for the diagnostics as explained in the above table.

downsample_mask_2d

mom_diag_mediator

Allocate and compute the 2d down sampled mask The masks are down sampled based on a minority rule, i.e., a coarse cell is open (1) if at least one of the sub-cells are open, otherwise it’s closed (0)

downsample_mask_3d

mom_diag_mediator

Allocate and compute the 3d down sampled mask The masks are down sampled based on a minority rule, i.e., a coarse cell is open (1) if at least one of the sub-cells are open, otherwise it’s closed (0)

ds_di

mom_grid_initialize

This function returns the grid spacing in the logical x direction in [L ~> m].

ds_dj

mom_grid_initialize

This function returns the grid spacing in the logical y direction in [L ~> m].

dtc_dtp

mom_temperature_convert

Return the partial derivative of conservative temperature with potential temperature [nondim] based on the polynomial expressions from TEOS-10.

dtdy

rossby_front_2d_initialization

Analytic prescription of mixed layer temperature gradient in [C L-1 ~> degC m-1] in 2d Rossby front test.

dumbbell_buoyancy_forcing

dumbbell_surface_forcing

Surface buoyancy (heat and fresh water) fluxes for the dumbbell test case.

dumbbell_dynamic_forcing

dumbbell_surface_forcing

Dynamic forcing for the dumbbell test case.

dumbbell_initialize_sponges

dumbbell_initialization

Initialize the restoring sponges for the dumbbell test case.

dumbbell_initialize_temperature_salinity

dumbbell_initialization

Initial values for temperature and salinity for the dumbbell test case.

dumbbell_initialize_thickness

dumbbell_initialization

Initializes the layer thicknesses to be uniform in the dumbbell test case.

dumbbell_initialize_topography

dumbbell_initialization

Initialization of topography.

dumbbell_surface_forcing_init

dumbbell_surface_forcing

Reads and sets up the forcing for the dumbbell test case.

dx_di

mom_grid_initialize

This function calculates and returns the value of dx/di in [radian gridpoint-1], where x is the longitude in Radians, and i is the integral east-west grid index.

dy_dj

mom_grid_initialize

This subroutine calculates and returns the value of dy/dj in [radian gridpoint-1], where y is the latitude in Radians, and j is the integral north-south grid index.

dye_stock

regional_dyes

This function calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.

dye_tracer_column_physics

regional_dyes

This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers. The arguments to this subroutine are redundant in that h_new(k) = h_old(k) + ea(k) - eb(k-1) + eb(k) - ea(k+1)

dye_tracer_surface_state

regional_dyes

This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler.

dyed_channel_obc_end

dyed_channel_initialization

Clean up the dyed_channel OBC from registry.

dyed_channel_set_obc_tracer_data

dyed_channel_initialization

This subroutine sets the dye and flow properties at open boundary conditions.

dyed_channel_update_flow

dyed_channel_initialization

This subroutine updates the long-channel flow.

dyed_obc_tracer_column_physics

dyed_obc_tracer

This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers.

dyed_obc_tracer_end

dyed_obc_tracer

Clean up memory allocations, if any.

dyed_obcs_set_obc_data

dyed_obcs_initialization

This subroutine sets the dye properties at open boundary conditions.

dz_function1

mom_regridding

Parses a string and generates a dz(:) profile that goes like k**power.

dz_to_thickness_eos

mom_interface_heights

Converts thickness from geometric height units to thickness units, working via an inversion of the integral of the density in pressure when in non-Boussinesq mode.

dz_to_thickness_simple

mom_interface_heights

Converts thickness from geometric height units to thickness units, perhaps using a simple conversion factor that may be problematic in non-Boussinesq mode.

dz_to_thickness_tv

mom_interface_heights

Converts thickness from geometric height units to thickness units, perhaps via an inversion of the integral of the density in pressure using variables stored in the thermo_var_ptrs type when in non-Boussinesq mode.

dzfromh1h2

mom_remapping

Calculates the change in interface positions based on h1 and h2.

edge_slopes_implicit_h3

regrid_edge_values

Compute ih3 edge slopes (implicit third order accurate) in the same units as h.

edge_slopes_implicit_h5

regrid_edge_values

Compute ih5 edge slopes (implicit fifth order accurate)

edge_values_explicit_h2

regrid_edge_values

Compute h2 edge values (explicit second order accurate) in the same units as u.

edge_values_explicit_h4

regrid_edge_values

Compute h4 edge values (explicit fourth order accurate) in the same units as u.

edge_values_explicit_h4cw

regrid_edge_values

Compute h4 edge values (explicit fourth order accurate) in the same units as u.

edge_values_implicit_h4

regrid_edge_values

Compute ih4 edge values (implicit fourth order accurate) in the same units as u.

edge_values_implicit_h6

regrid_edge_values

Compute ih6 edge values (implicit sixth order accurate) in the same units as u.

ef4

mom_bulk_mixed_layer

This subroutine returns an approximation to the integral R = exp(-L*(H+E)) integral(LH to L(H+E)) L/(1-(1+x)exp(-x)) dx. The approximation to the integrand is good to within -2% at x~.3 and +25% at x~3.5, but the exponential deemphasizes the importance of large x. When L=0, EF4 returns E/((Ht+E)*Ht).

efp_assign

mom_coms

Copy one extended-fixed-point number into another.

efp_list_sum_across_pes

mom_coms

This subroutine does a sum across PEs of a list of EFP variables, returning the sums in place, with all overflows carried.

efp_minus

mom_coms

Subract one extended-fixed-point number from another.

efp_plus

mom_coms

Add two extended-fixed-point numbers.

efp_real_diff

mom_coms

Take the difference between two extended-fixed-point numbers (EFP1 - EFP2) and return the result as a real number.

efp_to_real

mom_coms

Return the real number that an extended-fixed-point number corresponds with.

efp_val_sum_across_pes

mom_coms

This subroutine does a sum across PEs of an EFP variable, returning the sums in place, with all overflows carried.

enable_averages

mom_diag_mediator

Enable the accumulation of time averages over the specified time interval in time units.

enable_averages

mom_is_diag_mediator

Enable the accumulation of time averages over the specified time interval in time units.

enable_averaging

mom_diag_mediator

This subroutine enables the accumulation of time averages over the specified time interval.

enable_averaging

mom_is_diag_mediator

Enable the accumulation of time averages over the specified time interval.

enable_fatal_errors

mom_error_handler

Disable the error handler and abort on FATAL.

enable_netcdf_write

mom_netcdf

Change netCDF mode of handle from ‘define’ to ‘write’.

encode_dim_powers

mom_unique_scales

Convert a unit scaling descriptor into an array of the dimensions of powers given in the key.

end_coord_adapt

coord_adapt

Clean up the coordinate control structure.

end_coord_hycom

coord_hycom

This subroutine deallocates memory in the control structure for the

end_coord_rho

coord_rho

This subroutine deallocates memory in the control structure for the

end_coord_sigma

coord_sigma

This subroutine deallocates memory in the control structure for the

end_coord_zlike

coord_zlike

Deallocates the zlike control structure.

end_dyn_split_rk2

mom_dynamics_split_rk2

Close the dyn_split_RK2 module.

end_dyn_split_rk2b

mom_dynamics_split_rk2b

Close the dyn_split_RK2b module.

end_dyn_unsplit

mom_dynamics_unsplit

Clean up and deallocate memory associated with the unsplit dynamics module.

end_dyn_unsplit_rk2

mom_dynamics_unsplit_rk2

Clean up and deallocate memory associated with the dyn_unsplit_RK2 module.

end_hybgen_regrid

mom_hybgen_regrid

This subroutine deallocates memory in the control structure for the hybgen module.

end_hybgen_unmix

mom_hybgen_unmix

This subroutine deallocates memory in the control structure for the hybgen unmixing module.

end_mom_generic_tracer

mom_generic_tracer

This subroutine deallocates the memory owned by this module.

end_regridding

mom_regridding

Deallocation of regridding memory.

end_remapping

mom_remapping

Destrcutor for remapping control structure.

end_value_h4

recon1d_ppm_h4_2019

Determine a one-sided 4th order polynomial fit of u to the data points for the purposes of specifying edge values, as described in the appendix of White and Adcroft JCP 2008.

end_value_h4

regrid_edge_values

Determine a one-sided 4th order polynomial fit of u to the data points for the purposes of specifying edge values, as described in the appendix of White and Adcroft JCP 2008.

energetic_pbl

mom_energetic_pbl

This subroutine determines the diffusivities from the integrated energetics mixed layer model. It assumes that heating, cooling and freshwater fluxes have already been applied. All calculations are done implicitly, and there is no stability limit on the time step.

energetic_pbl_end

mom_energetic_pbl

Clean up and deallocate memory associated with the energetic_PBL module.

energetic_pbl_get_mld

mom_energetic_pbl

Copies the ePBL active mixed layer depth into MLD, in units of [Z ~> m] unless other units are specified.

energetic_pbl_init

mom_energetic_pbl

This subroutine initializes the energetic_PBL module.

ensembler

mom_io

Returns a name with “%#E” or “%E” replaced with the ensemble member number.

entrain_diffusive_init

mom_entrain_diffusive

This subroutine initializes the parameters and memory associated with the entrain_diffusive module.

entrainment_diffusive

mom_entrain_diffusive

This subroutine calculates ea and eb, the rates at which a layer entrains from the layers above and below. The entrainment rates are proportional to the buoyancy flux in a layer and inversely proportional to the density differences between layers. The scheme that is used here is described in detail in Hallberg, Mon. Wea. Rev. 2000.

eos_domain

mom_eos

This subroutine returns a two point integer array indicating the domain of i-indices to work on in EOS calls based on information from a hor_index type.

eos_fit_range

mom_eos

Return the range of temperatures, salinities and pressures for which the equation of state that is being used has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range.

eos_fit_range_buggy_wright

mom_eos_wright

Return the range of temperatures, salinities and pressures for which the reduced-range equation of state from Wright (1997) has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range.

eos_fit_range_jackett06

mom_eos_jackett06

Return the range of temperatures, salinities and pressures for which the Jackett et al. (2006) equation of state has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range.

eos_fit_range_linear

mom_eos_linear

Return the range of temperatures, salinities and pressures permitted for linear equation of state. Care should be taken when applying this equation of state outside of its fit range.

eos_fit_range_roquet_rho

mom_eos_roquet_rho

Return the range of temperatures, salinities and pressures for which the Roquet et al. (2015) expression for in situ density has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range.

eos_fit_range_roquet_spv

mom_eos_roquet_spv

Return the range of temperatures, salinities and pressures for which the Roquet et al. (2015) expression for specific volume has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range.

eos_fit_range_teos10

mom_eos_teos10

Return the range of temperatures, salinities and pressures for which the TEOS-10 equation of state has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range.

eos_fit_range_unesco

mom_eos_unesco

Return the range of temperatures, salinities and pressures for which Jackett and McDougall (1995) refit the UNESCO equation of state has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range.

eos_fit_range_wright_full

mom_eos_wright_full

Return the range of temperatures, salinities and pressures for which full-range equation of state from Wright (1997) has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range.

eos_fit_range_wright_red

mom_eos_wright_red

Return the range of temperatures, salinities and pressures for which the reduced-range equation of state from Wright (1997) has been fitted to observations. Care should be taken when applying this equation of state outside of its fit range.

eos_init

mom_eos

Initializes EOS_type by allocating and reading parameters. The scaling factors in US are stored in EOS for later use.

eos_manual_init

mom_eos

Manually initialized an EOS type (intended for unit testing of routines which need a specific EOS)

eos_quadrature

mom_eos

Return value of EOS_quadrature.

eos_unit_tests

mom_eos

Runs unit tests for consistency on the equations of state. This should only be called from a single/root thread. It returns True if any test fails, otherwise it returns False.

epbl_bbl_column

mom_energetic_pbl

This subroutine determines the diffusivities from a bottom boundary layer version of the integrated energetics mixed layer model for a single column of water.

epbl_column

mom_energetic_pbl

This subroutine determines the diffusivities from the integrated energetics mixed layer model for a single column of water.

eq_phase

mom_tidal_forcing

Calculates the equilibrium phase argument for the given tidal constituent constit and the astronomical longitudes and the reference time. These formulas follow Table I.4 of Kowalik and Luick, “Modern Theory and Practice of Tide Analysis and Tidal Power”, 2019.

erase

marbl_logging

dummy erase routine

err_handler

mom_error_handler

Restore the process state via longjmp after receiving a signal.

evaluation_polynomial

polynomial_functions

Pointwise evaluation of a polynomial in arbitrary units [A] at x.

ew_coast

basin_builder

A “coast profile” applied in an E-W line from lon0,latC to lon1,latC [nondim].

ew_coast

neverworld_initialization

A “coast profile” applied in an E-W line from lon0,lat0 to lon1,lat0 [nondim].

exp_decay_tke_adjust

mom_energetic_pbl

Determine a scaling factor that accounts for the exponential decay of turbulent kinetic energy from a boundary source and the assumption that an increase in the diffusivity at an interface causes a linearly increasing buoyancy flux going from 0 at the bottom to a peak at the interface, and then going back to 0 atop the layer above. Where this factor increases the available mixing TKE, it is only compensating for the fact that the TKE has already been reduced by the same exponential decay rate. ha and hb must be non-negative, and this function generally increases with hb and decreases with ha.

external_gwave_initialize_thickness

external_gwave_initialization

This subroutine initializes layer thicknesses for the external_gwave experiment.

extract_coupler_type_data

mom_coupler_types

Extract a 2d field from a coupler_2d_bc_type into a two-dimensional array, using a MOM-specific interface.

extract_diabatic_member

mom_diabatic_driver

Returns pointers or values of members within the diabatic_CS type. For extensibility, each returned argument is an optional argument.

extract_integer

mom_string_functions

Returns the integer corresponding to the nth word in the argument.

extract_iob_stresses

mom_surface_forcing_gfdl

This subroutine extracts the wind stresses and related fields like ustar from an Ice_ocean_boundary_type into optional argument arrays, including changes of units, sign conventions, and putting the fields into arrays with MOM-standard sized halos.

extract_member_remapping_cs

mom_remapping

extract_offline_main

mom_offline_main

Extracts members of the offline main control structure. All arguments are optional except the control structure itself.

extract_optics_fields

mom_opacity

Set arguments to fields from the optics type.

extract_optics_slice

mom_opacity

This subroutine returns a 2-d slice at constant j of fields from an

extract_real

mom_string_functions

Returns the real corresponding to the nth word in the argument, in arbitrary units [A].

extract_surface_state

mom

Set the surface (return) properties of the ocean model by setting the appropriate fields in sfc_state. Unused fields are set to NULL or are unallocated.

extract_word

mom_string_functions

Returns the string corresponding to the nth word in the argument or “” if the string is not long enough. Words are delineated by the mandatory separators argument.

extractfluxes1d

mom_forcing_type

This subroutine extracts fluxes from the surface fluxes type. It works on a j-row for optimization purposes. The 2d (i,j) wrapper is the next subroutine below. This routine multiplies fluxes by dt, so that the result is an accumulation of fluxes over a time step.

extractfluxes2d

mom_forcing_type

2d wrapper for 1d extract fluxes from surface fluxes type. This subroutine extracts fluxes from the surface fluxes type. It multiplies the fluxes by dt, so that the result is an accumulation of the fluxes over a time step.

extractword

mom_string_functions

Returns the string corresponding to the nth word in the argument or “” if the string is not long enough. Both spaces and commas are interpreted as separators.

extrapolate_metric

mom_grid_initialize

Extrapolates missing metric data into all the halo regions.

f

recon1d_ppm_cwk

Value of PPM_CWK reconstruction at a point in cell k [A].

f

recon1d_plm_cw

Value of PLM_CW reconstruction at a point in cell k [A].

f

recon1d_pcm

Value of PCM reconstruction at a point in cell k [A].

f

recon1d_ppm_h4_2019

Value of PPM_H4_2019 reconstruction at a point in cell k [A].

f

recon1d_plm_wls

Value of PLM_WLS reconstruction at a point in cell k [A].

f

recon1d_plm_hybgen

Value of PLM_hybgen reconstruction at a point in cell k [A].

f

recon1d_ppm_cw

Value of PPM_CW reconstruction at a point in cell k [A].

f_kb_to_ea_kb

mom_entrain_diffusive

Given an entrainment from below for layer kb, determine a consistent entrainment from above, such that dSkb * ea_kb = dSkbp1 * F_kb. The input value of ea_kb is both the maximum value that can be obtained and the first guess of the iterations. Ideally ea_kb should be an under-estimate.

f_to_ent

mom_entrain_diffusive

This subroutine calculates the actual entrainments (ea and eb) and the amount of surface forcing that is applied to each layer if there is no bulk mixed layer.

fac_fn

mom_coriolisadv

Compute the factor for the WENO weights.

field_checksum_real_0d

mom_checksums

Compute the field checksum of a scalar that may need to be unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module.

field_checksum_real_1d

mom_checksums

Compute the field checksum of an entire 1d array that may need to be unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module.

field_checksum_real_2d

mom_checksums

Compute the field checksum of an entire 2d array that may need to be rotated or unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module.

field_checksum_real_3d

mom_checksums

Compute the field checksum of an entire 3d array that may need to be rotated or unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module.

field_checksum_real_4d

mom_checksums

Compute the field checksum of an entire 4d array that may need to be rotated or unscaled. This uses the field_chksum function that is used to verify file contents, which may differ from the bitcount function used for other checksums in this module.

field_is_on_face

mom_open_boundary

Determine whether a particular field is descretized at the normal-velocity faces of an open boundary condition segment.

field_is_tidal

mom_open_boundary

Determine based on its name whether a particular field a barotropic tidal field, for which the third dimension is the tidal constituent rather than a vertical axis.

field_size

mom_io

Given filename and fieldname, this subroutine returns the size of the field in the file.

file_is_open_infra

mom_io_file

True if the framework file has been opened.

file_is_open_nc

mom_io_file

True if the framework file has been opened.

file_obc_end

mom_open_boundary

Clean up the file OBC from registry.

fill_miss_2d

mom_horizontal_regridding

Use ICE-9 algorithm to populate points (fill=1) with valid data (good=1). If no information is available, use a previous guess (prev). Optionally (smooth) blend the filled points to achieve a more desirable result.

fill_obgc_segments

mom_open_boundary

Stores the interior tracer values on the segment, and in some cases also sets the tracer reservoir values.

fill_temp_salt_segments

mom_open_boundary

Set the value of temperatures and salinities on OBC segments.

fill_thickness_segments

mom_open_boundary

Set the value of temperatures and salinities on OBC segments.

filt_accum

mom_streaming_filter

This subroutine timesteps the filter equations. Here, u is the broadband input signal from the model, and u1 is the filtered, narrowband output signal, obtained from the solution of the filter equations.

filt_init

mom_streaming_filter

This subroutine initializes the filters.

filt_register

mom_streaming_filter

This subroutine registers the filter variables given the number of filters and the grid.

filter_3d

mom_zanna_bolton

Spatial lateral filter applied to 3D array. The lateral filter is given by the convolutional kernel: [1 2 1] C = |2 4 2| * 1/16 [1 2 1] The fast algorithm decomposes the 2D filter into two 1D filters as follows: [1] C = |2| * [1 2 1] * 1/16 [1] The input array must have zero B.C. applied. B.C. is applied for output array. Note that maskw contains both land mask and 1/16 factor. Filter implements marching halo. The available halo is specified and as many filter iterations as possible and as needed are performed.

filter_hq

mom_zanna_bolton

Wrapper for filter_3D function. The border indices for q and h arrays are substituted.

filter_interface

mom_interface_filter

Calculates parameterized layer transports for use in the continuity equation. Fluxes are limited to give positive definite thicknesses. Called by

filter_stress

mom_zanna_bolton

Filtering of the stress tensor Txx, Tyy, Txy. The algorithm: marching halo with non-blocking grouped MPI exchanges. The input arrays (Txx, Tyy, Txy) must have halo 1 with zero B.C. applied. The output have the same halo and B.C.

filter_velocity_gradients

mom_zanna_bolton

Filtering of the velocity gradients sh_xx, sh_xy, vort_xy. Here instead of smoothing we do sharpening, i.e. return (initial - smoothed) fields. The algorithm: marching halo with non-blocking grouped MPI exchanges. The input array sh_xx should have halo 2 with applied zero B.C. The arrays sh_xy and vort_xy should have halo 1 with applied B.C. The output have the same halo and B.C.

filtered_grid_motion

mom_regridding

Returns the change in interface position motion after filtering and assuming the top and bottom interfaces do not move. The filtering is a function of depth, and is applied as the integrated average filtering over the trajectory of the interface. By design, this code can not give tangled interfaces provided that z_old and z_new are not already tangled.

finalize_axis_list_infra

mom_io_file

Deallocate axes of list.

finalize_axis_list_nc

mom_io_file

Deallocate axes of list.

finalize_field_list_infra

mom_io_file

Deallocate fields of list.

finalize_field_list_nc

mom_io_file

Deallocate fields of list.

find_buffer_slot

mom_diag_buffers

Return the slot of the buffer corresponding to the diagnostic id.

find_col_avg_spv

mom_interface_heights

Determine the column average specific volumes.

find_col_mass

mom_interface_heights

Calculate the integrated mass of the water column.

find_coupling_coef

mom_vert_friction

Calculate the ‘coupling coefficient’ (a_cpl) at the interfaces. If BOTTOMDRAGLAW is defined, the minimum of Hbbl and half the adjacent layer thicknesses are used to calculate a_cpl near the bottom.

find_coupling_coef_gl90

mom_vert_friction

Compute coupling coefficient associated with vertical viscosity parameterization as in Greatbatch and Lamb (1990), hereafter referred to as the GL90 vertical viscosity parameterization. This vertical viscosity scheme redistributes momentum in the vertical, and is the equivalent of the Gent & McWilliams (1990) parameterization, but in a TWA (thickness-weighted averaged) set of equations. The vertical viscosity coefficient nu is computed from kappa_GM via thermal wind balance, and the following relation: nu = kappa_GM * f^2 / N^2. In the following subroutine kappa_GM is assumed either (a) constant or (b) horizontally varying. In both cases, (a) and (b), one can additionally impose an EBT structure in the vertical for kappa_GM. A third possible formulation of nu is depth-independent: nu = f^2 * alpha The latter formulation would be equivalent to a kappa_GM that varies as N^2 with depth. The vertical viscosity del_z ( nu del_z u) is applied to the momentum equation with stress-free boundary conditions at the top and bottom.

find_deficit_ratios

mom_regularize_layers

This subroutine determines the amount by which the harmonic mean thickness at velocity points differ from the arithmetic means, relative to the arithmetic means, after eliminating thickness variations that are solely due to topography and aggregating all interior layers into one.

find_depth_of_pressure_in_cell

mom_density_integrals

Find the depth at which the reconstructed pressure matches P_tgt.

find_duhbt_du

mom_barotropic

The function find_duhbt_du determines the marginal zonal face area for a given velocity, or with INTEGRAL_BT_CONT=True for a given time-integrated velocity.

find_dvhbt_dv

mom_barotropic

The function find_dvhbt_dv determines the marginal meridional face area for a given velocity, or with INTEGRAL_BT_CONT=True for a given time-integrated velocity.

find_dz_for_eta

mom_interface_heights

Calculates the change in height across layers, using the appropriate form for consistency with the calculation of the pressure gradient forces.

find_eta_2d

mom_interface_heights

Calculates the free surface height, using the appropriate form for consistency with the calculation of the pressure gradient forces. Additionally, the sea surface height may be adjusted for consistency with the corresponding time-average quantity from the barotropic calculation.

find_eta_3d

mom_interface_heights

Calculates the heights of all interfaces between layers, using the appropriate form for consistency with the calculation of the pressure gradient forces. Additionally, these height may be dilated for consistency with the corresponding time-average quantity from the barotropic calculation.

find_face_areas

mom_barotropic

This subroutine determines the open face areas of cells for calculating the barotropic transport.

find_in_files

mom_tidal_forcing

This subroutine finds a named variable in a list of files and reads its values into a domain-decomposed 2-d array.

find_interfaces

mom_state_initialization

Find interface positions corresponding to interpolated depths in a density profile.

find_kappa_tke

mom_kappa_shear

This subroutine calculates new, consistent estimates of TKE and kappa.

find_kd_from_pe_chg

mom_energetic_pbl

This subroutine directly calculates the an increment in the diapycnal diffusivity based on the change in potential energy within a timestep, subject to bounds on the possible change in diffusivity, returning both the added diffusivity and the realized potential energy change, and optionally also the maximum change in potential energy that would be realized for an infinitely large diffusivity.

find_l_open_concave_iterative

mom_set_visc

Determine the normalized open length of each interface for concave bathymetry (from the ocean perspective) using iterative methods to solve the relevant cubic equations. In this case there can be two separate open regions.

find_l_open_concave_trigonometric

mom_set_visc

Determine the normalized open length of each interface for concave bathymetry (from the ocean perspective) using trigonometric expressions. In this case there can be two separate open regions.

find_l_open_convex

mom_set_visc

Determine the normalized open length of each interface for convex bathymetry (from the ocean perspective) using Newton’s method iterations. In this case there is a single open region with the minimum depth at one edge of the cell.

find_l_open_uniform_slope

mom_set_visc

Determine the normalized open length of each interface, given the edge depths and normalized volumes below each interface.

find_limited_slope

mom_tracer_z_init

This subroutine determines a limited slope for val to be advected with a piecewise limited scheme.

find_maxf_kb

mom_entrain_diffusive

Maximize F = ent*ds_kb*I_dSkbp1 in the range min_ent < ent < max_ent.

find_minimum

mom_hor_bnd_diffusion

Returns the location of the minimum value in a 1D array between indices s and e.

find_mstar

mom_energetic_pbl

This subroutine finds the mstar value for ePBL.

find_n2

mom_set_diffusivity

Calculate Brunt-Vaisala frequency, N^2.

find_n2_bottom

mom_int_tide_input

Estimates the near-bottom buoyancy frequency (N^2).

find_neutral_pos_full

mom_neutral_diffusion

Use the full equation of state to calculate the difference in locally referenced potential density. The derivatives in this case are not trivial to calculate, so instead we use a regula falsi method.

find_neutral_pos_linear

mom_neutral_diffusion

Search a layer to find where delta_rho = 0 based on a linear interpolation of alpha and beta of the top and bottom being searched and polynomial reconstructions of T and S. Compressibility is not needed because either, we are assuming incompressibility in the equation of state for this module or alpha and beta are calculated having been displaced to the average pressures of the two pressures We need Newton’s method because the T and S reconstructions make delta_rho a polynomial function of z if using PPM or higher. If Newton’s method would search fall out of the interval [0,1], a bisection step would be taken instead. Also this linearization of alpha, beta means that second derivatives of the EOS are not needed. Note that delta in variable names below refers to horizontal differences and ‘d’ refers to vertical differences.

find_neutral_surface_positions_continuous

mom_neutral_diffusion

Returns positions within left/right columns of combined interfaces using continuous reconstructions of T/S.

find_neutral_surface_positions_discontinuous

mom_neutral_diffusion

Higher order version of find_neutral_surface_positions. Returns positions within left/right columns of combined interfaces using intracell reconstructions of T/S. Note that the polynomial reconstructions of T and S are optional to aid with unit testing, but will always be passed otherwise.

find_obsolete_params

mom_obsolete_params

Scans input parameter file for list obsolete parameters.

find_overlap

mom_tracer_z_init

Determines the layers bounded by interfaces e that overlap with the depth range between Z_top and Z_bot, and the fractional weights of each layer. It also calculates the normalized relative depths of the range of each layer that overlaps that depth range.

find_pe_chg

mom_energetic_pbl

This subroutine calculates the change in potential energy and or derivatives for several changes in an interface’s diapycnal diffusivity times a timestep.

find_pe_chg

mom_diapyc_energy_req

This subroutine calculates the change in potential energy and or derivatives for several changes in an interface’s diapycnal diffusivity times a timestep.

find_pe_chg_orig

mom_energetic_pbl

This subroutine calculates the change in potential energy and or derivatives for several changes in an interface’s diapycnal diffusivity times a timestep using the original form used in the first version of ePBL.

find_phys_field_index

mom_open_boundary

Find physical field index from name.

find_rho_bottom

mom_interface_heights

Determine the in situ density averaged over a specified distance from the bottom, calculating it as the inverse of the mass-weighted average specific volume.

find_root

mom_grid_initialize

This subroutine finds and returns the value of y at which the monotonically increasing function fn takes the value fnval, also returning in ittmax the number of iterations of Newton’s method that were used to polish the root.

find_starting_tke

mom_bulk_mixed_layer

This subroutine determines the TKE available at the depth of free convection to drive mechanical entrainment.

find_tke_to_kd

mom_set_diffusivity

Convert turbulent kinetic energy to diffusivity.

find_uhbt

mom_barotropic

The function find_uhbt determines the zonal transport for a given velocity, or with INTEGRAL_BT_CONT=True it determines the time-integrated zonal transport for a given time-integrated velocity.

find_unused_unit_number

mom_document

Find an unused unit number, returning >0 if found, and triggering a FATAL error if not.

find_ustar_fluxes

mom_forcing_type

Determine the friction velocity from the contenxts of a forcing type, perhaps using the evolving surface density.

find_ustar_mech_forcing

mom_forcing_type

Determine the friction velocity from the contenxts of a forcing type, perhaps using the evolving surface density.

find_uv_at_h

mom_diabatic_aux

This subroutine calculates u_h and v_h (velocities at thickness points), optionally using the entrainment amounts passed in as arguments.

find_var_in_restart_files

mom_restart

Return an indication of whether the named variable is in the restart files, and provide the full path to the restart file in which a variable is found.

find_vhbt

mom_barotropic

The function find_vhbt determines the meridional transport for a given velocity, or with INTEGRAL_BT_CONT=True it determines the time-integrated meridional transport for a given time-integrated velocity.

find_weights

mom_diagnostics

This subroutine finds the location of R_in in an increasing ordered list, Rlist, returning as k the element such that Rlist(k) <= R_in < Rlist(k+1), and where wt and wt_p are the linear weights that should be assigned to elements k and k+1.

finish_mom_initialization

mom

Finishes initializing MOM and writes out the initial conditions.

first_derivative_polynomial

polynomial_functions

Calculates the first derivative of a polynomial evaluated in arbitrary units of [A H-1] at a point x.

fix_restart_unit_scaling

mom_unit_scaling

Set the unit scaling factors for output to restart files to the unit scaling factors for this run.

flag_line_as_read

mom_file_parser

Record that a line has been used to set a parameter.

flood_fill

mom_open_boundary

flood the cin, cout values

flood_fill2

mom_open_boundary

flood the cin, cout values

flush_file_infra

mom_io_file

Flush the buffer of a MOM framework file.

flush_file_nc

mom_io_file

Flush the buffer of a MOM netCDF file.

flush_netcdf_file

mom_netcdf

Flush buffered output to the netCDF file.

flux_init_ocmip2_cfc

mom_ocmip2_cfc

This subroutine initializes the air-sea CFC fluxes, and optionally returns the indicies of these fluxes. It can safely be called multiple times.

flux_limiter

mom_hor_bnd_diffusion

Calculates the maximum flux that can leave a cell and uses that to apply a limiter to F_layer.

fluxes_accumulate

mom_forcing_type

Accumulate the thermodynamic fluxes over time steps.

fluxes_layer_method

mom_hor_bnd_diffusion

Calculate the horizontal boundary diffusive fluxes using the layer by layer method. See

forcing_accumulate

mom_forcing_type

Accumulate the forcing over time steps, taking input from a mechanical forcing type and a temporary forcing-flux type.

forcing_diagnostics

mom_forcing_type

Offer buoyancy forcing fields for diagnostics for those fields registered as part of register_forcing_type_diags.

forcing_save_restart

mom_surface_forcing

Save a restart file for the forcing fields.

forcing_save_restart

mom_surface_forcing_gfdl

Save any restart files associated with the surface forcing.

forcing_singlepointprint

mom_forcing_type

Write out values of the fluxes arrays at the i,j location. This is a debugging tool.

forcing_timeseries_set_time_type_vars

mom_interpolate

Set time_type variables in

found_in_diagtable

mom_diag_mediator

Fakes a register of a diagnostic to find out if an obsolete parameter appears in the diag_table.

found_in_diagtable

mom_is_diag_mediator

Fakes a register of a diagnostic to find out if an obsolete parameter appears in the diag_table.

frac_dp_at_pos

mom_density_integrals

Returns change in anomalous pressure change from top to non-dimensional position pos between z_t and z_b [R L2 T-2 ~> Pa].

full_convection

mom_full_convection

Calculate new temperatures and salinities that have been subject to full convective mixing.

fv_diff

mom_neutral_diffusion

Returns the cell-centered second-order finite volume (unlimited PLM) slope using three consecutive cell widths and average values. Slope is returned as a difference across the central cell (i.e. units of scalar S, e.g. [C ~> degC] for temperature). Discretization follows equation 1.7 in Colella & Woodward, 1984: JCP 54, 174-201.

fvlsq_slope

mom_neutral_diffusion

Returns the cell-centered second-order weighted least squares slope using three consecutive cell widths and average values. Slope is returned as a gradient (i.e. units of scalar S over width units). For example, for temperature fvlsq_slope would usually be returned in units of [C H-1 ~> degC m-1 or degC m2 kg-1].

gen_auto_mask_table

mom_domains

Given a desired number of active npes, generate a layout and mask_table.

geothermal_end

mom_geothermal

Clean up and deallocate memory associated with the geothermal heating module.

geothermal_entraining

mom_geothermal

Applies geothermal heating, including the movement of water between isopycnal layers to match the target densities. The heating is applied to the bottommost layers that occur within GEOTHERMAL_THICKNESS of the bottom. If the partial derivative of the coordinate density with temperature is positive or very small, the layers are simply heated in place. Any heat that can not be applied to the ocean is returned (WHERE)?

geothermal_in_place

mom_geothermal

Applies geothermal heating to the bottommost layers that occur within GEOTHERMAL_THICKNESS of the bottom, by simply heating the water in place. Any heat that can not be applied to the ocean is returned (WHERE)?

geothermal_init

mom_geothermal

Initialize parameters and allocate memory associated with the geothermal heating module.

get_axis_info

mom_io

Retrieve the information from an

get_axis_list_infra

mom_io_file

Get axis based on label.

get_axis_list_nc

mom_io_file

Get axis based on label.

get_barotropic_tidal_vel

mom_int_tide_input

Returns barotropic tidal velocities.

get_bias_correction_tracer

mom_oda_driver_mod

get_checksum_loop_ranges

mom_restart

Return bounds for computing checksums to store in restart files.

get_chl_from_model

mom_tracer_flow_control

This subroutine extracts the chlorophyll concentrations from the model state, if possible.

get_dataset

database_client_interface

Retrieve a dataset from the database.

get_depth_list_checksums

mom_sum_output

Return the checksums required to verify DEPTH_LIST_FILE contents.

get_diag_time_end

mom_diag_mediator

This function returns the valid end time for use with diagnostics that are handled outside of the MOM6 diagnostics infrastructure.

get_diag_time_end

mom_is_diag_mediator

This function returns the valid end time for use with diagnostics that are handled outside of the MOM6 diagnostics infrastructure.

get_eos_name

mom_eos

Returns the string identifying the equation of state with enumeration “id”.

get_eqdisc_v0

mom_energetic_pbl

Gives velocity scale (v_0) using equations that approximate neural network of Sane et al. 2023.

get_eqdisc_v0h

mom_energetic_pbl

Gives velocity scale (v_0^h) using equations that with using boundary layer depth as one of its inputs These equations are different than those set in get_eqdisc_v0 subroutine.

get_external_field_info

mom_interpolate

get_field_atts_infra

mom_io_file

Get attributes from a field.

get_field_atts_nc

mom_io_file

Get attributes from a netCDF field.

get_field_list_infra

mom_io_file

Get axis based on label.

get_field_list_nc

mom_io_file

Get axis based on label.

get_field_nc

mom_io_file

Read the values of a netCDF field into an array that might have halos.

get_file_fields_infra

mom_io_file

Return the field metadata associated with a MOM framework file.

get_file_fields_nc

mom_io_file

Return the field descriptors of a MOM netCDF file.

get_file_fieldtypes

mom_io_file

Get the native (fieldtype) fields of a MOM framework file.

get_file_info_infra

mom_io_file

Return number of dimensions, variables, or time levels in a MOM infra file.

get_file_info_nc

mom_io_file

Return number of dimensions, variables, or time levels in a MOM netcdf file.

get_file_time_level

mom_surface_forcing

Return a time record to read from a file based on the model time, the number of time records in that file and the number of time records per model day.

get_file_times_infra

mom_io_file

Get time levels of a MOM framework file.

get_filename_appendix

mom_io

Provide a string to append to filenames, to differentiate ensemble members, for example.

get_flux_units

mom_verticalgrid

Returns the model’s thickness flux units, usually m^3/s or kg/s.

get_forcing_groups

mom_forcing_type

Return flags indicating which groups of forcings are allocated.

get_global_grid_size

mom_grid

Return global shape of horizontal grid.

get_hybgen_regrid_params

mom_hybgen_regrid

This subroutine can be used to retrieve the parameters for the hybgen regrid module.

get_input_tke

mom_int_tide_input

Returns TKE_itidal_input.

get_langmuir_number

mom_wave_interface

Interface to get Langmuir number based on options stored in wave structure.

get_lowmode_diffusivity

mom_internal_tides

Returns the values of diffusivity corresponding to various mechanisms.

get_lowmode_loss

mom_internal_tides

This subroutine extracts the energy lost from the propagating internal which has been summed across all angles, frequencies, and modes for a given mechanism and location.

get_mech_forcing_groups

mom_forcing_type

Return flags indicating which groups of mechanical forcings are allocated.

get_model

database_client_interface

Retrieve the model from the database.

get_mom_input

mom_get_input

Get the names of the I/O directories and initialization file. Also calls the subroutine that opens run-time parameter files.

get_mom_state_elements

mom

This subroutine offers access to values or pointers to other types from within the MOM_control_struct, allowing the MOM_control_struct to be opaque.

get_net_mass_forcing

mom_forcing_type

This subroutine calculates determines the net mass source to the ocean from a (thermodynamic) forcing type and stores it in a provided array.

get_netcdf_fields

mom_netcdf

Get the metadata of the registered fields in a netCDF file.

get_netcdf_filename

mom_netcdf

Return the name of a file from a netCDF handle.

get_netcdf_size

mom_netcdf

Get the number of dimensions, variables, and timesteps in a netCDF file.

get_new_diag_id

mom_diag_mediator

Returns a new diagnostic id, it may be necessary to expand the diagnostics array.

get_new_diag_id

mom_is_diag_mediator

Returns a new diagnostic id, it may be necessary to expand the diagnostics array.

get_num_restart_files

mom_restart

get_num_restart_files returns the number of existing restart files that match the provided directory structure and other information stored in the control structure and optionally also provides the full paths to these files.

get_obgc_segments_props

mom_open_boundary

Get the OBC properties of external obgc tracers, such as their source file, field name, reservoir length scale factors.

get_ocean_grid

ocean_model_mod

This subroutine gives a handle to the grid from ocean state.

get_ocean_stocks

mom

Find the global integrals of various quantities.

get_param_char

mom_file_parser

This subroutine reads the value of a character string model parameter from a parameter file and logs it in documentation files.

get_param_char_array

mom_file_parser

This subroutine reads the values of an array of character string model parameters from a parameter file and logs them in documentation files.

get_param_int

mom_file_parser

This subroutine reads the value of an integer model parameter from a parameter file and logs it in documentation files.

get_param_int_array

mom_file_parser

This subroutine reads the values of an array of integer model parameters from a parameter file and logs them in documentation files.

get_param_logical

mom_file_parser

This subroutine reads the value of a logical model parameter from a parameter file and logs it in documentation files.

get_param_real

mom_file_parser

This subroutine reads the value of a real model parameter from a parameter file and logs it in documentation files.

get_param_real_array

mom_file_parser

This subroutine reads the values of an array of real model parameters from a parameter file and logs them in documentation files.

get_param_time

mom_file_parser

This subroutine reads the value of a time-type model parameter from a parameter file and logs it in documentation files.

get_polynomial_coordinate

regrid_interp

Given a target value, find corresponding coordinate for given polynomial.

get_posterior_tracer

mom_oda_driver_mod

Returns posterior adjustments or full state Note that only those PEs associated with an ensemble member receive data.

get_profiles

ocean_da_core_mod

Get profiles obs within the current analysis interval.

get_regrid_size

mom_regridding

Returns the number of levels/layers in the regridding control structure.

get_rho_cs

mom_regridding

This returns a copy of the rho_CS stored in the regridding control structure.

get_script

database_client_interface

Retrieve the script from the database.

get_setting

marbl_interface

Dummy version of MARBL’s

get_sigma_cs

mom_regridding

This returns a copy of the sigma_CS stored in the regridding control structure.

get_sl_average_band

mom_wave_interface

Get SL averaged Stokes drift from the banded Spectrum method.

get_sl_average_prof

mom_wave_interface

Get SL Averaged Stokes drift from a Stokes drift Profile.

get_solubility

mom_cfc_cap

Calculates the CFC’s solubility function following Warner and Weiss (1985) DSR, vol 32.

get_stokessl_lifoxkemper

mom_wave_interface

Get SL averaged Stokes drift from Li/FK 17 method.

get_thickness_units

mom_verticalgrid

Returns the model’s thickness units, usually m or kg/m^2.

get_tr_flux_units

mom_verticalgrid

Returns the model’s tracer flux units.

get_tracer_index

mom_open_boundary

Return the tracer index from its name.

get_var_axes_info

mom_io

Returns the dimension variable information for a netCDF variable.

get_var_sizes

mom_io

get_var_sizes returns the number and size of dimensions associate with a variable in a file. Usually only the root PE does the read, and then the information is broadcast

get_variable_byte_size

mom_restart

get the size of a variable in bytes

get_variable_line

mom_file_parser

This subroutine extracts the contents of lines in the

get_varid

mom_io

get_varid finds the netcdf handle for the potentially case-insensitive variable name in a file

get_wave_method

mom_wave_interface

function to return the wave method string set in the param file

get_zlike_cs

mom_regridding

This returns a copy of the zlike_CS stored in the regridding control structure.

getcoordinateinterfaces

mom_regridding

Query the target coordinate interface positions.

getcoordinateresolution

mom_regridding

Query the fixed resolution data.

getcoordinateshortname

mom_regridding

Query the short name of the coordinate.

getcoordinateunits

mom_regridding

Query the target coordinate units.

getpid

posix

Get the ID of the current process.

getppid

posix

Get the ID of the parent process of the current process.

getrandomint

mom_random

Return a random integer on interval [0,0xffffffff].

getrandomreal

mom_random

Return a random real number on interval [0,1].

getstaticthickness

mom_regridding

Return coordinate-derived thicknesses for fixed coordinate systems.

global_area_integral

mom_spatial_means

Return the global area integral of a variable using reproducing sums, perhaps with a change of units. By default the integral uses the masked area from the grid, but an alternate could be used instead. The presence of the optional tmp_scale argument determines whether the returned value is in scaled (if it is present) or unscaled units for both the variable itself and for the area in the integral.

global_area_mean

mom_spatial_means

Return the global area mean of a variable, perhaps with a change of units. This uses reproducing sums.

global_area_mean_u

mom_spatial_means

Return the global area mean of a variable on U grid. This uses reproducing sums.

global_area_mean_v

mom_spatial_means

Return the global area mean of a variable. This uses reproducing sums.

global_i_mean

mom_spatial_means

Determine the global mean of a field along rows of constant i, returning it in a 1-d array using the local indexing. This uses reproducing sums.

global_j_mean

mom_spatial_means

Determine the global mean of a field along rows of constant j, returning it in a 1-d array using the local indexing. This uses reproducing sums.

global_layer_mean

mom_spatial_means

Return the layerwise global thickness-weighted mean of a variable. This uses reproducing sums.

global_mass_int_efp

mom_spatial_means

Find the global mass-weighted order invariant integral of a variable in mks units, returning the value as an EFP_type. This uses reproducing sums.

global_mass_integral

mom_spatial_means

Find the global mass-weighted integral of a variable. The presence of the optional tmp_scale argument determines whether the returned value is in scaled (if it is present) or unscaled units for both the variable itself and for the mass in the integral. This function uses reproducing sums.

global_volume_mean

mom_spatial_means

Find the global thickness-weighted mean of a variable. This uses reproducing sums.

gradient_at_q_points

mom_open_boundary

Calculate the tangential gradient of the normal flow at the boundary q-points.

gradke

mom_coriolisadv

Calculates the acceleration due to the gradient of kinetic energy in one layer.

grid_metrics_chksum

mom_grid_initialize

grid_metrics_chksum performs a set of checksums on metrics on the grid for debugging.

grow_2d

mom_diag_buffers

Grow a 2d diagnostic buffer.

grow_3d

mom_diag_buffers

Grow a 2d diagnostic buffer.

grow_ids

mom_diag_buffers

Grow the ids array by one.

growth_time

mom_mixed_layer_restrat

Return the growth timescale for the submesoscale mixed layer eddies in [T ~> s].

ha_accum

mom_harmonic_analysis

This subroutine accumulates the temporal basis functions in FtF and FtSSH and then calls HA_write to compute harmonic constants and write results. The tidal constituents are those used in MOM_tidal_forcing, plus the mean (of zero frequency). For FtF, only the main diagonal and entries below it are calculated, which are needed for Cholesky decomposition.

ha_init

mom_harmonic_analysis

This subroutine sets static variables used by this module and initializes CSlist. THIS MUST BE CALLED AT THE END OF tidal_forcing_init.

ha_register

mom_harmonic_analysis

This subroutine registers each of the fields on which HA is to be performed.

ha_solver

mom_harmonic_analysis

This subroutine computes the harmonic constants (stored in x) using the dot products of the temporal basis functions accumulated in FtF, and the dot products of the SSH (or other fields) with the temporal basis functions accumulated in FtSSH. The system is solved by Cholesky decomposition,.

ha_write

mom_harmonic_analysis

This subroutine computes the harmonic constants and write output for the current field.

harmonic_mean

mom_hor_bnd_diffusion

Calculate the harmonic mean of two quantities [arbitrary] See

hbd_grid

mom_hor_bnd_diffusion

Build the HBD grid where tracers will be remapped to.

hbd_grid_test

mom_hor_bnd_diffusion

Same as hbd_grid, but only used in the unit tests.

hit_assign

mom_hor_index

HIT_assign copies one

hml

rossby_front_2d_initialization

Analytic prescription of mixed layer depth in 2d Rossby front test, in the same units as max_depth (usually [Z ~> m] or [H ~> m or kg m-2])

homogenize_field

mom_horizontal_regridding

Replace all values of a 2-d field with the weighted average over the valid points.

homogenize_field_t

mom_forcing_type

homogenize_field_u

mom_forcing_type

homogenize_field_v

mom_forcing_type

homogenize_forcing

mom_forcing_type

homogenize_mech_forcing

mom_forcing_type

hor_bnd_diffusion

mom_hor_bnd_diffusion

Driver routine for calculating horizontal diffusive fluxes near the top and bottom boundaries. Diffusion is applied using only information from neighboring cells, as follows: 1) remap tracer to a z* grid (HBD grid) 2) calculate diffusive tracer fluxes (F) in the HBD grid using a layer by layer approach 3) remap fluxes to the native grid 4) update tracer by adding the divergence of F.

hor_bnd_diffusion_end

mom_hor_bnd_diffusion

Deallocates hor_bnd_diffusion control structure.

hor_bnd_diffusion_init

mom_hor_bnd_diffusion

Initialization routine that reads runtime parameters and sets up pointers to other control structures that might be needed for horizontal boundary diffusion.

hor_index_init

mom_hor_index

Sets various index values in a

hor_visc_end

mom_hor_visc

Deallocates any variables allocated in hor_visc_init.

hor_visc_init

mom_hor_visc

Allocates space for and calculates static variables used by horizontal_viscosity. hor_visc_init calculates and stores the values of a number of metric functions that are used in horizontal_viscosity.

hor_visc_vel_stencil

mom_hor_visc

hor_visc_vel_stencil returns the horizontal viscosity input velocity stencil size

horiz_interp_and_extrap_tracer_fms_id

mom_horizontal_regridding

Extrapolate and interpolate using a FMS time interpolation handle.

horiz_interp_and_extrap_tracer_record

mom_horizontal_regridding

Extrapolate and interpolate from a file record.

horizontal_viscosity

mom_hor_visc

Calculates the acceleration due to the horizontal viscosity.

horizontally_average_diag_field

mom_diag_remap

Horizontally average a diagnostic field.

horizontally_average_field

mom_diag_remap

Horizontally average a diagnostic field.

hybgen_column_init

mom_hybgen_regrid

Initialize some of the variables that are used for regridding or unmixing, including the stretched contraits on where the new interfaces can be.

hybgen_column_regrid

mom_hybgen_regrid

Create a new grid for a column of water using the Hybgen algorithm.

hybgen_column_unmix

mom_hybgen_unmix

Unmix the properties in the lowest layer if it is too light.

hybgen_plm_coefs

mom_hybgen_remap

Set up the coefficients for PLM remapping of a set of scalars.

hybgen_ppm_coefs

mom_hybgen_remap

Set up the coefficients for PPM remapping of a set of scalars.

hybgen_regrid

mom_hybgen_regrid

Modify the input grid to give a new vertical grid based on the HYCOM hybgen code.

hybgen_unmix

mom_hybgen_unmix

Unmix the properties in the lowest layer with mass if it is too light, and make any other changes to the water column to prepare for regridding.

hybgen_weno_coefs

mom_hybgen_remap

Set up the coefficients for PPM remapping of a set of scalars.

ice_ocn_bnd_type_chksum

mom_surface_forcing_gfdl

Write out a set of messages with checksums of the fields in an ice_ocean_boundary type.

ice_sheet_calving_to_ocean_sfc

mom_ice_shelf

Converts the ice-shelf-to-ocean calving and calving_hflx variables from the ice-shelf state (ISS) type to the ocean public type.

ice_shelf_advect

mom_ice_shelf_dynamics

This subroutine takes the velocity (on the Bgrid) and timesteps h_t = - div (uh) once. Additionally, it will update the volume of ice in partially-filled cells, and update hmask accordingly.

ice_shelf_advect_temp_x

mom_ice_shelf_dynamics

ice_shelf_advect_temp_y

mom_ice_shelf_dynamics

ice_shelf_advect_thickness_x

mom_ice_shelf_dynamics

ice_shelf_advect_thickness_y

mom_ice_shelf_dynamics

ice_shelf_dyn_end

mom_ice_shelf_dynamics

Deallocates all memory associated with the ice shelf dynamics module.

ice_shelf_end

mom_ice_shelf

Deallocates all memory associated with this module.

ice_shelf_min_thickness_calve

mom_ice_shelf_dynamics

Apply a very simple calving law using a minimum thickness rule.

ice_shelf_query

mom_ice_shelf

Save the ice shelf restart file.

ice_shelf_save_restart

mom_ice_shelf

Save the ice shelf restart file.

ice_shelf_solve_inner

mom_ice_shelf_dynamics

ice_shelf_solve_outer

mom_ice_shelf_dynamics

This subroutine computes u- and v-velocities of the ice shelf iterating on non-linear ice viscosity.

ice_shelf_state_end

mom_ice_shelf_state

Deallocates all memory associated with this module.

ice_shelf_state_init

mom_ice_shelf_state

Deallocates all memory associated with this module.

ice_shelf_temp

mom_ice_shelf_dynamics

This subroutine updates the vertically averaged ice shelf temperature.

ice_time_step_cfl

mom_ice_shelf_dynamics

This function returns the global maximum advective timestep that can be taken based on the current ice velocities. Because it involves finding a global minimum, it can be surprisingly expensive.

ice_visc_diag

mom_ice_shelf_dynamics

Calculate cell-centered, area-averaged, vertically integrated ice viscosity for diagnostics.

iceberg_fluxes

mom_marine_ice

iceberg_fluxes adds ice-area-coverage and modifies various thermodynamic fluxes due to the presence of icebergs.

iceberg_forces

mom_marine_ice

add_berg_flux_to_shelf adds rigidity and ice-area coverage due to icebergs to the forces type fields, and adds ice-areal coverage and modifies various thermodynamic fluxes due to the presence of icebergs.

ideal_age_example_end

ideal_age_example

Deallocate any memory associated with this tracer package.

ideal_age_stock

ideal_age_example

Calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If stock_index is present, only the stock corresponding to that coded index is found.

ideal_age_tracer_column_physics

ideal_age_example

Applies diapycnal diffusion, aging and regeneration at the surface to the ideal age tracers.

ideal_age_tracer_surface_state

ideal_age_example

This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler.

idealized_hurricane_wind_forcing

idealized_hurricane

Computes the surface wind for the idealized hurricane test cases.

idealized_hurricane_wind_init

idealized_hurricane

Initializes wind profile for the SCM idealized hurricane example.

idealized_hurricane_wind_profile

idealized_hurricane

Calculate the wind speed at a location as a function of time.

ijk_loc

mom_spatial_means

increment_interface

mom_neutral_diffusion

Increments the interface which was just connected and also set flags if the bottom is reached.

increment_ints

mom_coms

Increment an array of integers that constitutes an extended-fixed-point representation with a another EFP number.

increment_ints_faster

mom_coms

Increment an EFP number with a real number without doing any carrying of of overflows and using only minimal error checking.

inflate_vanished_layers_old

mom_regridding

make sure all layers are at least as thick as the minimum thickness allowed for regridding purposes by inflating thin layers. This breaks mass conservation and adds mass to the model when there are excessively thin layers.

init

recon1d_ppm_cwk

Initialize a 1D PPM_CWK reconstruction for n cells.

init

recon1d_plm_cw

Initialize a 1D PLM reconstruction for n cells.

init

recon1d_pcm

Initialize a 1D PCM reconstruction for n cells.

init

recon1d_ppm_h4_2019

Initialize a 1D PPM_H4_2019 reconstruction for n cells.

init

recon1d_plm_wls

Initialize a 1D PLM reconstruction for n cells.

init

marbl_interface

Dummy version of MARBL’s

init

recon1d_plm_hybgen

Initialize a 1D PLM reconstruction for n cells.

init

recon1d_ppm_cw

Initialize a 1D PPM_CW reconstruction for n cells.

init

recon1d_mplm_wa_poly

Initialize a 1D PLM reconstruction for n cells.

init_3d_coord_hycom

coord_hycom

Initialise a hycom_CS with pointers to parameters.

init_coord_adapt

coord_adapt

Initialise an adapt_CS with parameters.

init_coord_hycom

coord_hycom

Initialise a hycom_CS with pointers to parameters.

init_coord_rho

coord_rho

Initialise a rho_CS with pointers to parameters.

init_coord_sigma

coord_sigma

Initialise a sigma_CS with pointers to parameters.

init_coord_zlike

coord_zlike

Initialise a zlike_CS with pointers to parameters.

init_dyn_split_rk2_diabatic

mom_dynamics_split_rk2

Initializes aspects of the dyn_split_RK2 that depend on diabatic processes. Needed when BLDs are used in the dynamics.

init_hybgen_regrid

mom_hybgen_regrid

Initialise a hybgen_regrid_CS control structure and store its parameters.

init_hybgen_unmix

mom_hybgen_unmix

Initialise a hybgen_unmix_CS control structure and store its parameters.

init_ocean_ensemble

mom_oda_driver_mod

Initialize DA module.

init_oda

mom_oda_driver_mod

initialize First_guess (prior) and Analysis grid information for all ensemble members

init_oda_incupd_diags

mom_oda_incupd

Initialize diagnostics for the oda_incupd module.

init_ohlmann_table

mom_opacity

Initialize the lookup table for Ohlmann solar penetration scheme. Step size in Chl is a constant in log-space to make lookups easy. Step size is fine enough that nearest neighbor lookup is sufficiently accurate.

init_sponge_diags

mom_sponge

This subroutine sets up diagnostics for the sponges. It is separate from initialize_sponge because it requires fields that are not readily available where initialize_sponge is called.

init_stochastic_physics_ocn

stochastic_physics

Initializes the stochastic physics perturbations.

init_string_char

mom_unit_testing

Initialize string with a character array.

init_string_int

mom_unit_testing

Convert an integer to a string.

init_tracer_cfc

mom_ocmip2_cfc

This subroutine initializes a tracer array.

init_tracer_cfc

mom_cfc_cap

This subroutine initializes a tracer array.

initcoord

mom_regridding

Initialize the coordinate resolutions by calling the appropriate initialization routine for the specified coordinate mode.

initialize_advection_test_tracer

advection_test_tracer

Initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output.

initialize_axis_list_infra

mom_io_file

Initialize the linked list of framework axes.

initialize_axis_list_nc

mom_io_file

Initialize the linked list of framework axes.

initialize_boundary_impulse_tracer

boundary_impulse_tracer

Initialize tracer from restart or set to 1 at surface to initialize.

initialize_bt_obc

mom_barotropic

This subroutine sets up the time-invariant control information about the open boundary conditions on the full wide halo domain used by the barotropic solver.

initialize_cfc_cap

mom_cfc_cap

Initialize the CFC tracer fields and set up the tracer output.

initialize_client

database_client_interface

Initializes a new instance of a communication client.

initialize_diag_type

mom_diag_mediator

Initializes a

initialize_diag_type

mom_is_diag_mediator

Initializes a

initialize_diagnostic_fields

mom_ice_shelf_dynamics

initialize_dome_tracer

dome_tracer

Initializes the NTR tracer fields in tr(:,:,:,:) and sets up the tracer output.

initialize_dye_tracer

regional_dyes

This subroutine initializes the CSntr tracer fields in tr(:,:,:,:) and it sets up the tracer output.

initialize_dyed_obc_tracer

dyed_obc_tracer

Initializes the CSntr tracer fields in tr(:,:,:,:) and sets up the tracer output.

initialize_dyn_split_rk2

mom_dynamics_split_rk2

This subroutine initializes all of the variables that are used by this dynamic core, including diagnostics and the cpu clocks.

initialize_dyn_split_rk2b

mom_dynamics_split_rk2b

This subroutine initializes all of the variables that are used by this dynamic core, including diagnostics and the cpu clocks.

initialize_dyn_unsplit

mom_dynamics_unsplit

Initialize parameters and allocate memory associated with the unsplit dynamics module.

initialize_dyn_unsplit_rk2

mom_dynamics_unsplit_rk2

Initialize parameters and allocate memory associated with the unsplit RK2 dynamics module.

initialize_field_list_infra

mom_io_file

Initialize the linked list of framework axes.

initialize_field_list_nc

mom_io_file

Initialize the linked list of framework axes.

initialize_grid_rotation_angle

mom_shared_initialization

initialize_grid_rotation_angle initializes the arrays with the sine and cosine of the angle between logical north on the grid and true north.

initialize_ice_aglen

mom_ice_shelf_initialize

Initialize ice-stiffness parameter.

initialize_ice_c_basal_friction

mom_ice_shelf_initialize

Initialize ice basal friction.

initialize_ice_flow_from_file

mom_ice_shelf_initialize

Initialize ice shelf flow from file.

initialize_ice_shelf

mom_ice_shelf

Initializes shelf model data, parameters and diagnostics.

initialize_ice_shelf_boundary_channel

mom_ice_shelf_initialize

Initialize ice shelf boundary conditions for a channel configuration.

initialize_ice_shelf_boundary_from_file

mom_ice_shelf_initialize

Initialize ice shelf b.c.s from file.

initialize_ice_shelf_dyn

mom_ice_shelf_dynamics

Initializes shelf model data, parameters and diagnostics.

initialize_ice_shelf_fluxes

mom_ice_shelf

initialize_ice_shelf_forces

mom_ice_shelf

Allocate and initialize the ice-shelf forcing elements of a mechanical forcing type. This forcing type is on the unrotated grid that is used outside of the MOM6 ice shelf code.

initialize_ice_smb

mom_ice_shelf_initialize

Initialize ice surface mass balance field that is held constant over time.

initialize_ice_thickness

mom_ice_shelf_initialize

Initialize ice shelf thickness.

initialize_ice_thickness_channel

mom_ice_shelf_initialize

Initialize ice shelf thickness for a channel configuration.

initialize_ice_thickness_from_file

mom_ice_shelf_initialize

Initialize ice shelf thickness from file.

initialize_ideal_age_tracer

ideal_age_example

Sets the ideal age traces to their initial values and sets up the tracer output.

initialize_isomip_tracer

isomip_tracer

Initializes the NTR tracer fields in tr(:,:,:,:)

initialize_marbl_tracers

marbl_tracers

This subroutine initializes the CSntr tracer fields in tr(:,:,:,:) and it sets up the tracer output.

initialize_masks

mom_grid_initialize

Initializes the grid masks and any metrics that come with masks already applied.

initialize_mom

mom

Initialize MOM, including memory allocation, setting up parameters and diagnostics, initializing the ocean state variables, and initializing subsidiary modules.

initialize_mom_generic_tracer

mom_generic_tracer

Initialize phase II: Initialize required variables for generic tracers There are some steps of initialization that cannot be done in register_MOM_generic_tracer This is the place and time to do them: Set the grid mask and initial time for all generic tracers. Diag_register them. Z_diag_register them.

initialize_nw2_tracers

nw2_tracers

Sets the NW2 traces to their initial values and sets up the tracer output.

initialize_obc_segment_reservoirs

mom_open_boundary

Initialize thickness and tracer reservoirs to external value.

initialize_obc_tides

mom_open_boundary

Initize parameters and fields related to the specification of tides at open boundaries.

initialize_ocean_public_type

ocean_model_mod

Initialize the public ocean type.

initialize_ocmip2_cfc

mom_ocmip2_cfc

Initialize the OCMP2 CFC tracer fields and set up the tracer output.

initialize_oda_incupd

mom_oda_incupd

This subroutine defined the number of time step for full update, stores the layer pressure increments and initialize remap structure.

initialize_oda_incupd_file

mom_state_initialization

initialize_oda_incupd_fixed

mom_oda_incupd

This subroutine defined the control structure of module and register.

initialize_oil_tracer

oil_tracer

Initialize the oil tracers and set up tracer output.

initialize_pseudo_salt_tracer

pseudo_salt_tracer

Initialize the pseudo-salt tracer.

initialize_regridding

mom_regridding

Initialization and configures a regridding control structure based on customizable run-time parameters.

initialize_remapping

mom_remapping

Constructor for remapping control structure.

initialize_rgc_tracer

rgc_tracer

Initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output.

initialize_segment_data

mom_open_boundary

Get and store properties about the fields on the OBC segments and allocate space for reading OBC data from files. In the process, it does funky stuff with the MPI processes.

initialize_shelf_mass

mom_ice_shelf

Initializes shelf mass based on three options (file, zero and user)

initialize_sponge

mom_sponge

This subroutine determines the number of points which are within sponges in this computational domain. Only points that have positive values of Iresttime and which mask2dT indicates are ocean points are included in the sponges. It also stores the target interface heights.

initialize_sponges_file

mom_state_initialization

This subroutine sets the inverse restoration time (Idamp), and the values towards which the interface heights and an arbitrary number of tracers should be restored within each sponge. The interface height is always subject to damping, and must always be the first registered field.

initialize_temp_salt_fit

mom_state_initialization

Initializes temperature and salinity by fitting to density.

initialize_temp_salt_from_file

mom_state_initialization

Initializes temperature and salinity from file.

initialize_temp_salt_from_profile

mom_state_initialization

Initializes temperature and salinity from a 1D profile.

initialize_temp_salt_linear

mom_state_initialization

Initializes T and S with linear profiles according to reference surface layer salinity and temperature and a specified range.

initialize_thickness_from_file

mom_state_initialization

Reads the layer thicknesses or interface heights from a file.

initialize_thickness_list

mom_state_initialization

Initialize thickness from a 1D list.

initialize_thickness_param

mom_state_initialization

Initializes thickness based on a run-time parameter with nominal thickness for each layer.

initialize_thickness_search

mom_state_initialization

Search density space for location of layers (not implemented!)

initialize_thickness_uniform

mom_state_initialization

Initializes thickness to be uniform.

initialize_topography_from_file

mom_shared_initialization

Read gridded depths from file.

initialize_topography_named

mom_shared_initialization

initialize the bathymetry based on one of several named idealized configurations

initialize_velocity_circular

mom_state_initialization

Sets the initial velocity components to be circular with no flow at edges of domain and center.

initialize_velocity_from_file

mom_state_initialization

Initialize horizontal velocity components from file.

initialize_velocity_uniform

mom_state_initialization

Sets the initial velocity components to uniform.

initialize_velocity_zero

mom_state_initialization

Initialize horizontal velocity components to zero.

insert_offline_main

mom_offline_main

Inserts (assigns values to) members of the offline main control structure. All arguments are optional except for the CS itself.

int_arr

numerical_testing_type

Compare i_test to i_true and report and return true if a difference is found.

int_array_msg

mom_unique_scales

Return a string the elements of an array of integers.

int_array_string

mom_document

Returns a character string of a comma-separated, compact formatted, integers e.g. “1, 2, 7*3, 500”, that give the list of values.

int_density_dz

mom_density_integrals

Calls the appropriate subroutine to calculate analytical and nearly-analytical integrals in z across layers of pressure anomalies, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model.

int_density_dz_generic_pcm

mom_density_integrals

Calculates (by numerical quadrature) integrals of pressure anomalies across layers, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model.

int_density_dz_generic_plm

mom_density_integrals

Compute pressure gradient force integrals by quadrature for the case where T and S are linear profiles.

int_density_dz_generic_ppm

mom_density_integrals

Compute pressure gradient force integrals for layer “k” and the case where T and S are parabolic profiles.

int_density_dz_linear

mom_eos_linear

This subroutine calculates analytical and nearly-analytical integrals of pressure anomalies across layers, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model.

int_density_dz_wright

mom_eos_wright

Calculates analytical and nearly-analytical integrals, in geopotential across layers, of pressure anomalies, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model. There are essentially no free assumptions, apart from the use of Boole’s rule rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34.

int_density_dz_wright_full

mom_eos_wright_full

Calculates analytical and nearly-analytical integrals, in geopotential across layers, of pressure anomalies, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model. There are essentially no free assumptions, apart from the use of Boole’s rule rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34.

int_density_dz_wright_red

mom_eos_wright_red

Calculates analytical and nearly-analytical integrals, in geopotential across layers, of pressure anomalies, which are required for calculating the finite-volume form pressure accelerations in a Boussinesq model. There are essentially no free assumptions, apart from the use of Boole’s rule rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34.

int_di_dx

mom_grid_initialize

This function calculates and returns the integral of the inverse of dx/di to the point x, in radians [gridpoints].

int_dj_dy

mom_grid_initialize

This subroutine calculates and returns the integral of the inverse of dy/dj to the point y in radians [gridpoints].

int_spec_vol_dp_generic_pcm

mom_density_integrals

This subroutine calculates integrals of specific volume anomalies in pressure across layers, which are required for calculating the finite-volume form pressure accelerations in a non-Boussinesq model. There are essentially no free assumptions, apart from the use of Boole’s rule quadrature to do the integrals.

int_spec_vol_dp_generic_plm

mom_density_integrals

This subroutine calculates integrals of specific volume anomalies in pressure across layers, which are required for calculating the finite-volume form pressure accelerations in a non-Boussinesq model. There are essentially no free assumptions, apart from the use of Boole’s rule quadrature to do the integrals.

int_spec_vol_dp_linear

mom_eos_linear

Calculates analytical and nearly-analytical integrals in pressure across layers of geopotential anomalies, which are required for calculating the finite-volume form pressure accelerations in a non-Boussinesq model. Specific volume is assumed to vary linearly between adjacent points.

int_spec_vol_dp_wright

mom_eos_wright

Calculates analytical and nearly-analytical integrals, in pressure across layers, of geopotential anomalies, which are required for calculating the finite-volume form pressure accelerations in a non-Boussinesq model. There are essentially no free assumptions, apart from the use of Boole’s rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34.

int_spec_vol_dp_wright_full

mom_eos_wright_full

Calculates analytical and nearly-analytical integrals, in pressure across layers, of geopotential anomalies, which are required for calculating the finite-volume form pressure accelerations in a non-Boussinesq model. There are essentially no free assumptions, apart from the use of Boole’s rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34.

int_spec_vol_dp_wright_red

mom_eos_wright_red

Calculates analytical and nearly-analytical integrals, in pressure across layers, of geopotential anomalies, which are required for calculating the finite-volume form pressure accelerations in a non-Boussinesq model. There are essentially no free assumptions, apart from the use of Boole’s rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34.

int_specific_vol_dp

mom_density_integrals

Calls the appropriate subroutine to calculate analytical and nearly-analytical integrals in pressure across layers of geopotential anomalies, which are required for calculating the finite-volume form pressure accelerations in a non-Boussinesq model. There are essentially no free assumptions, apart from the use of Boole’s rule to do the horizontal integrals, and from a truncation in the series for log(1-eps/1+eps) that assumes that |eps| < 0.34.

int_string

mom_document

This function returns a string with an integer formatted like ‘(I)’.

int_tide_input_end

mom_int_tide_input

Deallocates any memory related to the internal tide input module.

int_tide_input_init

mom_int_tide_input

Initializes the data related to the internal tide input module.

integrate_over_ice_sheet_area

mom_ice_shelf

integration_polynomial

polynomial_functions

Exact integration of polynomial of degree npoly in arbitrary units of [A H].

interface_filter

mom_interface_filter

Apply a transport that leads to a smoothing of interface height, subject to limits that ensure stability and positive definiteness of layer thicknesses. It also updates the along-layer mass fluxes used in the tracer transport equations.

interface_filter_end

mom_interface_filter

Deallocate the interface height filtering control structure.

interface_filter_init

mom_interface_filter

Initialize the interface height filtering module/structure.

interface_scalar

mom_neutral_diffusion

Returns interface scalar, Si, for a column of layer values, S.

interior_tendency_compute

marbl_interface

Dummy version of MARBL’s

internal_tides_end

mom_internal_tides

This subroutine deallocates the memory associated with the internal tides control structure.

internal_tides_init

mom_internal_tides

This subroutine initializes the internal tides module.

interpolate_column

mom_remapping

Linearly interpolate interface data, u_src, from grid h_src to a grid h_dest.

interpolate_for_nondim_position

mom_neutral_diffusion

Returns the non-dimensional position between Pneg and Ppos where the interpolated density difference equals zero [nondim]. The result is always bounded to be between 0 and 1.

interpolate_grid

regrid_interp

Given target values (e.g., density), build new grid based on polynomial.

interpolate_h_to_b

mom_ice_shelf_dynamics

Interpolate the ice shelf thickness from tracer point to nodal points, subject to a mask.

interpolation_scheme

regrid_interp

Numeric value of interpolation_scheme corresponding to scheme name.

intersect_src_tgt_grids

mom_remapping

Returns the intersection of source and targets grids along with and auxiliary lists or indices.

intrinsic_functions_unit_tests

mom_intrinsic_functions

Returns true if any unit test of intrinsic_functions fails, or false if they all pass.

ints_to_real

mom_coms

Convert the array of integers that constitute an extended-fixed-point representation into a real number.

ints_to_string

mom_string_functions

Convert the first n elements (3 by default) of an integer array into an underscore delimited string.

invcosh

mom_intrinsic_functions

Evaluate the inverse cosh, either using a math library or an equivalent expression.

is_cubic_monotonic

p3m_functions

Check whether the cubic reconstruction in cell k is monotonic.

is_dynamics_post_data

mom_ice_shelf_dynamics

Ice shelf dynamics post_data calls.

is_dynamics_post_data_2

mom_ice_shelf_dynamics

Post_data calls related to ice-sheet flux divergence, strain-rate, and deviatoric stress.

is_nan_0d

mom_checksums

This function returns .true. if x is a NaN, and .false. otherwise.

is_nan_1d

mom_checksums

Returns .true. if any element of x is a NaN, and .false. otherwise.

is_nan_2d

mom_checksums

Returns .true. if any element of x is a NaN, and .false. otherwise.

is_nan_3d

mom_checksums

Returns .true. if any element of x is a NaN, and .false. otherwise.

is_new_run

mom_restart

is_new_run returns whether this is going to be a new run based on the information stored in CS by a previous call to determine_is_new_run.

is_unstable

mom_full_convection

This function returns True if the profiles around the given interface will be statically unstable after mixing above below. The arguments are the ocean state above and below, including partial calculations from a tridiagonal solver.

isformattedfloatequalto

mom_string_functions

Returns True if the string can be read/parsed to give the exact value of “val”.

isinitialized

database_client_interface

Check whether the client has been initialized.

isomip_initialize_sponges

isomip_initialization

Sets up the inverse restoration time (Idamp), and the values towards which the interface heights and an arbitrary number of tracers should be restored within each sponge.

isomip_initialize_temperature_salinity

isomip_initialization

Initial values for temperature and salinity.

isomip_initialize_thickness

isomip_initialization

Initialization of thicknesses.

isomip_initialize_topography

isomip_initialization

Initialization of topography for the ISOMIP configuration.

isomip_tracer_column_physics

isomip_tracer

This subroutine applies diapycnal diffusion, including the surface boundary conditions and any other column tracer physics or chemistry to the tracers from this file.

isomip_tracer_end

isomip_tracer

Deallocate any memory used by the ISOMIP tracer package.

isomip_tracer_surface_state

isomip_tracer

This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler.

ispointincell

mom_grid

Returns true if the coordinates (x,y) are within the h-cell (i,j)

itidal_lowmode_loss

mom_internal_tides

Calculates the energy lost from the propagating internal tide due to scattering over small-scale roughness along the lines of Jayne & St. Laurent (2001).

kappa_eqdisc

mom_energetic_pbl

Gives shape function that sets the vertical structure of OSBL diffusivity as described in Sane et al. 2025.

kappa_shear_at_vertex

mom_kappa_shear

This function indicates to other modules whether the Jackson et al shear mixing parameterization will be used at the vertices without needing to duplicate the log entry. It returns false if the Jackson et al scheme is not used or if it is used via calculations at the tracer points.

kappa_shear_column

mom_kappa_shear

This subroutine calculates shear-driven diffusivity and TKE in a single column.

kappa_shear_init

mom_kappa_shear

This subroutine initializes the parameters that regulate shear-driven mixing.

kappa_shear_is_used

mom_kappa_shear

This function indicates to other modules whether the Jackson et al shear mixing parameterization will be used without needing to duplicate the log entry.

kdwork_diagnostics

mom_diagnose_kdwork

Loop over all implemented diffusivities to diagnose and output Kd Work/buoyancy fluxes.

kdwork_end

mom_diagnose_kdwork

Deallocates control structrue.

kdwork_init

mom_diagnose_kdwork

Handles all KdWork diagnostics and flags which calculations should be done.

kelvin_initialize_topography

kelvin_initialization

This subroutine sets up the Kelvin topography and land mask.

kelvin_obc_end

kelvin_initialization

Clean up the Kelvin wave OBC from registry.

kelvin_set_obc_data

kelvin_initialization

This subroutine sets the properties of flow at open boundary conditions.

kill

posix

Send signal

kpp_calculate

mom_cvmix_kpp

KPP vertical diffusivity/viscosity and non-local tracer transport.

kpp_compute_bld

mom_cvmix_kpp

Compute OBL depth.

kpp_end

mom_cvmix_kpp

Clear pointers, deallocate memory.

kpp_get_bld

mom_cvmix_kpp

Copies KPP surface boundary layer depth into BLD, in units of [Z ~> m] unless other units are specified.

kpp_init

mom_cvmix_kpp

Initialize the CVMix KPP module and set up diagnostics Returns True if KPP is to be used, False otherwise.

kpp_nonlocaltransport

mom_cvmix_kpp

Apply KPP non-local transport of surface fluxes for a given tracer.

kpp_nonlocaltransport_saln

mom_cvmix_kpp

Apply KPP non-local transport of surface fluxes for salinity.

kpp_nonlocaltransport_temp

mom_cvmix_kpp

Apply KPP non-local transport of surface fluxes for temperature.

kpp_smooth_bld

mom_cvmix_kpp

Apply a 1-1-4-1-1 Laplacian filter one time on BLD to reduce any horizontal two-grid-point noise.

lastnoncommentindex

mom_file_parser

Find position of last character before any comments, As marked by “!”, “//”, or “/*” following F90, C++, or C syntax.

lastnoncommentnonblank

mom_file_parser

Find position of last non-blank character before any comments.

layered_diabatic

mom_diabatic_driver

Imposes the diapycnal mass fluxes and the accompanying diapycnal advection of momentum and tracers using the original MOM6 algorithms.

left_int

mom_string_functions

Returns a character string of a left-formatted integer e.g. “123 “ (assumes 19 digit maximum)

left_ints

mom_string_functions

Returns a character string of a comma-separated, compact formatted, integers e.g. “1, 2, 3, 4”.

left_real

mom_string_functions

Returns a left-justified string with a real formatted like ‘(G)’.

left_reals

mom_string_functions

Returns a character string of a comma-separated, compact formatted, reals e.g. “1., 2., 5*3., 5.E2”.

limit_mass_flux_3d

mom_offline_aux

This routine limits the mass fluxes so that the a layer cannot be completely depleted. NOTE: Only used in non-ALE mode.

limit_topography

mom_shared_initialization

limit_topography ensures that min_depth < D(x,y) < max_depth

linear_solver

regrid_solvers

Solve the linear system AX = R by Gaussian elimination.

loc_mom_err

mom_error_handler

A private routine through which all error/warning/note messages are written by this module.

localtesti

mom_string_functions

True if i1 is not equal to i2. False otherwise.

localtestr

mom_string_functions

True if r1 is not equal to r2. False otherwise.

localtests

mom_string_functions

True if str1 does not match str2. False otherwise.

lock_check

mom_restart

Issue an error message if the restart_registry is locked.

lock_exchange_initialize_thickness

lock_exchange_initialization

This subroutine initializes layer thicknesses for the lock_exchange experiment.

lock_tracer_registry

mom_tracer_registry

This subroutine locks the tracer registry to prevent the addition of more tracers. After locked=.true., can then register common diagnostics.

log_available_diag

mom_diag_mediator

Log a diagnostic to the available diagnostics file.

log_available_diag

mom_is_diag_mediator

Log a diagnostic to the available diagnostics file.

log_chksum_diag

mom_diag_mediator

Log the diagnostic chksum to the chksum diag file.

log_chksum_diag

mom_is_diag_mediator

Log the diagnostic chksum to the chksum diag file.

log_error_trace

marbl_logging

dummy trace routine

log_param_char

mom_file_parser

Log the name and value of a character string model parameter in documentation files.

log_param_int

mom_file_parser

Log the name and value of an integer model parameter in documentation files.

log_param_int_array

mom_file_parser

Log the name and values of an array of integer model parameter in documentation files.

log_param_logical

mom_file_parser

Log the name and value of a logical model parameter in documentation files.

log_param_real

mom_file_parser

Log the name and value of a real model parameter in documentation files.

log_param_real_array

mom_file_parser

Log the name and values of an array of real model parameter in documentation files.

log_param_time

mom_file_parser

This subroutine writes the value of a time-type parameter to a log file, along with its name and the module it came from.

log_version_cs

mom_file_parser

Log the version of a module to a log file and/or stdout, and/or to the parameter documentation file.

log_version_plain

mom_file_parser

Log the version of a module to a log file and/or stdout.

logical_string

mom_document

This function returns a string with an logical formatted like ‘(L)’.

longjmp

posix

Restore program to state saved by

longjmp_missing

posix

Placeholder function for a missing or unconfigured longjmp.

lookup_ohlmann_opacity

mom_opacity

Get the opacity (decay scale) from Ohlmann lookup table.

lookup_ohlmann_swpen

mom_opacity

Get the partion of total solar into bands from Ohlmann lookup table.

lookup_seg_field

mom_open_boundary

Return the field number on the segment for the named field, or -1 if there is no field with that name.

lowercase

mom_string_functions

Return a string in which all uppercase letters have been replaced by their lowercase counterparts.

ls_error

recon1d_plm_wls

Returns local least squares error for a particular cell.

make_frazil

mom_diabatic_aux

Frazil formation keeps the temperature above the freezing point. This subroutine warms any water that is colder than the (currently surface) freezing point up to the freezing point and accumulates the required heat (in [Q R Z ~> J m-2]) in tvfrazil.

map_model_time_to_forcing_time

mom_interpolate

If necessary, apply an offset to convert from model time to forcing time and then ensure result is within acceptable bounds.

marbl_forcing_from_data_override

mom_surface_forcing

Sets the necessary MARBL forcings via the data override facility.

marbl_forcing_init

marbl_forcing_mod

marbl_tracers_column_physics

marbl_tracers

This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file.

marbl_tracers_end

marbl_tracers

Clean up any allocated memory after the run.

marbl_tracers_get

marbl_tracers

Copy the requested interior tendency output field into an array.

marbl_tracers_set_forcing

marbl_tracers

This subroutine reads time-varying forcing from files.

marbl_tracers_stock

marbl_tracers

This function calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.

marbl_tracers_surface_state

marbl_tracers

This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations.

marine_ice_init

mom_marine_ice

Initialize control structure for MOM_marine_ice.

mark_available

mom_diag_buffers

Mark a slot in the buffer as unused based on a diagnostic id. For example, the data in that slot has already been consumed and can thus be overwritten.

mark_unstable_cells

mom_neutral_diffusion

Sweep down through the column and mark as stable if the bottom interface of a cell is denser than the top.

mask_near_bottom_vel

mom_ale

Zero out velocities in a column in very thin layers near the seafloor.

mask_outside_obcs

mom_open_boundary

Find the region outside of all open boundary segments and make sure it is set to land mask. Gonna need to know global land mask as well to get it right…

masked_var_grounded

mom_ice_shelf_dynamics

multiplies a variable with the ice sheet grounding fraction

matrix_diagonal

mom_ice_shelf_dynamics

returns the diagonal entries of the matrix for a Jacobi preconditioning

max_input_line_length

mom_file_parser

This function returns the maximum number of characters in any input lines after they have been combined by any line continuation.

measure_input_bounds

mom_remapping

Measure totals and bounds on source grid.

measure_output_bounds

mom_remapping

Measure totals and bounds on destination grid.

mech_forcing_diags

mom_forcing_type

Offer mechanical forcing fields for diagnostics for those fields registered as part of register_forcing_type_diags.

mech_forcing_singlepointprint

mom_forcing_type

Write out values of the mechanical forcing arrays at the i,j location. This is a debugging tool.

mechanical_entrainment

mom_bulk_mixed_layer

This subroutine calculates mechanically driven entrainment.

meke_alloc_register_restart

mom_meke

Allocates memory and register restart fields for the MOM_MEKE module.

meke_end

mom_meke

Deallocates any variables allocated in MEKE_alloc_register_restart.

meke_equilibrium

mom_meke

Calculates the equilibrium solution where the source depends only on MEKE diffusivity and there is no lateral diffusion of MEKE. Results is in MEKEMEKE.

meke_equilibrium_restoring

mom_meke

meke_init

mom_meke

Initializes the MOM_MEKE module and reads parameters. Returns True if module is to be used, otherwise returns False.

meke_lengthscales

mom_meke

Calculates the eddy mixing length scale and

meke_lengthscales_0d

mom_meke

Calculates the eddy mixing length scale and

merge_interfaces

mom_hor_bnd_diffusion

Given layer thicknesses (and corresponding interfaces) and BLDs in two adjacent columns, return a set of 1-d layer thicknesses whose interfaces cover all interfaces in the left and right columns plus the two BLDs. This can be used to accurately remap tracer tendencies in both columns.

merid_flux_en

mom_internal_tides

Evaluates the meridional mass or volume fluxes in a layer.

merid_flux_layer

mom_continuity_ppm

Evaluates the meridional mass or volume fluxes in a layer.

meridional_bt_mass_flux

mom_continuity_ppm

Calculates the vertically integrated mass or volume fluxes through the meridional faces.

meridional_edge_thickness

mom_continuity_ppm

Set the reconstructed thicknesses at the eastern and western edges of tracer cells.

meridional_flux_adjust

mom_continuity_ppm

Returns the barotropic velocity adjustment that gives the desired barotropic (layer-summed) transport.

meridional_flux_thickness

mom_continuity_ppm

Sets the effective interface thickness associated with the fluxes at each meridional velocity point, optionally scaling back these thicknesses to account for viscosity and fractional open areas.

meridional_mass_flux

mom_continuity_ppm

Calculates the mass or volume fluxes through the meridional faces, and other related quantities.

mesghasbeendocumented

mom_document

Returns true if documentation has already been written.

meshgrid

mom_horizontal_regridding

Create a 2d-mesh of grid coordinates from 1-d arrays.

meso_buoyancy_forcing

meso_surface_forcing

This subroutine sets up the MESO buoyancy forcing, which uses control-theory style specification restorative buoyancy fluxes at large scales.

meso_surface_forcing_init

meso_surface_forcing

Initialize the MESO surface forcing module.

minmod_limiter

mom_internal_tides

Limits the left/right edge values using the simple minmod limiter written in a way that avoids branching in favor of intrinsics.

mixbits

mom_random

Merge bits of u and v.

mixedlayer_convection

mom_bulk_mixed_layer

This subroutine causes the mixed layer to entrain to the depth of free convection. The depth of free convection is the shallowest depth at which the fluid is denser than the average of the fluid above.

mixedlayer_detrain_1

mom_bulk_mixed_layer

This subroutine moves any water left in the former mixed layers into the single buffer layers and may also move buffer layer water into the interior isopycnal layers.

mixedlayer_detrain_2

mom_bulk_mixed_layer

This subroutine moves any water left in the former mixed layers into the two buffer layers and may also move buffer layer water into the interior isopycnal layers.

mixedlayer_restrat

mom_mixed_layer_restrat

Driver for the mixed-layer restratification parameterization. The code branches between two different implementations depending on whether the bulk-mixed layer or a general coordinate are in use.

mixedlayer_restrat_bml

mom_mixed_layer_restrat

Calculates a restratifying flow assuming a 2-layer bulk mixed layer.

mixedlayer_restrat_bodner

mom_mixed_layer_restrat

Calculates a restratifying flow in the mixed layer, following the formulation used in Bodner et al., 2023 (B22)

mixedlayer_restrat_init

mom_mixed_layer_restrat

Initialize the mixed layer restratification module.

mixedlayer_restrat_om4

mom_mixed_layer_restrat

Calculates a restratifying flow in the mixed layer, following the formulation used in OM4.

mixedlayer_restrat_register_restarts

mom_mixed_layer_restrat

Allocate and register fields in the mixed layer restratification structure for restarts.

mixedlayer_restrat_unit_tests

mom_mixed_layer_restrat

Returns true if a unit test of functions in MOM_mixedlayer_restrat fail. Returns false otherwise.

mkdir

posix

Create a file directory.

ml_meke_calculate_features

mom_meke

Calculate the various features used for the machine learning prediction.

ml_meke_init

mom_meke

Initializer for the variant of MEKE that uses ML to predict eddy kinetic energy.

modify_vardesc

mom_io

This routine modifies the named elements of a vardesc type. All arguments are optional, except the vardesc type to be modified.

modulo_around_point

mom_shared_initialization

Return the modulo value of x in an interval [xc-(Lx/2) xc+(Lx/2)] If Lx<=0, then it returns x without applying modulo arithmetic.

mom_accel_chksum

mom_checksum_packages

Write out chksums for the model’s accelerations.

mom_calc_vart

mom_stoch_eos

Computes a parameterization of the SGS temperature variance.

mom_calculate_grad_coriolis

mom_shared_initialization

Calculates the components of grad f (Coriolis parameter)

mom_checksums_init

mom_checksums

MOM_checksums_init initializes the MOM_checksums module. As it happens, the only thing that it does is to log the version of this module.

mom_debugging_init

mom_debugging

MOM_debugging_init initializes the MOM_debugging module, and sets the parameters that control which checks are active for MOM6.

mom_define_layout

mom_domains

Given a global array size and a number of (logical) processors, provide a layout of the processors in the two directions where the total number of processors is the product of the two layouts and number of points in the partitioned arrays are as close as possible to an aspect ratio of 1.

mom_diagnostics_end

mom_diagnostics

Deallocate memory associated with the diagnostics module.

mom_diagnostics_init

mom_diagnostics

This subroutine registers various diagnostics and allocates space for fields that other diagnostics depend upon.

mom_domains_init

mom_domains

These encoding constants are used to indicate the staggering of scalars and vectors.

mom_end

mom

End of ocean model, including memory deallocation.

mom_error

mom_error_handler

This provides a convenient interface for writing an error message with run-time filter based on a verbosity and the severity of the error.

mom_forcing_chksum

mom_forcing_type

Write out chksums for thermodynamic fluxes.

mom_generic_flux_init

mom_generic_tracer

mom_generic_tracer_column_physics

mom_generic_tracer

Column physics for generic tracers. Get the coupler values for generic tracers that exchange with atmosphere Update generic tracer concentration fields from sources and sinks. Vertically diffuse generic tracer concentration fields. Update generic tracers from bottom and their bottom reservoir.

mom_generic_tracer_fluxes_accumulate

mom_generic_tracer

mom_generic_tracer_get

mom_generic_tracer

Copy the requested tracer into an array.

mom_generic_tracer_min_max

mom_generic_tracer

This subroutine finds the global min and max of either of all available tracer concentrations, or of a tracer that is being requested specifically, returning the number of tracers it has evaluated. It also optionally returns the locations of the extrema.

mom_generic_tracer_stock

mom_generic_tracer

This subroutine calculates mass-weighted integral on the PE either of all available tracer concentrations, or of a tracer that is being requested specifically, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.

mom_generic_tracer_surface_state

mom_generic_tracer

This subroutine calculates the surface state and sets coupler values for those generic tracers that have flux exchange with atmosphere.

mom_get_verbosity

mom_error_handler

This subroutine gets the level of verbosity filtering MOM error messages.

mom_grid_end

mom_grid

Release memory used by the

mom_grid_init

mom_grid

MOM_grid_init initializes the ocean grid array sizes and grid memory.

mom_initialize_coord

mom_coord_initialization

MOM_initialize_coord sets up time-invariant quantities related to MOM6’s vertical coordinate.

mom_initialize_fixed

mom_fixed_initialization

MOM_initialize_fixed sets up time-invariant quantities related to MOM6’s horizontal grid, bathymetry, and the Coriolis parameter.

mom_initialize_obcs

mom_state_initialization

mom_initialize_rotation

mom_shared_initialization

MOM_initialize_rotation makes the appropriate call to set up the Coriolis parameter.

mom_initialize_state

mom_state_initialization

Initialize temporally evolving fields, either as initial conditions or by reading them from a restart (or saves) file.

mom_initialize_topography

mom_fixed_initialization

MOM_initialize_topography makes the appropriate call to set up the bathymetry in units of [Z ~> m].

mom_initialize_tracer_from_z

mom_tracer_initialization_from_z

Initializes a tracer from a z-space data file, including any lateral regridding that is needed.

mom_io_init

mom_io

Initialize the MOM_io module.

mom_is_diag_mediator_close_registration

mom_is_diag_mediator

Prevent the registration of additional diagnostics, so that the creation of files can occur.

mom_is_diag_mediator_end

mom_is_diag_mediator

Deallocate memory associated with the MOM_IS diag mediator.

mom_is_diag_mediator_infrastructure_init

mom_is_diag_mediator

This subroutine initializes the diag_manager via the MOM6 infrastructure.

mom_is_diag_mediator_init

mom_is_diag_mediator

Initialize the MOM_IS diag_mediator and opens the available diagnostics file, if appropriate.

mom_is_diag_send_complete

mom_is_diag_mediator

Finishes the diag manager reduction methods as needed for the time_step.

mom_mech_forcing_chksum

mom_forcing_type

Write out chksums for the driving mechanical forces.

mom_mesg

mom_error_handler

This provides a convenient interface for writing an informative comment, depending on the model’s current verbosity setting and the verbosity level for this message.

mom_read_data_0d

mom_io

Read a scalar from file using infrastructure I/O.

mom_read_data_0d_int

mom_io

Read a scalar integer from file using infrastructure I/O.

mom_read_data_1d

mom_io

Read a 1d array from file using infrastructure I/O.

mom_read_data_1d_int

mom_io

Read a 1d integer array from file using infrastructure I/O.

mom_read_data_2d

mom_io

Read a 2d array from file using infrastructure I/O.

mom_read_data_2d_region

mom_io

Read a 2d region array from file using infrastructure I/O.

mom_read_data_3d

mom_io

Read a 3d array from file using infrastructure I/O.

mom_read_data_3d_region

mom_io

Read a 3d region array from file using infrastructure I/O.

mom_read_data_4d

mom_io

Read a 4d array from file using infrastructure I/O.

mom_read_vector_2d

mom_io

Read a 2d vector tuple from file using infrastructure I/O.

mom_read_vector_3d

mom_io

Read a 3d vector tuple from file using infrastructure I/O.

mom_set_verbosity

mom_error_handler

This subroutine sets the level of verbosity filtering MOM error messages.

mom_shared_init_init

mom_shared_initialization

MOM_shared_init_init just writes the code version.

mom_state_chksum_3arg

mom_checksum_packages

Write out chksums for the model’s basic state variables.

mom_state_chksum_5arg

mom_checksum_packages

Write out chksums for the model’s basic state variables, including transports.

mom_state_init_tests

mom_state_initialization

Run simple unit tests.

mom_state_is_synchronized

mom

Return true if all phases of step_MOM are at the same point in time.

mom_state_stats

mom_checksum_packages

Monitor and write out statistics for the model’s state variables.

mom_stoch_eos_init

mom_stoch_eos

Initializes MOM_stoch_eos module, returning a logical indicating whether this module will be used.

mom_stoch_eos_run

mom_stoch_eos

Generates a pattern in space and time for the ocean stochastic equation of state.

mom_sum_output_end

mom_sum_output

MOM_sum_output_end deallocates memory used by the MOM_sum_output module.

mom_sum_output_init

mom_sum_output

MOM_sum_output_init initializes the parameters and settings for the MOM_sum_output module.

mom_surface_chksum

mom_checksum_packages

Write out chksums for the ocean surface variables.

mom_temp_salt_initialize_from_z

mom_state_initialization

This subroutine determines the isopycnal or other coordinate interfaces and layer potential temperatures and salinities directly from a z-space file on a latitude-longitude grid.

mom_thermo_chksum

mom_checksum_packages

Write out chksums for the model’s thermodynamic state variables.

mom_thermovar_chksum

mom_variables

Diagnostic checksums on various elements of a

mom_timing_init

mom

Set up CPU clock IDs for timing various subroutines.

mom_verbose_enough

mom_error_handler

This tests whether the level of verbosity filtering MOM error messages is sufficient to write a message of verbosity level verb.

mom_wave_interface_init

mom_wave_interface

Initializes parameters related to MOM_wave_interface.

mom_write_cputime_end

mom_write_cputime

Close the MOM_write_cputime module.

mom_write_cputime_init

mom_write_cputime

Initialize the MOM_write_cputime module.

mom_write_field_0d

mom_io

Write a 0d field to an output file.

mom_write_field_1d

mom_io

Write a 1d field to an output file.

mom_write_field_2d

mom_io

Write a 2d field to an output file, potentially with rotation.

mom_write_field_3d

mom_io

Write a 3d field to an output file, potentially with rotation.

mom_write_field_4d

mom_io

Write a 4d field to an output file, potentially with rotation.

mom_write_field_legacy_0d

mom_io

Write a 0d field to an output file.

mom_write_field_legacy_1d

mom_io

Write a 1d field to an output file.

mom_write_field_legacy_2d

mom_io

Write a 2d field to an output file, potentially with rotation.

mom_write_field_legacy_3d

mom_io

Write a 3d field to an output file, potentially with rotation.

mom_write_field_legacy_4d

mom_io

Write a 4d field to an output file, potentially with rotation.

monotonize_cubic

p3m_functions

Monotonize a cubic curve by modifying the edge slopes.

mstar_langmuir

mom_energetic_pbl

This subroutine modifies the mstar value if the Langmuir number is present.

mu

mom_mixed_layer_restrat

Stream function shape as a function of non-dimensional position within mixed-layer [nondim].

murmurhash3_i32

mom_murmur_hash

Return the murmur3 hash for a 32-bit integer array.

murmurhash3_i64

mom_murmur_hash

Return the murmur3 hash for a 64-bit integer array.

murmurhash3_r32

mom_murmur_hash

Return the murmur3 hash for a 32-bit real array.

murmurhash3_r32_1d

mom_murmur_hash

Return the murmur3 hash for a 32-bit real array.

murmurhash3_r32_2d

mom_murmur_hash

Return the murmur3 hash for a 32-bit real 2D array.

murmurhash3_r32_3d

mom_murmur_hash

Return the murmur3 hash for a 32-bit real 3D array.

murmurhash3_r32_4d

mom_murmur_hash

Return the murmur3 hash for a 32-bit real 4D array.

murmurhash3_r64

mom_murmur_hash

Return the murmur3 hash for a 64-bit real array.

murmurhash3_r64_1d

mom_murmur_hash

Return the murmur3 hash for a 64-bit real array.

murmurhash3_r64_2d

mom_murmur_hash

Return the murmur3 hash for a 64-bit real 2D array.

murmurhash3_r64_3d

mom_murmur_hash

Return the murmur3 hash for a 64-bit real 3D array.

murmurhash3_r64_4d

mom_murmur_hash

Return the murmur3 hash for a 64-bit real 4D array.

myalloc_2d

mom_forcing_type

Allocates and zeroes-out array.

myalloc_3d

mom_forcing_type

mystats

mom_horizontal_regridding

Write to the terminal some basic statistics about the k-th level of an array.

naive_sum_2d

mom_array_transform

Do a naive non-rotationally symmetric sum of a 2-d array. This function is only here for testing.

ndiff_unit_tests_continuous

mom_neutral_diffusion

Returns true if unit tests of neutral_diffusion functions fail. Otherwise returns false.

ndiff_unit_tests_discontinuous

mom_neutral_diffusion

near_boundary_unit_tests

mom_hor_bnd_diffusion

Unit tests for near-boundary horizontal mixing.

neutral_diffusion

mom_neutral_diffusion

Update tracer concentration due to neutral diffusion; layer thickness unchanged by this update.

neutral_diffusion_calc_coeffs

mom_neutral_diffusion

Calculate remapping factors for u/v columns used to map adjoining columns to a shared coordinate space.

neutral_diffusion_end

mom_neutral_diffusion

Deallocates neutral_diffusion control structure.

neutral_diffusion_init

mom_neutral_diffusion

Read parameters and allocate control structure for neutral_diffusion module.

neutral_diffusion_unit_tests

mom_neutral_diffusion

Returns true if unit tests of neutral_diffusion functions fail. Otherwise returns false.

neutral_surface_flux

mom_neutral_diffusion

Returns a single column of neutral diffusion fluxes of a tracer.

neutral_surface_t_eval

mom_neutral_diffusion

Evaluate various parts of the reconstructions to calculate gradient-based flux limiter.

neverworld_initialize_thickness

neverworld_initialization

This subroutine initializes layer thicknesses for the Neverworld test case, by finding the depths of interfaces in a specified latitude-dependent temperature profile with an exponentially decaying thermocline on top of a linear stratification.

neverworld_initialize_topography

neverworld_initialization

This subroutine sets up the Neverworld test case topography.

neverworld_wind_forcing

mom_surface_forcing

Sets the surface wind stresses, forcestaux and forcestauy for the Neverworld forcing configuration.

new_randomnumbersequence

mom_random

Return an initialized twister using seed.

next_modulo_time

mom_offline_aux

Calculates the next timelevel to read from the input fields. This allows the ‘looping’ of the fields.

nextstate

mom_random

Update internal state of twister to the next state in the sequence.

nodal_fu

mom_tidal_forcing

Find amplitude (f) and phase (u) modulation of tidal constituents by the 18.6 year nodal cycle. Values here follow Table I.6 in Kowalik and Luick, “Modern Theory and Practice of Tide Analysis and Tidal Power”, 2019.

non_unique_scales

mom_unique_scales

Determine from the list of scaling factors and the unit combinations that are in use whether all these combinations scale uniquely.

ns_coast

basin_builder

A “coast profile” applied in an N-S line from lonC,lat0 to lonC,lat1 [nondim].

ns_coast

neverworld_initialization

A “coast profile” applied in an N-S line from lon0,lat0 to lon0,lat1 [nondim].

ns_conic_ridge

basin_builder

A NS ridge with a cone profile [nondim].

ns_ridge

neverworld_initialization

A NS ridge [nondim].

ns_scurve_ridge

basin_builder

A NS ridge with an scurve profile [nondim].

num_timelevels

mom_io

This function determines how many time levels a variable has in a file.

numerical_testing_type_unit_tests

numerical_testing_type

Tests the testing type itself.

nw2_tracer_column_physics

nw2_tracers

Applies diapycnal diffusion, aging and regeneration at the surface to the NW2 tracers.

nw2_tracer_dist

nw2_tracers

The target value of a NeverWorld2 tracer label m [conc] at non-dimensional position x=lon/Lx, y=lat/Ly, z=eta/H.

nw2_tracers_end

nw2_tracers

Deallocate any memory associated with this tracer package.

obc_register_end

mom_boundary_update

Clean up the OBC registry.

obc_registry_init

mom_open_boundary

This routine include declares and sets the variable “version”.

obsolete_char

mom_obsolete_params

Test for presence of obsolete STRING in parameter file.

obsolete_int

mom_obsolete_params

Test for presence of obsolete INTEGER in parameter file.

obsolete_logical

mom_obsolete_params

Test for presence of obsolete LOGICAL in parameter file.

obsolete_real

mom_obsolete_params

Test for presence of obsolete REAL in parameter file.

ocean_da_core_init

ocean_da_core_mod

Initializes the MOM6 DA driver code.

ocean_model_data1d_get

ocean_model_mod

This subroutine extracts a named scalar field from the ocean surface or public type.

ocean_model_data2d_get

ocean_model_mod

This subroutine extracts a named 2-D field from the ocean surface or public type.

ocean_model_end

ocean_model_mod

ocean_model_end terminates the model run, saving the ocean state in a restart and deallocating any data associated with the ocean.

ocean_model_flux_init

ocean_model_mod

ocean_model_flux_init is used to initialize properties of the air-sea fluxes as determined by various run-time parameters. It can be called from non-ocean PEs, or PEs that have not yet been initialized, and it can safely be called multiple times.

ocean_model_get_uv_surf

ocean_model_mod

This subroutine extracts a named (u- or v-) 2-D surface current from ocean internal state.

ocean_model_init

ocean_model_mod

ocean_model_init initializes the ocean model, including registering fields for restarts and reading restart files if appropriate.

ocean_model_init_sfc

ocean_model_mod

This subroutine extracts the surface properties from the ocean’s internal state and stores them in the ocean type returned to the calling ice model. It has to be separate from the ocean_initialization call because the coupler module allocates the space for some of these variables.

ocean_model_restart

ocean_model_mod

This subroutine writes out the ocean model restart file.

ocean_model_save_restart

ocean_model_mod

ocean_model_save_restart causes restart files associated with the ocean to be written out.

ocean_public_type_chksum

ocean_model_mod

Write out checksums for fields from the ocean surface state.

ocean_register_diag

mom_diag_mediator

Registers a diagnostic using the information encapsulated in the vardesc type argument and returns an integer handle to this diagnostic. That integer handle is negative if the diagnostic is unused.

ocean_stock_pe

ocean_model_mod

Ocean_stock_pe - returns the integrated stocks of heat, water, etc. for conservation checks. Because of the way FMS is coded, only the root PE has the integrated amount, while all other PEs get 0.

ocmip2_cfc_column_physics

mom_ocmip2_cfc

This subroutine applies diapycnal diffusion, souces and sinks and any other column tracer physics or chemistry to the OCMIP2 CFC tracers. CFCs are relatively simple, as they are passive tracers with only a surface flux as a source.

ocmip2_cfc_end

mom_ocmip2_cfc

Deallocate any memory associated with the OCMIP2 CFC tracer package.

ocmip2_cfc_stock

mom_ocmip2_cfc

This function calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.

ocmip2_cfc_surface_state

mom_ocmip2_cfc

This subroutine extracts the surface CFC concentrations and other fields that are shared with the atmosphere to calculate CFC fluxes.

oda

mom_oda_driver_mod

Gather observations and call ODA routines.

oda_end

mom_oda_driver_mod

Finalize DA module.

oda_incupd_end

mom_oda_incupd

This subroutine deallocates any memory associated with the oda_incupd module.

offline_add_diurnal_sw

mom_offline_aux

add_diurnal_SW adjusts the shortwave fluxes in an forcying_type variable to add a synthetic diurnal cycle. Adapted from SIS2

offline_advection_ale

mom_offline_main

3D advection is done by doing flux-limited nonlinear horizontal advection interspersed with an ALE regridding/remapping step. The loop in this routine is exited if remaining residual transports are below a runtime-specified value or a maximum number of iterations is reached.

offline_advection_layer

mom_offline_main

When in layer mode, 3D horizontal advection using stored mass fluxes must be used. Horizontal advection is done via tracer_advect, whereas the vertical component is actually handled by vertdiff in tracer_column_fns.

offline_diabatic_ale

mom_offline_main

The vertical/diabatic driver for offline tracers. First the eatr/ebtr associated with the interpolated vertical diffusivities are calculated and then any tracer column functions are done which can include vertical diffuvities and source/sink terms.

offline_fw_fluxes_into_ocean

mom_offline_main

Apply positive freshwater fluxes (into the ocean) and update netMassOut with only the negative (out of the ocean) fluxes.

offline_fw_fluxes_out_ocean

mom_offline_main

Apply negative freshwater fluxes (out of the ocean)

offline_redistribute_residual

mom_offline_main

In the case where the main advection routine did not converge, something needs to be done with the remaining transport. Two different ways are offered, ‘barotropic’ means that the residual is distributed equally throughout the water column. ‘upwards’ attempts to redistribute the transport in the layers above and will eventually work down the entire water column.

offline_transport_end

mom_offline_main

Deallocates (if necessary) arrays within the offline control structure.

offline_transport_init

mom_offline_main

Initializes the control structure for offline transport and reads in some of the.

oil_stock

oil_tracer

Calculate the mass-weighted integral of the oil tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.

oil_tracer_column_physics

oil_tracer

Apply sources, sinks, diapycnal mixing and rising motions to the oil tracers.

oil_tracer_end

oil_tracer

Deallocate memory associated with this tracer package.

oil_tracer_surface_state

oil_tracer

This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler.

old_inflate_layers_1d

coord_rho

Inflate vanished layers to finite (nonzero) width.

one_minus_exp

mom_wave_interface

Return the value of (1 - exp(-x)) [nondim], using an accurate expression for small values of x.

one_minus_exp_x

mom_wave_interface

Return the value of (1 - exp(-x))/x [nondim], using an accurate expression for small values of x.

only_read_restart_field_2d

mom_restart

Try to read a named 2-d field from the restart files.

only_read_restart_field_3d

mom_restart

Try to read a named 3-d field from the restart files.

only_read_restart_field_4d

mom_restart

Try to read a named 4-d field from the restart files.

only_read_restart_pair_3d

mom_restart

Try to read a named 3-d field from the restart files.

opacity_end

mom_opacity

opacity_from_chl

mom_opacity

This sets the “blue” band opacity based on chlorophyll A concentrations The red portion is lumped into the net heating at the surface.

opacity_init

mom_opacity

This routine initializes the opacity module, including an

opacity_morel

mom_opacity

This sets the blue-wavelength opacity according to the scheme proposed by Morel and Antoine (1994).

open_boundary_apply_normal_flow

mom_open_boundary

Applies OBC values stored in segments to 3d u,v fields.

open_boundary_config

mom_open_boundary

Enables OBC module and reads configuration parameters This routine is called from MOM_initialize_fixed which occurs before the initialization of the vertical coordinate and ALE_init. Therefore segment data are not fully initialized here. The remainder of the segment data are initialized in a later call to update_open_boundary_data.

open_boundary_dealloc

mom_open_boundary

Deallocate open boundary data.

open_boundary_end

mom_open_boundary

Close open boundary data.

open_boundary_halo_update

mom_open_boundary

Do any necessary halo updates on OBC-related fields.

open_boundary_impose_land_mask

mom_open_boundary

Reconcile masks and open boundaries, deallocate OBC on PEs where it is not needed. Also adjust u- and v-point cell area on specified open boundaries and mask all points outside open boundaries.

open_boundary_impose_normal_slope

mom_open_boundary

Sets the slope of bathymetry normal to an open boundary to zero.

open_boundary_query

mom_open_boundary

open_boundary_register_restarts

mom_open_boundary

Register OBC segment data for restarts.

open_boundary_setup_vert

mom_open_boundary

Setup vertical remapping for open boundaries.

open_boundary_test_extern_h

mom_open_boundary

Set thicknesses outside of open boundaries to silly values (used for checking the interior state is independent of values outside of the domain).

open_boundary_test_extern_uv

mom_open_boundary

Set tangential velocities outside of open boundaries to silly values (used for checking the interior state is independent of values outside of the domain).

open_boundary_zero_normal_flow

mom_open_boundary

Applies zero values to 3d u,v fields on OBC segments.

open_doc_file

mom_document

This subroutine allocates and populates a structure that controls where the documentation occurs and its formatting, and opens up the files controlled by this structure.

open_file_infra

mom_io_file

Open a MOM framework file.

open_file_nc

mom_io_file

Open a MOM netCDF file.

open_file_to_read

mom_io

Open a netcdf file for reading, with error handling.

open_namelist_file

mom_io

Open a single namelist file that is potentially readable by all PEs.

open_netcdf_file

mom_netcdf

open_param_file

mom_file_parser

Make the contents of a parameter input file available in a

open_profile_file

write_ocean_obs_mod

Open a profile file.

open_restart_units

mom_restart

open_restart_units determines the number of existing restart files and optionally opens them and returns unit ids, paths and whether the files are global or spatially decomposed.

openmultilinecomment

mom_file_parser

Return True if a /* appears on this line without a closing */.

openparameterblock

mom_file_parser

Tags blockName onto the end of the active parameter block name.

optics_nbands

mom_opacity

Return the number of bands of penetrating shortwave radiation.

order2index

mom_spherical_harmonics

Calculates the one-dimensional index number at (n=0, m=m), given order m and maximum degree Nd. It is sequenced with degree (n) changing first and order (m) changing second.

output_oda_incupd_inc

mom_oda_incupd

Output increment if using full fields for the oda_incupd module.

overridewarninghasbeenissued

mom_file_parser

Returns true if an override warning has been issued for the variable varName.

p1m_boundary_extrapolation

p1m_functions

Interpolation by linear polynomials within boundary cells.

p1m_interpolation

p1m_functions

Linearly interpolate between edge values.

p3m_boundary_extrapolation

p3m_functions

Calculate the edge values and slopes at boundary cells as part of building a piecewise cubic sub-grid scale profiles.

p3m_interpolation

p3m_functions

Set up a piecewise cubic interpolation from cell averages and estimated edge slopes and values.

p3m_limiter

p3m_functions

Adust a piecewise cubic reconstruction with a limiter that adjusts the edge values and slopes.

parse_for_tracer_reservoirs

mom_open_boundary

Parse all the OBC_SEGMENT_%%_DATA strings again to see which need tracer reservoirs (all pes need to know).

parse_segment_data_str

mom_open_boundary

Parse an OBC_SEGMENT_%%_DATA string.

parse_segment_manifest_str

mom_open_boundary

Parse an OBC_SEGMENT_%%_DATA string and determine its fields.

parse_segment_str

mom_open_boundary

Parse an OBC_SEGMENT_%%% string.

particles_end

mom_particles_mod

Deallocate all memory and disassociated pointer.

particles_init

mom_particles_mod

Initializes particles container “parts”.

particles_run

mom_particles_mod

The main driver the steps updates particles.

particles_save_restart

mom_particles_mod

Save particle locations (and sometimes other vars) to restart file.

particles_to_k_space

mom_particles_mod

particles_to_z_space

mom_particles_mod

pcm_reconstruction

pcm_functions

Reconstruction by constant polynomials within each cell. There is nothing to do but this routine is provided to ensure a homogeneous interface throughout the regridding toolbox.

periodic_int

mom_controlled_forcing

This function maps rval into an integer in the range from 1 to num_period.

periodic_real

mom_controlled_forcing

This function shifts rval by an integer multiple of num_period so that 0 <= val_out < num_period.

phillips_initialize_sponges

phillips_initialization

Sets up the inverse restoration time (Idamp), and the values towards which the interface heights and an arbitrary number of tracers should be restored within each sponge for the Phillips model test case.

phillips_initialize_thickness

phillips_initialization

Initialize the thickness field for the Phillips model test case.

phillips_initialize_topography

phillips_initialization

Initialize topography.

phillips_initialize_velocity

phillips_initialization

Initialize the velocity fields for the Phillips model test case.

plm_boundary_extrapolation

plm_functions

Reconstruction by linear polynomials within boundary cells.

plm_diff

mom_neutral_diffusion

Returns PLM slopes for a column where the slopes are the difference in value across each cell. The limiting follows equation 1.8 in Colella & Woodward, 1984: JCP 54, 174-201.

plm_extrapolate_slope

plm_functions

Returns a PLM slope using h2 extrapolation from a cell to the left, in the same arbitrary units as the input values [A]. Use the negative to extrapolate from the cell to the right.

plm_extrapolate_slope

recon1d_emplm_wa_poly

Returns a PLM slope using h2 extrapolation from a cell to the left, in the same arbitrary units as the input values [A]. Use the negative to extrapolate from the cell to the right.

plm_extrapolate_slope

recon1d_emplm_wa

Returns a PLM slope using h2 extrapolation from a cell to the left, in the same arbitrary units as the input values [A]. Use the negative to extrapolate from the cell to the right.

plm_monotonized_slope

plm_functions

Returns a limited PLM slope following Colella and Woodward 1984, in the same arbitrary units as the input values [A].

plm_monotonized_slope

recon1d_mplm_wa

Returns a limited PLM slope following Colella and Woodward 1984, in the same arbitrary units as the input values [A].

plm_monotonized_slope

recon1d_mplm_wa_poly

Returns a limited PLM slope following Colella and Woodward 1984, in the same arbitrary units as the input values [A].

plm_reconstruction

plm_functions

Reconstruction by linear polynomials within each cell.

plm_slope_cw

plm_functions

Returns a limited PLM slope following Colella and Woodward 1984, in the same arbitrary units as the input values [A].

plm_slope_wa

plm_functions

Returns a limited PLM slope following White and Adcroft, 2008, in the same arbitrary units [A] as the input values. Note that this is not the same as the Colella and Woodward method.

plm_slope_wa

recon1d_mplm_wa

Returns a limited PLM slope following White and Adcroft, 2008, in the same arbitrary units [A] as the input values. Note that this is not the same as the Colella and Woodward method.

plm_slope_wa

recon1d_mplm_wa_poly

Returns a limited PLM slope following White and Adcroft, 2008, in the same arbitrary units [A] as the input values. Note that this is not the same as the Colella and Woodward method.

pointaccel_init

mom_pointaccel

This subroutine initializes the parameters regulating how truncations are logged.

popblocklevel

mom_file_parser

Truncates block name (shallower level of parameter block)

populate_param_data

mom_file_parser

Read the contents of a parameter input file, and store the contents in a

porous_barriers_init

mom_porous_barriers

porous_widths_interface

mom_porous_barriers

subroutine to assign porous barrier widths at the layer interfaces

porous_widths_layer

mom_porous_barriers

subroutine to assign porous barrier widths averaged over a layer

position_from_horgrid

mom_io

post_data_0d

mom_diag_mediator

Make a real scalar diagnostic available for averaging or output.

post_data_1d_k

mom_diag_mediator

Make a real 1-d array diagnostic available for averaging or output.

post_data_2d

mom_diag_mediator

Make a real 2-d array diagnostic available for averaging or output.

post_data_2d_low

mom_diag_mediator

Make a real 2-d array diagnostic available for averaging or output using a

post_data_2d_low

mom_is_diag_mediator

Make a real 2-d array diagnostic available for averaging or output using a

post_data_3d

mom_diag_mediator

Make a real 3-d array diagnostic available for averaging or output.

post_data_3d_by_column

mom_diag_mediator

Put data into the buffer for a diagnostic one column at a time.

post_data_3d_by_point

mom_diag_mediator

Put data into the buffer for a diagnostic one point at a time.

post_data_3d_final

mom_diag_mediator

Post the final buffer using the standard

post_data_3d_low

mom_diag_mediator

Make a real 3-d array diagnostic available for averaging or output using a

post_diabatic_halo_updates

mom

post_diabatic_halo_updates does halo updates and calculates derived thermodynamic quantities (e.g. specific volume). This must be done after the diabatic step regardless of is ALE cooridinates are used or not.

post_is_data_0d

mom_is_diag_mediator

Make a real ice shelf scalar diagnostic available for averaging or output.

post_is_data_2d

mom_is_diag_mediator

Make a real 2-d array diagnostic available for averaging or output.

post_offline_convergence_diags

mom_offline_main

Posts diagnostics related to offline convergence diagnostics.

post_product_sum_u

mom_diag_mediator

Calculate and write out diagnostics that are the vertical sum of the product of two 3-d arrays at u-points.

post_product_sum_v

mom_diag_mediator

Calculate and write out diagnostics that are the vertical sum of the product of two 3-d arrays at v-points.

post_product_u

mom_diag_mediator

Calculate and write out diagnostics that are the product of two 3-d arrays at u-points.

post_product_v

mom_diag_mediator

Calculate and write out diagnostics that are the product of two 3-d arrays at v-points.

post_stoch_eos_diags

mom_stoch_eos

Write out any diagnostics related to this module.

post_surface_dyn_diags

mom_diagnostics

This routine posts diagnostics of various dynamic ocean surface quantities, including velocities, speed and sea surface height, at the time the ocean state is reported back to the caller.

post_surface_thermo_diags

mom_diagnostics

This routine posts diagnostics of various ocean surface and integrated quantities at the time the ocean state is reported back to the caller.

post_tidal_diagnostics

mom_tidal_mixing

This subroutine offers up diagnostics of the tidal mixing.

post_tracer_diagnostics_at_sync

mom_tracer_registry

Post tracer diganostics when that should only be posted when MOM’s state is self-consistent (also referred to as ‘synchronized’)

post_tracer_transport_diagnostics

mom_tracer_registry

Post the advective and diffusive tendencies.

post_transport_diagnostics

mom_diagnostics

This routine posts diagnostics of the transports, including the subgridscale contributions.

post_xy_average

mom_diag_mediator

Post the horizontally area-averaged diagnostic.

postale_tracer_diagnostics

mom_tracer_registry

pot_temp_to_cons_temp

mom_eos

Converts an array of potential temperatures to conservative temperatures. The input arguments use the dimensionally rescaling as specified within the EOS type. The output potential temperature uses this same scaling, but this can be replaced by the factor given by scale.

potemp_to_constemp

mom_temperature_convert

Convert input potential temperature [degC] and absolute salinity [g kg-1] to returned conservative temperature [degC] using the polynomial expressions from TEOS-10.

ppm_angular_advect

mom_internal_tides

This subroutine calculates the 1-d flux for advection in angular space using a monotonic piecewise parabolic scheme. This needs to be called from within i and j spatial loops.

ppm_ave

mom_neutral_diffusion

Returns the average of a PPM reconstruction between two fractional positions in the same arbitrary concentration units as aMean (e.g. usually [C ~> degC] for temperature)

ppm_boundary_extrapolation

ppm_functions

Reconstruction by parabolas within boundary cells.

ppm_edge

mom_neutral_diffusion

Returns the PPM quasi-fourth order edge value at k+1/2 following equation 1.6 in Colella & Woodward, 1984: JCP 54, 174-201. The returned units are the same as those of Ak (e.g. [C ~> degC] for temperature).

ppm_left_right_edge_values

mom_neutral_diffusion

Discontinuous PPM reconstructions of the left/right edge values within a cell.

ppm_limit_cw84

mom_continuity_ppm

This subroutine limits the left/right edge values of the PPM reconstruction according to the monotonic prescription of Colella and Woodward, 1984.

ppm_limit_pos

mom_internal_tides

Limits the left/right edge values of the PPM reconstruction to give a reconstruction that is positive-definite. Here this is reinterpreted as giving a constant value if the mean value is less than h_min, with a minimum of h_min otherwise.

ppm_limit_pos

mom_continuity_ppm

This subroutine limits the left/right edge values of the PPM reconstruction to give a reconstruction that is positive-definite. Here this is reinterpreted as giving a constant thickness if the mean thickness is less than h_min, with a minimum of h_min otherwise.

ppm_limiter_standard

ppm_functions

Adjusts edge values using the standard PPM limiter (Colella & Woodward, JCP 1984) after first checking that the edge values are bounded by neighbors cell averages and that the edge values are monotonic between cell averages.

ppm_monotonicity

ppm_functions

Adjusts edge values using the original monotonicity constraint (Colella & Woodward, JCP 1984) Based on hybgen_ppm_coefs.

ppm_reconstruction

ppm_functions

Builds quadratic polynomials coefficients from cell mean and edge values.

ppm_reconstruction_x

mom_internal_tides

Calculates left/right edge values for PPM reconstruction in x-direction.

ppm_reconstruction_x

mom_continuity_ppm

Calculates left/right edge values for PPM reconstruction.

ppm_reconstruction_y

mom_internal_tides

Calculates left/right edge valus for PPM reconstruction in y-direction.

ppm_reconstruction_y

mom_continuity_ppm

Calculates left/right edge values for PPM reconstruction.

pqm_boundary_extrapolation

pqm_functions

Reconstruction by parabolas within boundary cells.

pqm_boundary_extrapolation_v1

pqm_functions

Reconstruction by parabolas within boundary cells.

pqm_limiter

pqm_functions

Limit the piecewise quartic method reconstruction.

pqm_reconstruction

pqm_functions

Reconstruction by quartic polynomials within each cell.

prac_saln_to_abs_saln

mom_eos

Converts an array of absolute salinity to practical salinity. The input arguments use the dimensionally rescaling as specified within the EOS type. The output potential temperature uses this same scaling, but this can be replaced by the factor given by scale.

pre_ale_adjustments

mom_ale

Potentially do some preparatory work, such as convective adjustment, to clean up the model state before regridding.

pre_ale_diagnostics

mom_ale

Save any diagnostics of the state before ALE remapping. These diagnostics are mostly used for debugging.

preale_tracer_diagnostics

mom_tracer_registry

predict_meke

mom_meke

Use the machine learning interface to predict EKE.

pressureforce

mom_pressureforce

A thin layer between the model and the Boussinesq and non-Boussinesq pressure force routines.

pressureforce_fv_bouss

mom_pressureforce_fv

Boussinesq analytically-integrated finite volume form of pressure gradient.

pressureforce_fv_init

mom_pressureforce_fv

Initializes the finite volume pressure gradient control structure.

pressureforce_fv_nonbouss

mom_pressureforce_fv

Non-Boussinesq analytically-integrated finite volume form of pressure gradient.

pressureforce_init

mom_pressureforce

Initialize the pressure force control structure.

pressureforce_mont_bouss

mom_pressureforce_mont

Boussinesq Montgomery-potential form of pressure gradient.

pressureforce_mont_init

mom_pressureforce_mont

Initialize the Montgomery-potential form of PGF control structure.

pressureforce_mont_nonbouss

mom_pressureforce_mont

Non-Boussinesq Montgomery-potential form of pressure gradient.

print_marbl_log

marbl_tracers

This subroutine writes the contents of the MARBL log using MOM_error(NOTE, …).

process_and_post_scalar_data

mom_ice_shelf

Post_data calls for ice-sheet scalars.

propagate

mom_internal_tides

Propagates internal waves at a single frequency.

propagate_int_tide

mom_internal_tides

Calls subroutines in this file that are needed to refract, propagate, and dissipate energy density of the internal tide.

propagate_x

mom_internal_tides

Propagates the internal wave energy in the logical x-direction.

propagate_y

mom_internal_tides

Propagates the internal wave energy in the logical y-direction.

pseudo_salt_stock

pseudo_salt_tracer

Calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.

pseudo_salt_tracer_column_physics

pseudo_salt_tracer

Apply sources, sinks and diapycnal diffusion to the tracers in this package.

pseudo_salt_tracer_end

pseudo_salt_tracer

Deallocate memory associated with this tracer package.

pseudo_salt_tracer_surface_state

pseudo_salt_tracer

This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler.

pushblocklevel

mom_file_parser

Extends block name (deeper level of parameter block)

put_dataset

database_client_interface

Store a dataset in the database.

put_setting

marbl_interface

Dummy version of MARBL’s

put_tensor_double_1d

database_client_interface

Put a 64-bit real 1d tensor into the database.

put_tensor_double_2d

database_client_interface

Put a 64-bit real 2d tensor into the database.

put_tensor_double_3d

database_client_interface

Put a 64-bit real 3d tensor into the database.

put_tensor_double_4d

database_client_interface

Put a 64-bit real 4d tensor into the database.

put_tensor_float_1d

database_client_interface

Put a 32-bit real 1d tensor into the database.

put_tensor_float_2d

database_client_interface

Put a 32-bit real 2d tensor into the database.

put_tensor_float_3d

database_client_interface

Put a 32-bit real 3d tensor into the database.

put_tensor_float_4d

database_client_interface

Put a 32-bit real 4d tensor into the database.

put_tensor_int32_1d

database_client_interface

Put a 32-bit integer 1d tensor into the database.

put_tensor_int32_2d

database_client_interface

Put a 32-bit integer 2d tensor into the database.

put_tensor_int32_3d

database_client_interface

Put a 32-bit integer 3d tensor into the database.

put_tensor_int32_4d

database_client_interface

Put a 32-bit integer 4d tensor into the database.

quad_area

mom_ice_shelf_dynamics

Calculate area of quadrilateral.

query_averaging_enabled

mom_diag_mediator

Call this subroutine to determine whether the averaging is currently enabled. .true. is returned if it is.

query_averaging_enabled

mom_is_diag_mediator

Indicate whether averaging diagnostics is currently enabled.

query_compressible

mom_eos

Returns true if the equation of state is compressible (i.e. has pressure dependence)

query_debugging_checks

mom_debugging

Returns logicals indicating which debugging checks should be performed.

query_efp_overflow_error

mom_coms

Returns the status of the module’s error flag.

query_initialized_0d

mom_restart

Indicate whether the field pointed to by f_ptr has been initialized from a restart file.

query_initialized_0d_name

mom_restart

Indicate whether the field stored in f_ptr or with the specified variable name has been initialized from a restart file.

query_initialized_1d

mom_restart

Indicate whether the field pointed to by f_ptr has been initialized from a restart file.

query_initialized_1d_name

mom_restart

Indicate whether the field stored in f_ptr or with the specified variable name has been initialized from a restart file.

query_initialized_2d

mom_restart

Indicate whether the field pointed to by f_ptr has been initialized from a restart file.

query_initialized_2d_name

mom_restart

Indicate whether the field stored in f_ptr or with the specified variable name has been initialized from a restart file.

query_initialized_3d

mom_restart

Indicate whether the field pointed to by f_ptr has been initialized from a restart file.

query_initialized_3d_name

mom_restart

Indicate whether the field stored in f_ptr or with the specified variable name has been initialized from a restart file.

query_initialized_4d

mom_restart

Indicate whether the field pointed to by f_ptr has been initialized from a restart file.

query_initialized_4d_name

mom_restart

Indicate whether the field stored in f_ptr or with the specified variable name has been initialized from a restart file.

query_initialized_name

mom_restart

query_initialized_name determines whether a named field has been successfully read from a restart file or has otherwise been recorded as being initialized.

query_vardesc

mom_io

This routine queries vardesc.

query_wave_properties

mom_wave_interface

This interface provides the caller with information from the waves control structure.

radiation_open_bdry_conds

mom_open_boundary

Apply radiation conditions to 3D u,v at open boundaries.

random_01

mom_random

Returns a random number between 0 and 1.

random_01_cb

mom_random

Returns a random number between 0 and 1 See

random_0d_constructor

mom_random

Constructor for scalar PRNG. Can be used to reset the sequence.

random_2d_01

mom_random

Generates random numbers between 0 and 1 for each cell of the model grid.

random_2d_constructor

mom_random

Constructor for gridded PRNG. Can be used to reset the sequence.

random_2d_norm

mom_random

Returns an approximately normally distributed random number with mean 0 and variance 1 for each cell of the model grid.

random_destruct

mom_random

Destructor for PRNG.

random_norm

mom_random

Returns an approximately normally distributed random number with mean 0 and variance 1.

random_unit_tests

mom_random

Runs some statistical tests on the PRNG.

randomize_layer

mom_ann

Fill a layer with random numbers.

range_ok

user_change_diffusivity

This subroutine checks whether the 4 values of range are in ascending order.

ratio_max

mom_continuity_ppm

Return the maximum ratio of a/b or maxrat.

read_all_input

mom_offline_main

Coordinates the allocation and reading in all time levels of uh, vh, hend, temp, and salt from files. Used when read_all_ts_uvh.

read_attribute_int32

mom_io

Read a 32-bit integer global or variable attribute.

read_attribute_int64

mom_io

Read a 64-bit integer global or variable attribute.

read_attribute_real

mom_io

Read a real global or variable attribute.

read_attribute_str

mom_io

Read a character-string global or variable attribute.

read_depth_list

mom_sum_output

This subroutine reads in the depth list from the specified file and allocates the memory within and sets up DL.

read_face_length_list

mom_shared_initialization

This subroutine reads and counts the non-blank lines in the face length list file, after removing comments.

read_field_chksum_infra

mom_io_file

Interface to read_field_chksum.

read_field_chksum_nc

mom_io_file

Interface to read_field_chksum.

read_netcdf_data_2d

mom_io

Read a 2d array (which might have halos) from a file using native netCDF I/O.

read_netcdf_field

mom_netcdf

Read the values of a field from a netCDF file.

read_obc_segment_data

mom_open_boundary

Read OBC values on the segments from files.

read_param_char

mom_file_parser

This subroutine reads the value of a character string model parameter from a parameter file.

read_param_char_array

mom_file_parser

This subroutine reads the values of an array of character string model parameters from a parameter file.

read_param_int

mom_file_parser

This subroutine reads the value of an integer model parameter from a parameter file.

read_param_int_array

mom_file_parser

This subroutine reads the values of an array of integer model parameters from a parameter file.

read_param_logical

mom_file_parser

This subroutine reads the value of a logical model parameter from a parameter file.

read_param_real

mom_file_parser

This subroutine reads the value of a real model parameter from a parameter file.

read_param_real_array

mom_file_parser

This subroutine reads the values of an array of real model parameters from a parameter file.

read_param_time

mom_file_parser

This subroutine reads the value of a time_type model parameter from a parameter file.

read_tidal_constituents

mom_tidal_mixing

This subroutine reads tidal input energy from a file by constituent.

read_tidal_energy

mom_tidal_mixing

This subroutine read tidal energy inputs from a file.

read_var_sizes

mom_io

read_var_sizes returns the number and size of dimensions associated with a variable in a file. If the variable is not in the file the returned sizes are all 0 and ndims is -1. Every processor for which this is called does the reading.

read_variable_0d

mom_io

Read a real scalar variable from a netCDF file with the root PE, and broadcast the results to all the other PEs.

read_variable_0d_int

mom_io

Read a integer scalar variable from a netCDF file with the root PE, and broadcast the results to all the other PEs.

read_variable_1d

mom_io

Read a 1-d real variable from a netCDF file with the root PE, and broadcast the results to all the other PEs.

read_variable_1d_int

mom_io

Read a 1-d integer variable from a netCDF file with the root PE, and broadcast the results to all the other PEs.

read_variable_2d

mom_io

Read a 2d array from a netCDF input file and save to a variable.

read_variable_3d

mom_io

read_z_edges

mom_tracer_z_init

This subroutine reads the vertical coordinate data for a field from a NetCDF file. It also might read the missing value attribute for that same field.

real_arr

numerical_testing_type

Compare u_test to u_true, report, and return true if a difference larger than tol is measured.

real_array_string

mom_document

Returns a character string of a comma-separated, compact formatted, reals e.g. “1., 2., 5*3., 5.E2”, that give the list of values.

real_scalar

numerical_testing_type

Compare u_test to u_true, report, and return true if a difference larger than tol is measured.

real_string

mom_document

This function returns a string with a real formatted like ‘(G)’.

real_to_efp

mom_coms

Return the extended-fixed-point number that a real number corresponds with.

real_to_ints

mom_coms

Convert a real number into the array of integers constitute its extended-fixed-point representation.

reconstruct

recon1d_eppm_cwk

Calculate a 1D EPPM_CWK reconstructions based on h(:) and u(:)

reconstruct

recon1d_ppm_cwk

Calculate a 1D PPM_CWK reconstructions based on h(:) and u(:)

reconstruct

recon1d_plm_cw

Calculate a 1D PLM reconstructions based on h(:) and u(:)

reconstruct

recon1d_pcm

Calculate a 1D PCM reconstructions based on h(:) and u(:)

reconstruct

recon1d_emplm_cwk

Calculate a 1D PLM reconstructions based on h(:) and u(:)

reconstruct

recon1d_ppm_hybgen

Calculate a 1D PPM_hybgen reconstructions based on h(:) and u(:)

reconstruct

recon1d_mplm_wa

Calculate a 1D PLM reconstructions based on h(:) and u(:)

reconstruct

recon1d_emplm_wa_poly

Calculate a 1D PLM reconstruction based on h(:) and u(:)

reconstruct

recon1d_ppm_h4_2019

Calculate a 1D PPM_H4_2019 reconstructions based on h(:) and u(:)

reconstruct

recon1d_emplm_wa

Calculate a 1D PLM reconstruction based on h(:) and u(:)

reconstruct

recon1d_ppm_h4_2018

Calculate a 1D PPM_H4_2018 reconstructions based on h(:) and u(:)

reconstruct

recon1d_mplm_cwk

Calculate a 1D PLM reconstructions based on h(:) and u(:)

reconstruct

recon1d_plm_wls

Calculate a 1D PLM_WLS reconstruction based on h(:) and u(:)

reconstruct

recon1d_plm_hybgen

Calculate a 1D PLM reconstructions based on h(:) and u(:)

reconstruct

recon1d_ppm_cw

Calculate a 1D PPM_CW reconstructions based on h(:) and u(:)

reconstruct

recon1d_mplm_wa_poly

Calculate a 1D MPLM_WA_poly reconstructions based on h(:) and u(:)

reconstruct

recon1d_plm_cwk

Calculate a 1D PLM reconstructions based on h(:) and u(:)

reflect

mom_internal_tides

Reflection of the internal waves at a single frequency.

refract

mom_internal_tides

Implements refraction on the internal waves at a single frequency.

regional_dyes_end

regional_dyes

Clean up any allocated memory after the run.

register_advection_test_tracer

advection_test_tracer

Register tracer fields and subroutines to be used with MOM.

register_axis_infra

mom_io_file

Register an axis to the MOM framework file.

register_axis_nc

mom_io_file

Register an axis to the MOM netcdf file.

register_barotropic_restarts

mom_barotropic

This subroutine is used to register any fields from

register_boundary_impulse_tracer

boundary_impulse_tracer

Read in runtime options and add boundary impulse tracer to tracer registry.

register_cell_measure

mom_diag_mediator

Sets a handle inside diagnostics mediator to associate 3d cell measures.

register_cfc_cap

mom_cfc_cap

Register the CFCs to be used with MOM and read the parameters that are used with this tracer package.

register_ctrl_forcing_restarts

mom_controlled_forcing

This subroutine is used to allocate and register any fields in this module that should be written to or read from the restart file.

register_diabatic_restarts

mom_diabatic_driver

Routine to register restarts, pass-through to children modules.

register_diag_field

mom_diag_mediator

Returns the “diag_mediator” handle for a group (native, CMOR, z-coord, …) of diagnostics derived from one field.

register_diag_field_expand_axes

mom_diag_mediator

Returns an FMS id from register_diag_field_fms (the diag_manager routine) after expanding axes (axes-group) into handles and conditionally adding an FMS area_id for cell_measures.

register_diag_field_expand_axes

mom_is_diag_mediator

Returns an FMS id from register_diag_field_fms (the diag_manager routine) after expanding axes (axes-group) into handles and conditionally adding an FMS area_id for cell_measures.

register_diag_field_expand_cmor

mom_diag_mediator

Returns True if either the native or CMOR version of the diagnostic were registered. Updates ‘dm_id’ after calling

register_diag_field_expand_cmor

mom_is_diag_mediator

Returns True if either the native or CMOR version of the diagnostic were registered. Updates ‘dm_id’ after calling

register_diags

mom

Register certain diagnostics.

register_diags_offline_transport

mom_offline_main

Initialize additional diagnostics required for offline tracer transport.

register_dome_obc

dome_initialization

Add DOME to the OBC registry and set up some variables that will be used to guide code setting up the restart fields related to the OBCs.

register_dome_tracer

dome_tracer

Register tracer fields and subroutines to be used with MOM.

register_dye_tracer

regional_dyes

This subroutine is used to register tracer fields and subroutines to be used with MOM.

register_dyed_channel_obc

dyed_channel_initialization

Add dyed channel to OBC registry.

register_dyed_obc_tracer

dyed_obc_tracer

Register tracer fields and subroutines to be used with MOM.

register_field_infra

mom_io_file

Register a field to the MOM framework file.

register_field_nc

mom_io_file

Register a field to the MOM netcdf file.

register_file_obc

mom_open_boundary

Add file to OBC registry.

register_forcing_type_diags

mom_forcing_type

Register members of the forcing type for diagnostics.

register_ice_shelf_dyn_restarts

mom_ice_shelf_dynamics

This subroutine is used to register any fields related to the ice shelf dynamics that should be written to or read from the restart file.

register_ideal_age_tracer

ideal_age_example

Register the ideal age tracer fields to be used with MOM.

register_int_tide_restarts

mom_internal_tides

register_isomip_tracer

isomip_tracer

This subroutine is used to register tracer fields.

register_kelvin_obc

kelvin_initialization

Add Kelvin wave to OBC registry.

register_kpp_restarts

mom_cvmix_kpp

Routine to register restarts, pass-through to children modules.

register_marbl_diags

marbl_tracers

This subroutine is used to register tracer fields and subroutines to be used with MOM.

register_marbl_tracers

marbl_tracers

This subroutine is used to register tracer fields and subroutines to be used with MOM.

register_mom_generic_tracer

mom_generic_tracer

Pointer to the first element of the linked list of generic tracers.

register_mom_generic_tracer_segments

mom_generic_tracer

Register OBC segments for generic tracers.

register_mom_is_diag_field

mom_is_diag_mediator

Returns the “diag_mediator” handle for a group (native, CMOR, …) of diagnostics derived from one field.

register_mom_is_static_field

mom_is_diag_mediator

Registers a static diagnostic, returning an integer handle.

register_netcdf_axis

mom_netcdf

Create an axis and associated dimension in a netCDF file.

register_netcdf_field

mom_netcdf

Register a netCDF variable.

register_nw2_tracers

nw2_tracers

Register the NW2 tracer fields to be used with MOM.

register_obc

mom_open_boundary

register open boundary objects for boundary updates.

register_obgc_segments

mom_open_boundary

Registers a named tracer in the segment tracer registries for the OBC segments on which it is active.

register_obsolete_diagnostics

mom_obsolete_diagnostics

Scan through the diag_table searching for obsolete parameters and issue informational messages and optionallly a FATAL error.

register_ocmip2_cfc

mom_ocmip2_cfc

Register the OCMIP2 CFC tracers to be used with MOM and read the parameters that are used with this tracer package.

register_oil_tracer

oil_tracer

Register oil tracer fields and subroutines to be used with MOM.

register_pseudo_salt_tracer

pseudo_salt_tracer

Register the pseudo-salt tracer with MOM6, and return .true. if the tracer is to be used.

register_restart_field_0d

mom_restart

Register a 0-d field for restarts, providing the metadata as individual arguments.

register_restart_field_1d

mom_restart

Register a 1-d field for restarts, providing the metadata as individual arguments.

register_restart_field_2d

mom_restart

Register a 2-d field for restarts, providing the metadata as individual arguments.

register_restart_field_3d

mom_restart

Register a 3-d field for restarts, providing the metadata as individual arguments.

register_restart_field_4d

mom_restart

Register a 4-d field for restarts, providing the metadata as individual arguments.

register_restart_field_as_obsolete

mom_restart

Register a restart field as obsolete.

register_restart_field_ptr0d

mom_restart

Register a 0-d field for restarts, providing the metadata in a structure.

register_restart_field_ptr1d

mom_restart

Register a 1-d field for restarts, providing the metadata in a structure.

register_restart_field_ptr2d

mom_restart

Register a 2-d field for restarts, providing the metadata in a structure.

register_restart_field_ptr3d

mom_restart

Register a 3-d field for restarts, providing the metadata in a structure.

register_restart_field_ptr4d

mom_restart

Register a 4-d field for restarts, providing the metadata in a structure.

register_restart_pair_ptr2d

mom_restart

Register a pair of rotationally equivalent 2d restart fields.

register_restart_pair_ptr3d

mom_restart

Register a pair of rotationally equivalent 3d restart fields.

register_restart_pair_ptr4d

mom_restart

Register a pair of rotationally equivalent 2d restart fields.

register_restarts_dyn_split_rk2

mom_dynamics_split_rk2

This subroutine sets up any auxiliary restart variables that are specific to the split-explicit time stepping scheme. All variables registered here should have the ability to be recreated if they are not present in a restart file.

register_restarts_dyn_split_rk2b

mom_dynamics_split_rk2b

This subroutine sets up any auxiliary restart variables that are specific to the split-explicit time stepping scheme. All variables registered here should have the ability to be recreated if they are not present in a restart file.

register_restarts_dyn_unsplit

mom_dynamics_unsplit

Allocate the control structure for this module, allocates memory in it, and registers any auxiliary restart variables that are specific to the unsplit time stepping scheme.

register_restarts_dyn_unsplit_rk2

mom_dynamics_unsplit_rk2

Allocate the control structure for this module, allocates memory in it, and registers any auxiliary restart variables that are specific to the unsplit RK2 time stepping scheme.

register_rgc_tracer

rgc_tracer

This subroutine is used to register tracer fields.

register_scalar_field

mom_diag_mediator

Registers a scalar diagnostic, returning an integer handle.

register_scalar_field_axes

mom_is_diag_mediator

Registers a non-array scalar diagnostic, returning an integer handle.

register_scalar_field_cs

mom_is_diag_mediator

Registers a non-array scalar diagnostic, returning an integer handle.

register_segment_tracer

mom_open_boundary

Register a tracer array that is active on an OBC segment, potentially also specifying how the tracer inflow values are specified.

register_shelfwave_obc

shelfwave_initialization

Add shelfwave to OBC registry.

register_static_field

mom_diag_mediator

Registers a static diagnostic, returning an integer handle.

register_surface_diags

mom_diagnostics

Register diagnostics of the surface state and integrated quantities.

register_temp_salt_segments

mom_open_boundary

Registers the temperature and salinity in the segment tracer registry.

register_tidal_bay_obc

tidal_bay_initialization

Add tidal bay to OBC registry.

register_time_deriv

mom_diagnostics

This subroutine registers fields to calculate a diagnostic time derivative.

register_tracer

mom_tracer_registry

This subroutine registers a tracer to be advected and laterally diffused.

register_tracer_diagnostics

mom_tracer_registry

register_tracer_diagnostics does a set of register_diag_field calls for any previously registered in a tracer registry with a value of registry_diags set to .true.

register_transport_diags

mom_diagnostics

Register certain diagnostics related to transports.

regridding_main

mom_regridding

Dispatching regridding routine for orchestrating regridding & remapping.

regridding_preadjust_reqs

mom_regridding

This routine returns flags indicating which pre-remapping state adjustments are needed depending on the coordinate mode in use.

regridding_set_ppolys

regrid_interp

Builds an interpolated profile for the densities within each grid cell.

regularize_ints

mom_coms

This subroutine carries the overflow, and then makes sure that all integers are of the same sign as the overall value.

regularize_layers

mom_regularize_layers

This subroutine partially steps the bulk mixed layer model. The following processes are executed, in the order listed.

regularize_layers_init

mom_regularize_layers

Initializes the regularize_layers control structure.

regularize_surface

mom_regularize_layers

This subroutine ensures that there is a degree of horizontal smoothness in the depths of the near-surface interfaces.

reintegrate_column

mom_remapping

Conservatively calculate integrated data, uh_dest, on grid h_dest, from layer-integrated data, uh_src, on grid h_src.

remaining_transport_sum

mom_offline_main

Returns the sums of any non-negligible remaining transport [H L2 ~> m3 or kg] to check for advection convergence.

remap_dyn_split_rk2_aux_vars

mom_dynamics_split_rk2

This subroutine does remapping for the auxiliary restart variables that are used with the split RK2 time stepping scheme.

remap_dyn_split_rk2b_aux_vars

mom_dynamics_split_rk2b

This subroutine does remapping for the auxiliary restart variables that are used with the split RK2 time stepping scheme.

remap_obc_fields

mom_open_boundary

Vertically remap the OBC tracer reservoirs and radiation rates that are filtered in time.

remap_src_to_sub_grid

mom_remapping

Remaps column of n0 values u0 on grid h0 to subgrid h_sub.

remap_src_to_sub_grid_om4

mom_remapping

Adjust h_sub to ensure accurate conservation.

remap_sub_to_tgt_grid

mom_remapping

Remaps column of n0+n1+1 values usub on sub-grid h_sub to targets on grid h1.

remap_sub_to_tgt_grid_om4

mom_remapping

Remaps column of n0+n1+1 values usub on sub-grid h_sub to targets on grid h1 using the OM4-era algorithm.

remap_to_sub_grid

recon1d_type

Remaps the column to subgrid h_sub.

remap_to_sub_grid

recon1d_mplm_wa_poly

Remaps the column to subgrid h_sub.

remap_vertvisc_aux_vars

mom_set_visc

This subroutine does remapping for the auxiliary restart variables in a vertvisc_type that are used across timesteps.

remapping_core_h

mom_remapping

Remaps column of values u0 on grid h0 to grid h1 assuming the top edge is aligned and using the OM4 reconstruction methods.

remapping_core_w

mom_remapping

Remaps column of values u0 on grid h0 to implied grid h1 where the interfaces of h1 differ from those of h0 by dx.

remapping_set_param

mom_remapping

Set parameters within remapping object.

remapping_unit_tests

mom_remapping

Runs unit tests on remapping functions. Should only be called from a single/root thread Returns True if a test fails, otherwise False.

remove_spaces

mom_string_functions

Returns string with all spaces removed.

removecomments

mom_file_parser

Trims comments and leading blanks from string.

rename_dataset

database_client_interface

Rename a dataset stored in the database.

rename_list

database_client_interface

Rename an aggregation list.

rename_tensor

database_client_interface

Move a tensor to a new name.

reopen_file

mom_io

reopen_mom_file

mom_io

This routine opens an existing NetCDF file for output. If it does not find the file, a new file is created. It also sets up structures that describe this file and the variables that will later be written to this file.

replacetabs

mom_file_parser

Returns a string with tabs replaced by a blank.

reproducing_efp_sum_2d

mom_coms

This subroutine uses a conversion to an integer representation of real numbers to give an order-invariant sum of distributed 2-D arrays that reproduces across domain decomposition, with the result returned as an extended fixed point type that can be converted back to a real number using EFP_to_real. This technique is described in Hallberg & Adcroft, 2014, Parallel Computing, doi:10.1016/j.parco.2014.04.007.

reproducing_sum_2d

mom_coms

This subroutine uses a conversion to an integer representation of real numbers to give an order-invariant sum of distributed 2-D arrays that reproduces across domain decomposition. This technique is described in Hallberg & Adcroft, 2014, Parallel Computing, doi:10.1016/j.parco.2014.04.007.

reproducing_sum_3d

mom_coms

This subroutine uses a conversion to an integer representation of real numbers to give an order-invariant sum of distributed 3-D arrays that reproduces across domain decomposition. This technique is described in Hallberg & Adcroft, 2014, Parallel Computing, doi:10.1016/j.parco.2014.04.007.

rescale_cbrt

mom_intrinsic_functions

Rescale

rescale_dyn_horgrid_bathymetry

mom_dyn_horgrid

rescale_dyn_horgrid_bathymetry permits a change in the internal units for the bathymetry on the grid, both rescaling the depths and recording the new internal depth units.

reset_efp_overflow_error

mom_coms

Reset the module’s error flag to false.

reset_face_lengths_file

mom_shared_initialization

This subroutine sets the open face lengths at selected points to restrict passages to their observed widths from a arrays read from a file.

reset_face_lengths_list

mom_shared_initialization

This subroutine sets the open face lengths at selected points to restrict passages to their observed widths from a list read from a file.

reset_face_lengths_named

mom_shared_initialization

This subroutine sets the open face lengths at selected points to restrict passages to their observed widths based on a named set of sizes.

resort_ml

mom_bulk_mixed_layer

This subroutine actually moves properties between layers to achieve a resorted state, with all of the resorted water either moved into the correct interior layers or in the top nkmb layers.

restart_end

mom_restart

Deallocate memory associated with a MOM_restart_CS variable.

restart_error

mom_restart

restart_files_exist

mom_restart

restart_files_exist determines whether any restart files exist.

restart_init

mom_restart

Initialize this module and set up a restart control structure.

restart_init_end

mom_restart

Indicate that all variables have now been registered and lock the registry.

restart_registry_lock

mom_restart

Lock the restart registry so that an error is issued if any further restart variables are registered.

restore_state

mom_restart

restore_state reads the model state from previously generated files. All restart variables are read from the first file in the input filename list in which they are found.

rgc_initialize_sponges

rgc_initialization

Sets up the inverse restoration time, and the values towards which the interface heights, velocities and tracers should be restored within the sponges for the RGC test case.

rgc_tracer_column_physics

rgc_tracer

This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers.

rgc_tracer_end

rgc_tracer

rho_function1

mom_regridding

Parses a string and generates a rho_target(:) profile with refined resolution downward and returns the number of levels.

rmean2ts

mom_mixed_layer_restrat

Two time-scale running mean in the same arbitrary units as “signal” and “filtered”.

rossby_front_initialize_temperature_salinity

rossby_front_2d_initialization

Initialization of temperature and salinity in the Rossby front test.

rossby_front_initialize_thickness

rossby_front_2d_initialization

Initialization of thicknesses in 2D Rossby front test.

rossby_front_initialize_velocity

rossby_front_2d_initialization

Initialization of u and v in the Rossby front test.

rotate_array_integer

mom_array_transform

Rotate the elements of a 2d integer array along first and second axes.

rotate_array_logical

mom_array_transform

Rotate the elements of a 2d logical array along first and second axes.

rotate_array_pair_integer

mom_array_transform

Rotate the elements of a 4d real array pair along first and second axes.

rotate_array_pair_real_2d

mom_array_transform

Rotate the elements of a 2d real array pair along first and second axes.

rotate_array_pair_real_3d

mom_array_transform

Rotate the elements of a 3d real array pair along first and second axes.

rotate_array_real_2d

mom_array_transform

Rotate the elements of a 2d real array along first and second axes.

rotate_array_real_3d

mom_array_transform

Rotate the elements of a 3d real array along first and second axes.

rotate_array_real_4d

mom_array_transform

Rotate the elements of a 4d real array along first and second axes.

rotate_dyn_horgrid

mom_dyn_horgrid

Copy the rotated contents of one horizontal grid type into another. The input and output grid type arguments can not use the same object.

rotate_forcing

mom_forcing_type

rotate_hor_index

mom_hor_index

Rotate the horizontal index ranges from the input to the output map.

rotate_initial_state

mom

Rotate initialization fields from input to rotated arrays.

rotate_mech_forcing

mom_forcing_type

rotate_obc_config

mom_open_boundary

This is more of a rotate initialization than an actual rotate.

rotate_obc_segment_config

mom_open_boundary

Rotate the OBC segment configuration data from the input to model index map.

rotate_obc_segment_direction

mom_open_boundary

Return the direction of an OBC segment on after rotation to the new grid. Note that rotate_OBC_seg_direction(rotate_OBC_seg_direction(direction, turns), -turns) = direction.

rotate_surface_state

mom_variables

Rotate the surface state fields from the input to the model indices.

rotate_vector_real_2d

mom_array_transform

Rotate the elements of a 2d real vector along first and second axes.

rotate_vector_real_3d

mom_array_transform

Rotate the elements of a 3d real vector along first and second axes.

rotate_vector_real_4d

mom_array_transform

Rotate the elements of a 4d real vector along first and second axes.

rotated_field_name

mom_open_boundary

Return the that the field would have after being rotated by the given number of quarter turns.

run_file_parser_tests

mom_file_parser_tests

run_model

database_client_interface

Run a model in the database using the specified input and output tensors.

run_model_multigpu

database_client_interface

Run a model in the database using the specified input and output tensors in a multi-GPU system.

run_script

database_client_interface

run_script_multigpu

database_client_interface

run_stochastic_physics_ocn

stochastic_physics

Determines the stochastic physics perturbations.

run_test_suite

mom_unit_testing

run_unit_test

mom_unit_testing

Launch a unit test with a custom cleanup procedure.

safe_alloc_allocatable_2d

mom_safe_alloc

Allocate a 2-d allocatable array based on its index starting and ending values.

safe_alloc_allocatable_3d

mom_safe_alloc

Allocate a 3-d allocatable array based on its index starting and ending values and k-index size.

safe_alloc_allocatable_3d_6arg

mom_safe_alloc

Allocate a 3-d allocatable array based on its 6 index starting and ending values.

safe_alloc_ptr_1d

mom_safe_alloc

Allocate a pointer to a 1-d array.

safe_alloc_ptr_2d

mom_safe_alloc

Allocate a pointer to a 2-d array based on its index starting and ending values.

safe_alloc_ptr_2d_2arg

mom_safe_alloc

Allocate a pointer to a 2-d array based on its dimension sizes.

safe_alloc_ptr_3d

mom_safe_alloc

Allocate a pointer to a 3-d array based on its index starting and ending values.

safe_alloc_ptr_3d_3arg

mom_safe_alloc

Allocate a pointer to a 3-d array based on its dimension sizes.

safe_alloc_ptr_3d_6arg

mom_safe_alloc

Allocate a pointer to a 3-d array based on its index starting and ending values.

safe_string_copy

mom_io

Copies a string.

sal_end

mom_self_attr_load

This subroutine deallocates memory associated with the SAL module.

sal_init

mom_self_attr_load

This subroutine initializes the self-attraction and loading control structure.

save_mom_restart

mom

Save restart/pickup files required to initialize the MOM6 internal state.

save_restart

mom_restart

save_restart saves all registered variables to restart files.

scalar_sal_sensitivity

mom_self_attr_load

This subroutine returns eta_prop member of SAL_CS type, which is the non-dimensional partial derivative of the local geopotential height with the input sea surface height due to the scalar approximation of self-attraction and loading.

scale_factor_from_name

mom_open_boundary

Return an appropriate dimensional scaling factor for input data based on an OBC segment data name [various ~> 1], or 1 for tracers or other fields that do not match one of the specified names. Note that calls to register_segment_tracer can come before or after calls to scale_factor_from_name.

scales_to_powers

mom_unique_scales

Find the integer power of two that describe each of the scaling factors, or return 0 for scaling factors that are not exceptionally close to an integer power of 2.

scm_cvmix_tests_buoyancy_forcing

scm_cvmix_tests

scm_cvmix_tests_surface_forcing_init

scm_cvmix_tests

Initializes surface forcing for the CVMix test case suite.

scm_cvmix_tests_ts_init

scm_cvmix_tests

Initializes temperature and salinity for the SCM CVMix test example.

scm_cvmix_tests_wind_forcing

scm_cvmix_tests

scurve

mom_surface_forcing

Returns the value of a cosine-bell function evaluated at x/L.

scurve

basin_builder

Returns an s-curve s(x) s.t. s(x0)<=0, s(x0+L)>=1 and cubic in between [nondim].

scurve

neverworld_initialization

Returns an s-curve s(x) s.t. s(x0)<=0, s(x0+L)>=1 and cubic in between [nondim].

scurve_wind_forcing

mom_surface_forcing

Sets the zonal wind stresses to a piecewise series of s-curves.

seamount_initialize_temperature_salinity

seamount_initialization

Initial values for temperature and salinity.

seamount_initialize_thickness

seamount_initialization

Initialization of thicknesses. This subroutine initializes the layer thicknesses to be uniform.

seamount_initialize_topography

seamount_initialization

Initialization of topography.

search_other_column

mom_neutral_diffusion

Searches the “other” (searched) column for the position of the neutral surface, returning the fractional postion within the layer [nondim].

sech

phillips_initialization

sech calculates the hyperbolic secant.

seed_from_index

mom_random

Create seed from position index.

seed_from_time

mom_random

Return a seed derived as hash of values in Time.

segment_determine_required_fields

mom_open_boundary

Determine which physical fields are required for this segment based on boundary-condition type and segment orientation. Also enable groups of physical fields required by tides or thermodynamics. Note the tidal group could be further narrowed based on modes. This subroutine could turn into a TBP for OBC_segment_type.

segment_thickness_registry_end

mom_open_boundary

Clean up the segment thickness object.

segment_thickness_reservoir_init

mom_open_boundary

Initialize all the segment thickness reservoirs.

segment_tracer_registry_end

mom_open_boundary

Clean up the segment tracer registry.

segment_tracer_registry_init

mom_open_boundary

Initialize the segment tracer registry.

set

numerical_testing_type

Set attributes.

set_adapt_params

coord_adapt

This subtroutine can be used to set the parameters for

set_analysis_time

mom_oda_driver_mod

Set the next analysis time.

set_attribute_info

mom_io

Store information that can be used to create an attribute in a subsequent call to create_file.

set_axes_info

mom_diag_mediator

Sets up diagnostics axes.

set_axes_info_dsamp

mom_diag_mediator

set_axis_info

mom_io

Store information that can be used to create an axis in a subsequent call to create_file.

set_bbl_tke

mom_set_diffusivity

This subroutine calculates several properties related to bottom boundary layer turbulence.

set_continuity_loop_bounds

mom_continuity_ppm

Set up a structure that stores the sizes of the i- and j-loops to to work on in the continuity solver.

set_conversion_pair

mom_restart

Set a pair of factors to multiply by the components of a vector when writing that include any sign changes needed to account for grid rotation.

set_coord_from_file

mom_coord_initialization

set_coord_from_gprime

mom_coord_initialization

Sets the layer densities (Rlay) and the interface reduced gravities (g).

set_coord_from_layer_density

mom_coord_initialization

Sets the layer densities (Rlay) and the interface reduced gravities (g).

set_coord_from_ts_profile

mom_coord_initialization

Sets the layer densities (Rlay) and the interface reduced gravities (g) from a T-S profile.

set_coord_from_ts_range

mom_coord_initialization

Sets the layer densities (Rlay) and the interface reduced gravities (g) from a linear T-S profile.

set_coord_from_ts_ref

mom_coord_initialization

Sets the layer densities (Rlay) and the interface reduced gravities (g) from a profile of g’.

set_coord_linear

mom_coord_initialization

Sets the layer densities (Rlay) and the interface reduced gravities (g) according to a linear profile starting at a reference surface layer density and spanning a range of densities to the bottom defined by the parameter RLAY_RANGE (defaulting to 2.0 if not defined)

set_coord_to_none

mom_coord_initialization

Sets Rlay to Rho0 and g_prime to zero except for the free surface. This is for use only in ALE mode where Rlay should not be used and g_prime(1) alone might be used.

set_coupler_type_data

mom_coupler_types

Set single 2d field in coupler_2d_bc_type from a two-dimensional array, using a MOM-specific interface.

set_density_ratios

mom_set_diffusivity

set_dependent_diagnostics

mom_diagnostics

This subroutine sets up diagnostics upon which other diagnostics depend.

set_derived_dyn_horgrid

mom_dyn_horgrid

set_derived_dyn_horgrid calculates metric terms that are derived from other metrics.

set_derived_forcing_fields

mom_forcing_type

This subroutine calculates certain derived forcing fields based on information from a

set_derived_metrics

mom_grid

set_derived_metrics calculates metric terms that are derived from other metrics.

set_diag_mediator_grid

mom_diag_mediator

Set up the array extents for doing diagnostics.

set_diffusivity

mom_set_diffusivity

set_diffusivity_end

mom_set_diffusivity

Clear pointers and deallocate memory.

set_diffusivity_init

mom_set_diffusivity

set_dtbt

mom_barotropic

This subroutine automatically determines an optimal value for dtbt based on some state of the ocean. Either pbce or gtot_est is required to calculate gravitational acceleration. Column thickness can be estimated using BT_cont, eta, and SSH_add (default=0), with priority given in that order. The subroutine sets CSdtbt_max and CSdtbt.

set_dz_neglect

mom_regridding

Set appropriate values for the negligible vertical layer extents used for remapping based on an answer date.

set_ent_bl

mom_entrain_diffusive

This subroutine sets the average entrainment across each of the interfaces between buffer layers within a timestep. It also causes thin and relatively light interior layers to be entrained by the deepest buffer layer. Also find the initial coordinate potential densities (Sref) of each layer.

set_extents_from_array_2d

mom_diag_buffers

Set the extents of a 2D buffer from the bounds of a 2D array.

set_extents_from_array_3d

mom_diag_buffers

Set the extents of a 3D buffer from the bounds of a 3D array.

set_fill_value

mom_diag_buffers

Set the fill value to use when growing the buffer.

set_first_direction

mom_grid

Store an integer indicating which direction to work on first.

set_forcing

mom_surface_forcing

Calls subroutines in this file to get surface forcing fields.

set_grid_metrics

mom_grid_initialize

set_grid_metrics is used to set the primary values in the model’s horizontal grid. The bathymetry, land-sea mask and any restricted channel widths are not known yet, so these are set later.

set_grid_metrics_cartesian

mom_grid_initialize

Calculate the values of the metric terms for a Cartesian grid that might be used and save them in arrays.

set_grid_metrics_from_mosaic

mom_grid_initialize

Sets the grid metrics from a mosaic file.

set_grid_metrics_mercator

mom_grid_initialize

Calculate the values of the metric terms that might be used and save them in arrays.

set_grid_metrics_spherical

mom_grid_initialize

Calculate the values of the metric terms that might be used and save them in arrays.

set_h_neglect

mom_regridding

Set appropriate values for the negligible thicknesses used for remapping based on an answer date.

set_horizontal_extents

mom_diag_buffers

Set the horizontal extents of the buffer.

set_hybgen_unmix_params

mom_hybgen_unmix

This subroutine can be used to set the parameters for the hybgen module.

set_hycom_params

coord_hycom

This subroutine can be used to set the parameters for the

set_initialized_0d_name

mom_restart

Record that the array in f_ptr with the given name has been initialized.

set_initialized_1d_name

mom_restart

Record that the array in f_ptr with the given name has been initialized.

set_initialized_2d_name

mom_restart

Record that the array in f_ptr with the given name has been initialized.

set_initialized_3d_name

mom_restart

Record that the array in f_ptr with the given name has been initialized.

set_initialized_4d_name

mom_restart

Record that the array in f_ptr with the given name has been initialized.

set_initialized_name

mom_restart

set_initialized_name records that a named field has been initialized.

set_initialized_obc_tracer_reservoirs

mom_open_boundary

Record that the tracer reservoirs have been initialized so that their values are not reset later.

set_input_normalization

mom_ann

Sets input normalization.

set_int_tide_input

mom_int_tide_input

Sets the model-state dependent internal tide energy sources.

set_interp_answer_date

regrid_interp

Store the value of the answer_date in the interp_CS.

set_interp_extrap

regrid_interp

Store the boundary_extrapolation value in the interp_CS.

set_interp_scheme

regrid_interp

Store the interpolation_scheme value in the interp_CS based on the input string.

set_is_axes_info

mom_is_diag_mediator

Set up the grid and axis information for use by the ice shelf model.

set_is_diag_mediator_grid

mom_is_diag_mediator

Set up the array extents for doing diagnostics.

set_layer

mom_ann

Sets weights and bias for a single layer.

set_lf17_wave_params

mom_wave_interface

Set the parameters that are used to determine the averaged Stokes drift and Langmuir numbers.

set_local_bt_cont_types

mom_barotropic

This subroutine sets up reordered versions of the BT_cont type in the local_BT_cont types, which have wide halos properly filled in.

set_masks_for_axes

mom_diag_mediator

set_masks_for_axes sets up the 2d and 3d masks for diagnostics using the current grid recorded after calling

set_masks_for_axes_dsamp

mom_diag_mediator

set_meansl_from_file

mom_shared_initialization

Read time mean ocean sea level from a file.

set_merid_bt_cont

mom_continuity_ppm

Sets of a structure that describes the meridional barotropic volume or mass fluxes as a function of barotropic flow to agree closely with the sum of the layer’s transports.

set_model

database_client_interface

Establish a model to run.

set_model_from_file

database_client_interface

Load the machine learning model from a file and set the configuration.

set_model_from_file_multigpu

database_client_interface

Load the machine learning model from a file and set the configuration for use in multi-GPU systems.

set_model_multigpu

database_client_interface

Set a model from a byte string to run on a system with multiple GPUs.

set_net_mass_forcing

mom_forcing_type

This subroutine determines the net mass source to the ocean from a (thermodynamic) forcing type and stores it in a

set_obgc_segments_props

mom_open_boundary

Sets the OBC properties of external obgc tracers, such as their source file and field name.

set_opacity

mom_opacity

This sets the opacity of sea water based based on one of several different schemes.

set_output_normalization

mom_ann

Sets output normalization.

set_params_buggy_wright

mom_eos_wright

Set coefficients that can correct bugs un the buggy Wright equation of state.

set_params_linear

mom_eos_linear

Set coefficients for the linear equation of state.

set_pbce_bouss

mom_pressureforce_mont

Determines the partial derivative of the acceleration due to pressure forces with the free surface height.

set_pbce_nonbouss

mom_pressureforce_mont

Determines the partial derivative of the acceleration due to pressure forces with the column mass.

set_pen_shortwave

mom_diabatic_aux

Estimate the optical properties of the water column and determine the penetrating shortwave radiation by band, extracting the relevant information from the fluxes type and storing it in the optics type for later application. This routine is effectively a wrapper for set_opacity with added error handling and diagnostics.

set_piecemeal_extents

mom_diag_mediator

Set the extents and fill values for the piecemeal buffers for all axes.

set_prior_tracer

mom_oda_driver_mod

Copy ensemble member tracers to ensemble vector.

set_regrid_max_depths

mom_regridding

Set maximum interface depths based on a vector of input values.

set_regrid_max_thickness

mom_regridding

Set maximum layer thicknesses based on a vector of input values.

set_regrid_params

mom_regridding

Can be used to set any of the parameters for MOM_regridding.

set_restart_fields

mom

Set the fields that are needed for bitwise identical restarting the time stepping scheme. In addition to those specified here directly, there may be fields related to the forcing or to the barotropic solver that are needed; these are specified in sub- routines that are called from this one.

set_rho_params

coord_rho

This subroutine can be used to set the parameters for the

set_riv_flux_tracer_inds

marbl_tracers

set_rotation_beta_plane

mom_shared_initialization

This subroutine sets up the Coriolis parameter for a beta-plane or f-plane.

set_rotation_planetary

mom_shared_initialization

This subroutine sets up the Coriolis parameter for a sphere.

set_script

database_client_interface

Set a script (from buffer) in the database for future execution.

set_script_from_file

database_client_interface

Set a script (from file) in the database for future execution.

set_script_from_file_multigpu

database_client_interface

Set a script (from file) in the database for future execution in a multi-GPU system.

set_script_multigpu

database_client_interface

Set a script (from buffer) in the database for future execution in a multi-GPU system.

set_segnum_signs

mom_open_boundary

This subroutine sets the sign of the OBCsegnum_u and OBCsegnum_v arrays to indicate the direction of the faces - positive for logically eastern or northern OBCs and neagative for logically western or southern OBCs, or zero on non-OBC points. Also store information about which orientations of OBCs ar on this PE and the range of indices within which the various orientations of OBCs can be found on this PE.

set_sigma_params

coord_sigma

This subroutine can be used to set the parameters for the

set_skip_mpi

mom_error_handler

Enable/disable skipping MPI dependent behaviors.

set_subgrid_topo_at_vel_from_file

mom_shared_initialization

Read from a file the maximum, minimum and average bathymetry at velocity points, for the use of porous barrier. Note that we assume the depth values in the sub-grid bathymetry file of the same convention as in-cell bathymetry file, i.e. positive below the sea surface and increasing downward; while in subroutine reset_face_lengths_list, it is implied that read-in fields min_bathy, max_bathy and avg_bathy from the input file CHANNEL_LIST_FILE all have negative values below the surface. Therefore, to ensure backward compatibility, all signs of the variable are inverted here. And porous_Dmax[UV] = shallowest point, porous_Dmin[UV] = deepest point.

set_target_densities

mom_regridding

Set target densities based on vector of interface values.

set_target_densities_3d

mom_regridding

Set target densities based on vector of interface values.

set_target_densities_from_gv

mom_regridding

Set target densities based on the old Rlay variable.

set_tracer_advect_scheme

mom_tracer_advect_schemes

Numeric value of tracer_advect_scheme corresponding to scheme name.

set_u_at_v

mom_set_visc

This subroutine finds a thickness-weighted value of u at the v-points.

set_unit_scaling_combos

mom_unit_scaling

This subroutine sets useful combinations of the fundamental scale conversion factors in the unit scaling type.

set_up_bt_obc

mom_barotropic

This subroutine sets up the time-varying fields in the private structure used to apply the open boundary conditions, as developed by Mehmet Ilicak.

set_up_global_tgrid

mom_oda_driver_mod

Set up the grid of thicknesses at tracer points throughout the global domain.

set_up_oda_incupd_field

mom_oda_incupd

This subroutine stores the increments at h points for the variable whose address is given by f_ptr.

set_up_oda_incupd_vel_field

mom_oda_incupd

This subroutine stores the increments at u and v points for the variable whose address is given by u_ptr and v_ptr.

set_up_sponge_field

mom_sponge

This subroutine stores the reference profile for the variable whose address is given by f_ptr. nlay is the number of layers in this variable.

set_up_sponge_ml_density

mom_sponge

This subroutine stores the reference value for mixed layer density. It is handled differently from other values because it is only used in determining which layers can be inflated.

set_v_at_u

mom_set_visc

This subroutine finds a thickness-weighted value of v at the u-points.

set_velocity_depth_max

mom_shared_initialization

Set the bathymetry at velocity points to be the maximum of the depths at the neighoring tracer points.

set_velocity_depth_max

mom_state_initialization

This subroutine sets the 4 bottom depths at velocity points to be the maximum of the adjacent depths.

set_velocity_depth_min

mom_shared_initialization

Set the bathymetry at velocity points to be the minimum of the depths at the neighoring tracer points.

set_velocity_depth_min

mom_state_initialization

This subroutine sets the 4 bottom depths at velocity points to be the minimum of the adjacent depths.

set_vertical_extent

mom_diag_buffers

Set the vertical extent of the buffer.

set_visc_end

mom_set_visc

This subroutine dellocates any memory in the set_visc control structure.

set_visc_init

mom_set_visc

Initializes the MOM_set_visc control structure.

set_visc_register_restarts

mom_set_visc

Register any fields associated with the vertvisc_type.

set_viscous_bbl

mom_set_visc

Calculates the thickness of the bottom boundary layer and the viscosity within that layer.

set_viscous_ml

mom_set_visc

Calculates the thickness of the surface boundary layer for applying an elevated viscosity.

set_zlike_params

coord_zlike

Set parameters in the zlike structure.

set_zonal_bt_cont

mom_continuity_ppm

Sets a structure that describes the zonal barotropic volume or mass fluxes as a function of barotropic flow to agree closely with the sum of the layer’s transports.

setcoordinateresolution

mom_regridding

Set the fixed resolution data.

setcoordinateresolution_3d

mom_regridding

Set the 3d fixed resolution data.

setjmp_missing

posix

Placeholder function for a missing or unconfigured setjmp.

setreconstructiontype

mom_remapping

Changes the method of reconstruction Use this routine to parse a string parameter specifying the reconstruction and re-allocates work arrays appropriately. It is called from initialize_remapping but can be called from an external module too.

setup_obc_thickness_reservoirs

mom_open_boundary

Initialize the thickness reservoirs values, perhaps only if they have not been set via a restart file.

setup_obc_tracer_reservoirs

mom_open_boundary

Initialize the tracer reservoirs values, perhaps only if they have not been set via a restart file.

setup_saved_state

marbl_tracers

This subroutine allocates memory for saved state fields and registers them in the restart files.

setup_segment_indices

mom_open_boundary

Define indices for segment and store in hor_index_type using global segment bounds corresponding to q-points.

setup_tidal_diagnostics

mom_tidal_mixing

Sets up diagnostics arrays for tidal mixing.

setup_u_point_obc

mom_open_boundary

Parse an OBC_SEGMENT_%%% string starting with “I=” and configure placement and type of OBC accordingly.

setup_v_point_obc

mom_open_boundary

Parse an OBC_SEGMENT_%%% string starting with “J=” and configure placement and type of OBC accordingly.

setverticalgridaxes

mom_verticalgrid

This sets the coordinate data for the “layer mode” of the isopycnal model.

shelf_advance_front

mom_ice_shelf_dynamics

shelf_calc_flux

mom_ice_shelf

Calculates fluxes between the ocean and ice-shelf using the three-equations formulation (optional to use just two equations). See

shelfwave_initialize_topography

shelfwave_initialization

Initialization of topography.

shelfwave_obc_end

shelfwave_initialization

Clean up the shelfwave OBC from registry.

shelfwave_set_obc_data

shelfwave_initialization

This subroutine sets the properties of flow at open boundary conditions.

shutdown

marbl_interface

Dummy version of MARBL’s

siglongjmp

posix

Restore program to state saved by

siglongjmp_missing

posix

Placeholder function for a missing or unconfigured siglongjmp.

signal

posix

Create a signal handler

signum

mom_neutral_diffusion

A true signum function that returns either -abs(a), when x<0; or abs(a) when x>0; or 0 when x=0. The returned units are the same as those of a [arbitrary].

sigsetjmp_missing

posix

Placeholder function for a missing or unconfigured sigsetjmp.

simple_wind_scaled_cd

idealized_hurricane

This function returns the air-sea drag coefficient using a simple function of the air-sea velocity difference.

simplifywhitespace

mom_file_parser

Constructs a string with all repeated white space replaced with single blanks and insert white space where it helps delineate tokens (e.g. around =)

size_mismatch_3d

mom_restart

Indicate if two 3-d arrays are not of the same size after rotation is considered.

slasher

mom_string_functions

Returns a directory name that is terminated with a “/” or “./” if the argument is an empty string.

sleep

posix

Force the process to a sleep state for

slope_limiter

mom_ice_shelf_dynamics

used for flux limiting in advective subroutines Van Leer limiter (source: Wikipedia) The return value is between 0 and 2 [nondim].

sloshing_initialize_temperature_salinity

sloshing_initialization

Initialization of temperature and salinity.

sloshing_initialize_thickness

sloshing_initialization

Initialization of thicknesses This routine is called when THICKNESS_CONFIG is set to ‘sloshing’.

sloshing_initialize_topography

sloshing_initialization

Initialization of topography.

smooth_gme

mom_hor_visc

Apply a 1-1-4-1-1 Laplacian filter one time on GME diffusive flux to reduce any horizontal two-grid-point noise.

smooth_x9_h

mom_hor_visc

Apply a 9-point smoothing filter twice to a field staggered at a thickness point to reduce horizontal two-grid-point noise. Note that this subroutine does not conserve mass, so don’t use it in situations where you need conservation. Also note that it assumes that the input field has valid values in the first two halo points upon entry.

smooth_x9_uv

mom_hor_visc

Apply a 9-point smoothing filter twice to a pair of velocity components to reduce horizontal two-grid-point noise. Note that this subroutine does not conserve angular momentum, so don’t use it in situations where you need conservation. Also note that it assumes that the input fields have valid values in the first two halo points upon entry.

smooth_x9_uv

mom_stochastics

Apply a 9-point smoothing filter twice to a pair of velocity components to reduce horizontal two-grid-point noise. Note that this subroutine does not conserve angular momentum, so don’t use it in situations where you need conservation. Also note that it assumes that the input fields have valid values in the first two halo points upon entry.

smoothed_drdt_drds

mom_full_convection

Returns the partial derivatives of locally referenced potential density with temperature and salinity after the properties have been smoothed with a small constant diffusivity.

soliton_initialize_thickness

soliton_initialization

Initialization of thicknesses in equatorial Rossby soliton test, as described in section 6.1 of Haidvogel and Beckman (1990) and in Boyd (1980, JPO) and Boyd (1985, JPO).

soliton_initialize_velocity

soliton_initialization

Initialization of u and v in the equatorial Rossby soliton test, as described in section 6.1 of Haidvogel and Beckman (1990) and in Boyd (1980, JPO) and Boyd (1985, JPO).

solo_step_ice_shelf

mom_ice_shelf

This routine is for stepping a stand-alone ice shelf model without an ocean.

solve_diag_dominant_tridiag

regrid_solvers

Solve the tridiagonal system AX = R.

solve_linear_system

regrid_solvers

Solve the linear system AX = R by Gaussian elimination.

solve_tridiagonal_system

regrid_solvers

Solve the tridiagonal system AX = R.

sort

mom_hor_bnd_diffusion

Receives a 1D array x and sorts it into ascending order.

sort_ml

mom_bulk_mixed_layer

This subroutine generates an array of indices that are sorted by layer density.

spec_vol_anomaly_elem_buggy_wright

mom_eos_wright

In situ specific volume anomaly of sea water using a buggy implementation of Wright, 1997 [kg m-3].

spec_vol_anomaly_elem_jackett06

mom_eos_jackett06

In situ specific volume anomaly of sea water using Jackett et al., 2006 [m3 kg-1].

spec_vol_anomaly_elem_linear

mom_eos_linear

Specific volume anomaly using a linear equation of state for density [m3 kg-1].

spec_vol_anomaly_elem_roquet_rho

mom_eos_roquet_rho

In situ specific volume anomaly of sea water from Roquet et al., 2015 [kg m-3].

spec_vol_anomaly_elem_roquet_spv

mom_eos_roquet_spv

Roquet et al. in situ specific volume anomaly of sea water [m3 kg-1].

spec_vol_anomaly_elem_teos10

mom_eos_teos10

GSW in situ specific volume anomaly [m3 kg-1].

spec_vol_anomaly_elem_unesco

mom_eos_unesco

In situ specific volume anomaly as fit by Jackett and McDougall, 1995 [m3 kg-1].

spec_vol_anomaly_elem_wright_full

mom_eos_wright_full

In situ specific volume anomaly of sea water using a full range fit by Wright, 1997 [kg m-3].

spec_vol_anomaly_elem_wright_red

mom_eos_wright_red

In situ specific volume anomaly of sea water using a reduced range fit by Wright, 1997 [m3 kg-1].

spec_vol_elem_buggy_wright

mom_eos_wright

In situ specific volume of sea water using a buggy implementation of Wright, 1997 [kg m-3].

spec_vol_elem_jackett06

mom_eos_jackett06

In situ specific volume of sea water using Jackett et al., 2006 [m3 kg-1].

spec_vol_elem_linear

mom_eos_linear

Specific volume using a linear equation of state for density [m3 kg-1].

spec_vol_elem_roquet_rho

mom_eos_roquet_rho

In situ specific volume of sea water from Roquet et al., 2015 [kg m-3].

spec_vol_elem_roquet_spv

mom_eos_roquet_spv

Roquet et al. in situ specific volume of sea water [m3 kg-1].

spec_vol_elem_teos10

mom_eos_teos10

GSW in situ specific volume [m3 kg-1].

spec_vol_elem_unesco

mom_eos_unesco

In situ specific volume as fit by Jackett and McDougall, 1995 [m3 kg-1].

spec_vol_elem_wright_full

mom_eos_wright_full

In situ specific volume of sea water using a full range fit by Wright, 1997 [kg m-3].

spec_vol_elem_wright_red

mom_eos_wright_red

In situ specific volume of sea water using a reduced range fit by Wright, 1997 [m3 kg-1].

spherical_harmonics_end

mom_spherical_harmonics

Deallocate any variables allocated in spherical_harmonics_init.

spherical_harmonics_forward

mom_spherical_harmonics

Calculates forward spherical harmonics transforms.

spherical_harmonics_init

mom_spherical_harmonics

Calculate precomputed coefficients.

spherical_harmonics_inverse

mom_spherical_harmonics

Calculates inverse spherical harmonics transforms.

spike

neverworld_initialization

Returns the value of a sin-spike function evaluated at x/L [nondim].

sponge_end

mom_sponge

This call deallocates any memory in the sponge control structure.

sr_error_parser

database_client_interface

Decode a response code from an API function.

stat

posix

Get file status.

state_dependent_char

regrid_consts

Returns true if the coordinate is dependent on the state density, returns false otherwise.

state_dependent_int

regrid_consts

Returns true if the coordinate is dependent on the state density, returns false otherwise.

stdout_if_root

mom_io

Return the index of sdtout if called from the root PE, or 0 for other PEs.

step_forward_meke

mom_meke

Integrates forward-in-time the MEKE eddy energy equation. See

step_mom

mom

This subroutine orchestrates the time stepping of MOM. The adiabatic dynamics are stepped by calls to one of the step_MOM_dyn_…routines. The action of lateral processes on tracers occur in calls to advect_tracer and tracer_hordiff. Vertical mixing and possibly remapping occur inside of diabatic.

step_mom_dyn_split_rk2

mom_dynamics_split_rk2

RK2 splitting for time stepping MOM adiabatic dynamics.

step_mom_dyn_split_rk2b

mom_dynamics_split_rk2b

RK2 splitting for time stepping MOM adiabatic dynamics.

step_mom_dyn_unsplit

mom_dynamics_unsplit

Step the MOM6 dynamics using an unsplit mixed 2nd order (for continuity) and 3rd order (for the inviscid momentum equations) order scheme.

step_mom_dyn_unsplit_rk2

mom_dynamics_unsplit_rk2

Step the MOM6 dynamics using an unsplit quasi-2nd order Runge-Kutta scheme.

step_mom_dynamics

mom

Time step the ocean dynamics, including the momentum and continuity equations.

step_mom_thermo

mom

MOM_step_thermo orchestrates the thermodynamic time stepping and vertical remapping, via calls to diabatic (or adiabatic).

step_mom_tracer_dyn

mom

step_MOM_tracer_dyn does tracer advection and lateral diffusion, bringing the tracers up to date with the changes in state due to the dynamics. Surface sources and sinks and remapping are handled via step_MOM_thermo.

step_offline

mom

step_offline is the main driver for running tracers offline in MOM6. This has been primarily developed with ALE configurations in mind. Some work has been done in isopycnal configuration, but the work is very preliminary. Some more detail about this capability along with some of the subroutines called here can be found in tracers/MOM_offline_control.F90

stoch_eos_register_restarts

mom_stoch_eos

Register fields related to the stoch_EOS module for resarts.

stochastics_init

mom_stochastics

stokes_pgf

mom_wave_interface

Computes tendency due to Stokes pressure gradient force anomaly including analytical integration of Stokes shear using multiple-exponential decay Stokes drift profile and vertical integration of the resulting pressure anomaly to the total pressure gradient force.

stokesmixing

mom_wave_interface

Explicit solver for Stokes mixing. Still in development do not use.

store_2d

mom_diag_buffers

Store a 2D array into this buffer.

store_3d

mom_diag_buffers

Store a 3d array into this buffer.

store_stocks

mom_tracer_flow_control

This routine stores the stocks and does error handling for call_tracer_stocks.

streamfn_solver

mom_thickness_diffuse

Tridiagonal solver for streamfunction at interfaces.

stresses_to_ustar

mom_surface_forcing

Translate the wind stresses into the friction velocity, including effects of background gustiness.

string_functions_unit_tests

mom_string_functions

Returns true if a unit test of string_functions fails.

strip_quotes

mom_file_parser

This function removes single and double quotes from a character string.

sum_en

mom_internal_tides

Checks for energy conservation on computational domain.

sum_square_matrix

mom_ice_shelf_dynamics

summarize

numerical_testing_type

Summarize results.

sumswoverbands

mom_opacity

This subroutine calculates the total shortwave heat flux integrated over bands as a function of depth. This routine is only called for computing buoyancy fluxes for use in KPP. This routine does not update the state.

supercritical_set_obc_data

supercritical_initialization

This subroutine sets the properties of flow at open boundary conditions.

surface_bands_by_data_override

mom_wave_interface

A subroutine to fill the Stokes drift from a NetCDF file using the data_override procedures.

surface_flux_compute

marbl_interface

Dummy version of MARBL’s

surface_forcing_end

mom_surface_forcing

Deallocate memory associated with the surface forcing module.

surface_forcing_end

mom_surface_forcing_gfdl

Clean up and deallocate any memory associated with this module and its children.

surface_forcing_init

mom_surface_forcing

Initialize the surface forcing module.

surface_forcing_init

mom_surface_forcing_gfdl

Initialize the surface forcing, including setting parameters and allocating permanent memory.

sw_pen_frac_morel

mom_opacity

This sets the penetrating shortwave fraction according to the scheme proposed by Morel and Antoine (1994).

swap

mom_barotropic

Swap the values of two real variables.

swap

mom_hor_bnd_diffusion

Swaps the values of its two formal arguments.

symmetric_sum_1d

mom_array_transform

Do a rotationally symmetric sum of a 1-d array.

symmetric_sum_2d

mom_array_transform

Do a rotationally symmetric sum of a 2-d array using a recursive “Union-Jack” pattern of addition.

symmetric_sum_unit_tests

mom_array_transform

Returns true if a unit test of the symmetric sums fails.

tdma6

mom_wave_speed

Solve a non-symmetric tridiagonal problem with the sum of the upper and lower diagonals minus a scalar contribution as the leading diagonal. This uses the Thomas algorithm rather than the Hallberg algorithm since the matrix is not symmetric.

teleport

mom_internal_tides

Moves energy across lines of partial reflection to prevent reflection of energy that is supposed to get across.

temper

mom_random

Tempering of bits in y.

test

numerical_testing_type

Update the state with “test”.

test_answer

mom_mixed_layer_restrat

Returns true if any cell of u and u_true are not identical. Returns false otherwise.

test_boundary_k_range

mom_hor_bnd_diffusion

Return true if output of unit tests for boundary_k_range does not match answers.

test_clear_unallocated_block

mom_file_parser_tests

test_close_param_file_quiet

mom_file_parser_tests

test_close_unallocated_block

mom_file_parser_tests

test_cuberoot

mom_intrinsic_functions

True if the cube of cuberoot(val) does not closely match val. False otherwise.

test_data1d

mom_neutral_diffusion

Returns true if comparison of Po and Ptrue fails, and conditionally writes results to stream.

test_data1di

mom_neutral_diffusion

Returns true if comparison of Po and Ptrue fails, and conditionally writes results to stream.

test_eos_consistency

mom_eos

Test an equation of state for self-consistency and consistency with check values, returning false if it is consistent by all tests, and true if it fails any test.

test_fn

mom_random

Convenience function for reporting result of test.

test_fv_diff

mom_neutral_diffusion

Returns true if a test of

test_fvlsq_slope

mom_neutral_diffusion

Returns true if a test of

test_get_param_char

mom_file_parser_tests

test_get_param_char_array

mom_file_parser_tests

test_get_param_char_no_read_no_log

mom_file_parser_tests

test_get_param_int

mom_file_parser_tests

test_get_param_int_array

mom_file_parser_tests

test_get_param_int_array_no_read_no_log

mom_file_parser_tests

test_get_param_int_no_read_no_log

mom_file_parser_tests

test_get_param_logical

mom_file_parser_tests

test_get_param_logical_default

mom_file_parser_tests

test_get_param_logical_no_read_no_log

mom_file_parser_tests

test_get_param_real

mom_file_parser_tests

test_get_param_real_array

mom_file_parser_tests

test_get_param_real_array_no_read_no_log

mom_file_parser_tests

test_get_param_real_no_read_no_log

mom_file_parser_tests

test_get_param_time

mom_file_parser_tests

test_get_param_time_no_read_no_log

mom_file_parser_tests

test_ifndp

mom_neutral_diffusion

Returns true if a test of

test_interp

mom_remapping

Test if

test_l_open_concave

mom_set_visc

Test the validity the normalized open lengths of each interface for concave bathymetry (from the ocean perspective) by evaluating and returing the relevant cubic equations.

test_layer_fluxes

mom_hor_bnd_diffusion

Returns true if output of near-boundary unit tests does not match correct computed values and conditionally writes results to stream.

test_line

regrid_edge_values

Test that A*C = R to within a tolerance, issuing a fatal error with an explanatory message if they do not.

test_log_param_int

mom_file_parser_tests

test_log_param_int_array

mom_file_parser_tests

test_log_param_real

mom_file_parser_tests

test_log_param_real_array

mom_file_parser_tests

test_log_param_time

mom_file_parser_tests

test_log_param_time_as_date

mom_file_parser_tests

test_log_param_time_as_date_default

mom_file_parser_tests

test_log_param_time_as_date_tick

mom_file_parser_tests

test_log_param_time_with_timeunit

mom_file_parser_tests

test_log_param_time_with_unit

mom_file_parser_tests

test_log_version_cs

mom_file_parser_tests

test_log_version_plain

mom_file_parser_tests

test_missing_param_file

mom_file_parser_tests

test_nsp

mom_neutral_diffusion

Returns true if output of find_neutral_surface_positions() does not match correct values, and conditionally writes results to stream.

test_open_param_file

mom_file_parser_tests

test_open_param_file_checkable

mom_file_parser_tests

test_open_param_file_component

mom_file_parser_tests

test_open_param_file_docdir

mom_file_parser_tests

test_open_param_file_empty_filename

mom_file_parser_tests

test_open_param_file_ioerr

mom_file_parser_tests

test_open_param_file_long_name

mom_file_parser_tests

test_open_param_file_netcdf

mom_file_parser_tests

test_open_param_file_no_doc

mom_file_parser_tests

test_open_unallocated_block

mom_file_parser_tests

test_preserve_uniform

mom_remapping

Test that remapping a uniform field remains uniform.

test_read_param_assign_after_override

mom_file_parser_tests

test_read_param_assign_in_define

mom_file_parser_tests

test_read_param_assign_repeat

mom_file_parser_tests

test_read_param_assign_twice

mom_file_parser_tests

test_read_param_block

mom_file_parser_tests

test_read_param_block_close_unnamed

mom_file_parser_tests

test_read_param_block_close_unopened

mom_file_parser_tests

test_read_param_block_empty_pop

mom_file_parser_tests

test_read_param_block_inline_stack

mom_file_parser_tests

test_read_param_block_outside_block

mom_file_parser_tests

test_read_param_block_stack

mom_file_parser_tests

test_read_param_block_unmatched

mom_file_parser_tests

test_read_param_char_apostrophe_delim

mom_file_parser_tests

test_read_param_char_array

mom_file_parser_tests

test_read_param_char_array_missing

mom_file_parser_tests

test_read_param_char_missing

mom_file_parser_tests

test_read_param_char_no_delim

mom_file_parser_tests

test_read_param_char_quote_delim

mom_file_parser_tests

test_read_param_define

mom_file_parser_tests

test_read_param_define_as_flag

mom_file_parser_tests

test_read_param_int

mom_file_parser_tests

test_read_param_int_array

mom_file_parser_tests

test_read_param_int_array_missing

mom_file_parser_tests

test_read_param_int_array_type_err

mom_file_parser_tests

test_read_param_int_array_undefined

mom_file_parser_tests

test_read_param_int_missing

mom_file_parser_tests

test_read_param_int_type_err

mom_file_parser_tests

test_read_param_int_undefined

mom_file_parser_tests

test_read_param_logical

mom_file_parser_tests

test_read_param_logical_missing

mom_file_parser_tests

test_read_param_misplaced_quote

mom_file_parser_tests

test_read_param_multiline_comment

mom_file_parser_tests

test_read_param_multiline_comment_unclosed

mom_file_parser_tests

test_read_param_multiline_param

mom_file_parser_tests

test_read_param_multiline_param_unclosed

mom_file_parser_tests

test_read_param_null_stmt

mom_file_parser_tests

test_read_param_override

mom_file_parser_tests

test_read_param_override_misplaced

mom_file_parser_tests

test_read_param_override_no_def

mom_file_parser_tests

test_read_param_override_repeat

mom_file_parser_tests

test_read_param_override_twice

mom_file_parser_tests

test_read_param_override_warn_chain

mom_file_parser_tests

test_read_param_pad_equals

mom_file_parser_tests

test_read_param_real

mom_file_parser_tests

test_read_param_real_array

mom_file_parser_tests

test_read_param_real_array_missing

mom_file_parser_tests

test_read_param_real_array_type_err

mom_file_parser_tests

test_read_param_real_array_undefined

mom_file_parser_tests

test_read_param_real_missing

mom_file_parser_tests

test_read_param_real_type_err

mom_file_parser_tests

test_read_param_real_undefined

mom_file_parser_tests

test_read_param_replace_tabs

mom_file_parser_tests

test_read_param_time_bad_tuple

mom_file_parser_tests

test_read_param_time_bad_tuple_values

mom_file_parser_tests

test_read_param_time_date

mom_file_parser_tests

test_read_param_time_date_bad_format

mom_file_parser_tests

test_read_param_time_missing

mom_file_parser_tests

test_read_param_time_tuple

mom_file_parser_tests

test_read_param_time_type_err

mom_file_parser_tests

test_read_param_time_undefined

mom_file_parser_tests

test_read_param_time_unit

mom_file_parser_tests

test_read_param_unused_fatal

mom_file_parser_tests

test_recon_consistency

mom_remapping

Test class-based remapping for internal consistency on random data.

test_reintegrate

mom_remapping

Test if

test_reopen_param_file

mom_file_parser_tests

test_rnp

mom_neutral_diffusion

Compares output position from refine_nondim_position with an expected value.

test_tfr_consistency

mom_eos

test_ts_conversion_consistency

mom_eos

test_unchanged_grid

mom_remapping

Test that remapping to the same grid preserves answers.

testformattedfloatisreal

mom_document

This function tests whether a real value is encoded in a string.

thickness_diffuse

mom_thickness_diffuse

Calculates isopycnal height diffusion coefficients and applies isopycnal height diffusion by modifying to the layer thicknesses, h. Diffusivities are limited to ensure stability. Also returns along-layer mass fluxes used in the continuity equation.

thickness_diffuse_end

mom_thickness_diffuse

Deallocate the thickness_diffus3 control structure.

thickness_diffuse_full

mom_thickness_diffuse

Calculates parameterized layer transports for use in the continuity equation. Fluxes are limited to give positive definite thicknesses. Called by

thickness_diffuse_get_kh

mom_thickness_diffuse

Copies KH_u_GME and KH_v_GME from private type into arrays provided as arguments.

thickness_diffuse_init

mom_thickness_diffuse

Initialize the isopycnal height diffusion module and its control structure.

thickness_to_dz_3d

mom_interface_heights

Converts layer thicknesses in thickness units to the vertical distance between edges in height units, perhaps by multiplication by the precomputed layer-mean specific volume stored in an array in the thermo_var_ptrs type when in non-Boussinesq mode.

thickness_to_dz_jslice

mom_interface_heights

Converts a vertical i- / k- slice of layer thicknesses in thickness units to the vertical distance between edges in height units, perhaps by multiplication by the precomputed layer-mean specific volume stored in an array in the thermo_var_ptrs type when in non-Boussinesq mode.

tidal_bay_set_obc_data

tidal_bay_initialization

This subroutine sets the properties of flow at open boundary conditions.

tidal_forcing_end

mom_tidal_forcing

This subroutine deallocates memory associated with the tidal forcing module.

tidal_forcing_init

mom_tidal_forcing

This subroutine allocates space for the static variables used by this module. The metrics may be effectively 0, 1, or 2-D arrays, while fields like the background viscosities are 2-D arrays. ALLOC is a macro defined in

tidal_frequency

mom_tidal_forcing

Looks up angular frequencies for the main tidal constituents. Values used here are from previous versions of MOM.

tidal_mixing_end

mom_tidal_mixing

Deallocate fields.

tidal_mixing_h_amp

mom_tidal_mixing

This subroutine returns a zonal slice of the topographic roughness amplitudes.

tidal_mixing_init

mom_tidal_mixing

Initializes internal tidal dissipation scheme for diapycnal mixing.

time_interp_external_0d

mom_interpolate

Read a scalar field based on model time.

time_interp_external_2d

mom_interpolate

Read a 2d field from an external based on model time, potentially including horizontal interpolation and rotation of the data.

time_interp_external_3d

mom_interpolate

Read a 3d field based on model time, and rotate to the model grid.

time_string

mom_document

This function returns a string with a time type formatted as seconds (perhaps including a fractional number of seconds) and days.

totalstuff

mom_debugging

This function returns the sum over computational domain of all processors of hThick*stuff, where stuff is a 3-d array at tracer points.

totaltands

mom_debugging

This subroutine display the total thickness, temperature and salinity as well as the change since the last call.

tracer_advect_end

mom_tracer_advect

Close the tracer advection module.

tracer_advect_init

mom_tracer_advect

Initialize lateral tracer advection module.

tracer_array_chkinv

mom_tracer_registry

Calculates and prints the global inventory of the first ntr tracers in the registry.

tracer_array_chksum

mom_tracer_registry

This subroutine writes out chksums for the first ntr registered tracers.

tracer_column_physics

user_tracer_example

This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers. The arguments to this subroutine are redundant in that h_new(k) = h_old(k) + ea(k) - eb(k-1) + eb(k) - ea(k+1)

tracer_epipycnal_ml_diff

mom_tracer_hor_diff

This subroutine does epipycnal diffusion of all tracers between the mixed and buffer layers and the interior, using the diffusivity in CSKhTr. Multiple iterations are used (if necessary) so that there is no limit on the acceptable time increment.

tracer_flow_control_end

mom_tracer_flow_control

tracer_flow_control_init

mom_tracer_flow_control

This subroutine calls all registered tracer initialization subroutines.

tracer_hor_diff_end

mom_tracer_hor_diff

tracer_hor_diff_init

mom_tracer_hor_diff

Initialize lateral tracer diffusion module.

tracer_hordiff

mom_tracer_hor_diff

Compute along-coordinate diffusion of all tracers using the diffusivity in CSKhTr, or using space-dependent diffusivity. Multiple iterations are used (if necessary) so that there is no limit on the acceptable time increment.

tracer_name_lookup

mom_tracer_registry

Find a tracer in the tracer registry by name.

tracer_reg_chkinv

mom_tracer_registry

Calculates and prints the global inventory of all tracers in the registry.

tracer_reg_chksum

mom_tracer_registry

This subroutine writes out chksums for all the registered tracers.

tracer_registry_end

mom_tracer_registry

This routine closes the tracer registry module.

tracer_registry_init

mom_tracer_registry

Initialize the tracer registry.

tracer_vertdiff

mom_tracer_diabatic

This subroutine solves a tridiagonal equation for the final tracer concentrations after the dual-entrainments, and possibly sinking or surface and bottom sources, are applied. The sinking is implemented with an fully implicit upwind advection scheme. Alternate time units can be used for the timestep, surface and bottom fluxes and sink_rate provided they are all consistent.

tracer_vertdiff_eulerian

mom_tracer_diabatic

This subroutine solves a tridiagonal equation for the final tracer concentrations after Eulerian mixing, and possibly sinking or surface and bottom sources, are applied. The sinking is implemented with an fully implicit upwind advection scheme. Alternate time units can be used for the timestep, surface and bottom fluxes and sink_rate provided they are all consistent.

tracer_z_init

mom_tracer_z_init

This function initializes a tracer by reading a Z-space file, returning .true. if this appears to have been successful, and false otherwise.

tracer_z_init_array

mom_tracer_z_init

Layer model routine for remapping tracers from pseudo-z coordinates into layers defined by target interface positions.

tridiag_det

mom_wave_speed

Calculate the determinant of a tridiagonal matrix with diagonals a,b-lam,c and its derivative with lam, where lam is constant across rows. Only the ratio of det to its derivative and their signs are typically used, so internal rescaling by consistent factors are used to avoid over- or underflow.

tridiagts

mom_diabatic_aux

This is a simple tri-diagonal solver for T and S. “Simple” means it only uses arrays hold, ea and eb.

tridiagts_eulerian

mom_diabatic_aux

This is a simple tri-diagonal solver for T and S, with mixing across interfaces but no net transfer of mass.

trim_for_ice

mom_state_initialization

Adjust the layer thicknesses by cutting away the top of each model column at the depth where the hydrostatic pressure matches an imposed surface pressure read from file.

trim_trailing_commas

mom_string_functions

Returns a left-adjusted string with trailing blanks and commas removed.

truncate_velocities

mom_barotropic

Do a CFL-based truncation of any excessively large batotropic velocities. This should only be used as desperate debugging measure.

ts_plm_edge_values

mom_ale

Calculate edge values (top and bottom of layer) for T and S consistent with a PLM reconstruction in the vertical direction. Boundary reconstructions are PCM unless bdry_extrap is true.

ts_plm_wls_edge_values

mom_ale

Calculate edge values (top and bottom of layer) for T and S consistent with a PLM reconstruction in the vertical direction that uses weighted least squares for the slope.

ts_ppm_edge_values

mom_ale

Calculate edge values (top and bottom of layer) for T and S consistent with a PPM reconstruction in the vertical direction. Boundary reconstructions are PCM unless bdry_extrap is true.

turning_latitude

mom_internal_tides

twist

mom_random

Twist bits of u and v.

uhbt_to_ubt

mom_barotropic

This function inverts the transport function to determine the barotopic velocity that is consistent with a given transport, or if INTEGRAL_BT_CONT=True this finds the time-integrated velocity that is consistent with a time-integrated transport.

undef_string

mom_document

This function returns a string for formatted false logicals.

uniformresolution

mom_regridding

Return a uniform resolution vector in the units of the coordinate.

unique

mom_hor_bnd_diffusion

Returns the unique values in a 1D array.

unit_no_scaling_init

mom_unit_scaling

Allocates and initializes the ocean model unit scaling type to unscaled values.

unit_scaling_end

mom_unit_scaling

Deallocates a unit scaling structure.

unit_scaling_init

mom_unit_scaling

Allocates and initializes the ocean model unit scaling type.

unit_tests

recon1d_eppm_cwk

Runs EPPM_CWK reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_ppm_cwk

Runs PPM_CWK reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_plm_cw

Runs PLM reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_pcm

Runs PCM reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

mom_unit_tests

Calls unit tests for other modules. Note that if a unit test returns true, a FATAL error is triggered.

unit_tests

recon1d_emplm_cwk

Runs PLM reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_ppm_hybgen

Runs PPM_hybgen reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_mplm_wa

Runs PLM reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_emplm_wa_poly

Runs PLM reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_ppm_h4_2019

Runs PPM_H4_2019 reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_emplm_wa

Runs PLM reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_ppm_h4_2018

Runs PPM_H4_2018 reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_mplm_cwk

Runs PLM reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_plm_wls

Runs PLM_WLS reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_plm_hybgen

Runs PLM reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_ppm_cw

Runs PPM_CW reconstruction unit tests and returns True for any fails, False otherwise.

unit_tests

recon1d_mplm_wa_poly

Runs PLM reconstruction unit tests and returns True for any fails, False otherwise.

unpack_tensor_double_1d

database_client_interface

Unpack a 64-bit real 1d tensor from the database.

unpack_tensor_double_2d

database_client_interface

Unpack a 64-bit real 2d tensor from the database.

unpack_tensor_double_3d

database_client_interface

Unpack a 64-bit real 3d tensor from the database.

unpack_tensor_double_4d

database_client_interface

Unpack a 64-bit real 4d tensor from the database.

unpack_tensor_float_1d

database_client_interface

Unpack a 32-bit real 1d tensor from the database.

unpack_tensor_float_2d

database_client_interface

Unpack a 32-bit real 2d tensor from the database.

unpack_tensor_float_3d

database_client_interface

Unpack a 32-bit real 3d tensor from the database.

unpack_tensor_float_4d

database_client_interface

Unpack a 32-bit real 4d tensor from the database.

unpack_tensor_int32_1d

database_client_interface

Unpack a 32-bit integer 1d tensor from the database.

unpack_tensor_int32_2d

database_client_interface

Unpack a 32-bit integer 2d tensor from the database.

unpack_tensor_int32_3d

database_client_interface

Unpack a 32-bit integer 3d tensor from the database.

unpack_tensor_int32_4d

database_client_interface

Unpack a 32-bit integer 4d tensor from the database.

up3_koren_limiter_reconstruction

mom_coriolisadv

Reconstruct the scalar (e.g., PV, vorticity) onto point i-1/2 using a third-order upwind scheme with the Koren flux limiter.

up3_reconstruction

mom_coriolisadv

Reconstruct the scalar (e.g., pv, vorticity) onto point i-1/2 using a third-order upwind scheme.

update_file_contents_nc

mom_io_file

Update the axes and fields descriptors of a MOM netCDF file.

update_h_horizontal_flux

mom_offline_aux

This updates thickness based on the convergence of horizontal mass fluxes NOTE: Only used in non-ALE mode.

update_h_vertical_flux

mom_offline_aux

Updates layer thicknesses due to vertical mass transports NOTE: Only used in non-ALE configuration.

update_ice_shelf

mom_ice_shelf_dynamics

This subroutine updates the ice shelf velocities, mass, stresses and properties due to the ice shelf dynamics.

update_netcdf_timestep

mom_netcdf

Set the current timestep of an open netCDF file.

update_obc_data

mom_boundary_update

Calls appropriate routine to update the open boundary conditions.

update_obc_ramp

mom_open_boundary

Update the OBC ramp value as a function of time. If called with the optional argument activate=.true., record the value of Time as the beginning of the ramp period.

update_obc_segment_data

mom_open_boundary

Update the OBC values on the segments.

update_ocean_model

ocean_model_mod

update_ocean_model uses the forcing in Ice_ocean_boundary to advance the ocean model’s state from the input value of Ocean_state (which must be for time time_start_update) for a time interval of Ocean_coupling_time_step, returning the publicly visible ocean surface properties in Ocean_sfc and storing the new ocean properties in Ocean_state.

update_od_ffrac

mom_ice_shelf_dynamics

update_od_ffrac_uncoupled

mom_ice_shelf_dynamics

update_offline_fields

mom_offline_main

Update fields used in this round of offline transport. First fields are updated from files or from arrays read during initialization. Then if in an ALE-dependent coordinate, regrid/remap fields.

update_offline_from_arrays

mom_offline_aux

Fields for offline transport are copied from the stored arrays read during initialization.

update_offline_from_files

mom_offline_aux

Controls the reading in 3d mass fluxes, diffusive fluxes, and other fields stored in a previous integration of the online model.

update_segment_thickness_reservoirs

mom_open_boundary

Update the OBC thickness reservoirs after the thicknesses have been updated.

update_segment_tracer_reservoirs

mom_open_boundary

Update the OBC tracer reservoirs after the tracers have been updated.

update_shelf_mass

mom_ice_shelf

Updates the ice shelf mass using data from a file.

update_stochastics

mom_stochastics

update_ocean_model uses the forcing in Ice_ocean_boundary to advance the ocean model’s state from the input value of Ocean_state (which must be for time time_start_update) for a time interval of Ocean_coupling_time_step, returning the publicly visible ocean surface properties in Ocean_sfc and storing the new ocean properties in Ocean_state.

update_stokes_drift

mom_wave_interface

Constructs the Stokes Drift profile on the model grid based on desired coupling options.

update_surface_waves

mom_wave_interface

Subroutine that handles updating of surface wave/Stokes drift related properties.

update_velocity_masks

mom_ice_shelf_dynamics

updatecfltruncationvalue

mom_vert_friction

Update the CFL truncation value as a function of time. If called with the optional argument activate=.true., record the value of Time as the beginning of the ramp period.

uppercase

mom_string_functions

Return a string in which all uppercase letters have been replaced by their lowercase counterparts.

user_alter_forcing

user_revise_forcing

This subroutine sets the surface wind stresses.

user_buoyancy_forcing

user_surface_forcing

This subroutine specifies the current surface fluxes of buoyancy or temperature and fresh water. It may also be modified to add surface fluxes of user provided tracers.

user_change_diff

user_change_diffusivity

This subroutine provides an interface for a user to use to modify the main code to alter the diffusivities as needed. The specific example implemented here augments the diffusivity for a specified range of latitude and coordinate potential density.

user_change_diff_end

user_change_diffusivity

Clean up the module control structure.

user_change_diff_init

user_change_diffusivity

Set up the module control structure.

user_init_ice_thickness

user_shelf_init

This subroutine updates the ice shelf thickness, as specified by user-provided code.

user_init_temperature_salinity

user_initialization

This function puts the initial layer temperatures and salinities into T(:,:,:) and S(:,:,:).

user_initialize_shelf_mass

user_shelf_init

This subroutine sets up the initial mass and area covered by the ice shelf, based on user-provided code.

user_initialize_sponges

user_initialization

Set up the sponges.

user_initialize_thickness

user_initialization

Initialize thicknesses in depth units. These will be converted to thickness units later.

user_initialize_topography

user_initialization

Initialize topography.

user_initialize_tracer

user_tracer_example

This subroutine initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output.

user_initialize_velocity

user_initialization

initialize velocities.

user_register_tracer_example

user_tracer_example

This subroutine is used to register tracer fields and subroutines to be used with MOM.

user_revise_forcing_init

user_revise_forcing

Initialize the

user_set_coord

user_initialization

Set vertical coordinates.

user_set_obc_data

user_initialization

This subroutine sets the properties of flow at open boundary conditions.

user_set_rotation

user_initialization

user_surface_forcing_init

user_surface_forcing

This subroutine initializes the USER_surface_forcing module.

user_tracer_example_end

user_tracer_example

Clean up allocated memory at the end.

user_tracer_stock

user_tracer_example

This function calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.

user_tracer_surface_state

user_tracer_example

This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations.

user_update_shelf_mass

user_shelf_init

This subroutine updates the ice shelf mass, as specified by user-provided code.

user_wind_forcing

user_surface_forcing

This subroutine sets the surface wind stresses, forcestaux and forcestauy, in [R Z L T-2 ~> Pa]. These are the stresses in the direction of the model grid (i.e. the same direction as the u- and v- velocities).

ust_2_u10_coare3p5

mom_wave_interface

Computes wind speed from ustar_air based on COARE 3.5 Cd relationship Probably doesn’t belong in this module, but it is used here to estimate wind speed for wind-wave relationships. Should be a fine way to estimate the neutral wind-speed as written here.

val_weights

user_change_diffusivity

This subroutine returns a value that goes smoothly from 0 to 1, stays at 1, and then goes smoothly back to 0 at the four values of range. The transitions are cubic, and have zero first derivatives where the curves hit 0 and 1. The values in range must be in ascending order, as can be checked by calling range_OK.

var_desc

mom_io

Returns a vardesc type whose elements have been filled with the provided fields. The argument name is required, while the others are optional and have default values that are empty strings or are appropriate for a 3-d tracer field at the tracer cell centers.

varmix_end

mom_lateral_mixing_coeffs

Destructor for VarMix control structure.

varmix_init

mom_lateral_mixing_coeffs

Initializes the variables mixing coefficients container.

verify_variable_units

mom_io

Verify that a file contains a named variable with the expected units.

vert_fill_ts

mom_isopycnal_slopes

Returns tracer arrays (nominally T and S) with massless layers filled with sensible values, by diffusing vertically with a small but constant diffusivity.

vertfpmix

mom_vert_friction

Add nonlocal stress increments to ui^n and vi^n.

vertical_average_interface

mom_meke

Compute average of interface quantities weighted by the thickness of the surrounding layers [arbitrary].

verticalgridend

mom_verticalgrid

Deallocates the model’s vertical grid structure.

verticalgridinit

mom_verticalgrid

Allocates and initializes the ocean model vertical grid structure.

vertically_interpolate_diag_field

mom_diag_remap

Vertically interpolate diagnostic field to alternative vertical grid.

vertically_interpolate_field

mom_diag_remap

Internal routine to vertically interpolate a diagnostic field to an alternative vertical grid.

vertically_reintegrate_diag_field

mom_diag_remap

Vertically re-grid an already vertically-integrated diagnostic field to alternative vertical grid.

vertically_reintegrate_field

mom_diag_remap

The internal routine to vertically re-grid an already vertically-integrated diagnostic field to an alternative vertical grid.

vertvisc

mom_vert_friction

Perform a fully implicit vertical diffusion of momentum. Stress top and bottom boundary conditions are used.

vertvisc_coef

mom_vert_friction

Calculate the coupling coefficients (CSa_u, CSa_v, CSa_u_gl90, CSa_v_gl90) and effective layer thicknesses (CSh_u and CSh_v) for later use in the applying the implicit vertical viscosity via

vertvisc_end

mom_vert_friction

Clean up and deallocate the vertical friction module.

vertvisc_init

mom_vert_friction

Initialize the vertical friction module.

vertvisc_limit_vel

mom_vert_friction

Velocity components which exceed a threshold for physically reasonable values are truncated, and the running sum of the number of trunctionas within the non-symmetric memory computational domain is incremented. Optionally, any column with excessive velocities may be sent to a diagnostic reporting subroutine.

vertvisc_remnant

mom_vert_friction

Calculate the fraction of momentum originally in a layer that remains in the water column after a time-step of viscosity, equivalently the fraction of a time-step’s worth of barotropic acceleration that a layer experiences after viscosity is applied.

vhbt_to_vbt

mom_barotropic

This function inverts the transport function to determine the barotopic velocity that is consistent with a given transport, or if INTEGRAL_BT_CONT=True this finds the time-integrated velocity that is consistent with a time-integrated transport.

volume_above_floatation

mom_ice_shelf_dynamics

wave_drag_calc

mom_wave_drag

This subroutine calculates the sum of the products of the tidal velocities and the scaled frequency-dependent drag for each tidal constituent specified in MOM_input.

wave_drag_init

mom_wave_drag

This subroutine reads drag coefficients from file.

wave_speed

mom_wave_speed

Calculates the wave speed of the first baroclinic mode.

wave_speed_init

mom_wave_speed

Initialize control structure for MOM_wave_speed.

wave_speed_set_param

mom_wave_speed

Sets internal parameters for MOM_wave_speed.

wave_speeds

mom_wave_speed

Calculates the wave speeds for the first few barolinic modes.

waves_end

mom_wave_interface

Clear pointers, deallocate memory.

waves_register_restarts

mom_wave_interface

Register wave restart fields. To be called before MOM_wave_interface_init.

weno_five_h_weight_reconstruction

mom_coriolisadv

Reconstruct the tracer (e.g., PV, vorticity) onto point i-1/2 using a fifth-order WENO scheme The reconstruction is weighted by the thickness.

weno_five_reconstruction_0

mom_coriolisadv

Reconstruction in the third upwind stencil of the fifth-order WENO scheme.

weno_five_reconstruction_1

mom_coriolisadv

Reconstruction in the second upwind stencil of the fifth-order WENO scheme.

weno_five_reconstruction_2

mom_coriolisadv

Reconstruction in the first upwind stencil of the fifth-order WENO scheme.

weno_five_weight_0

mom_coriolisadv

Compute the smoothness indicator for the third upwind stencil of the fifth-order WENO scheme.

weno_five_weight_1

mom_coriolisadv

Compute the smoothness indicator for the second upwind stencil of the fifth-order WENO scheme.

weno_five_weight_2

mom_coriolisadv

Compute the smoothness indicator for the first upwind stencil of the fifth-order WENO scheme.

weno_seven_h_weight_reconstruction

mom_coriolisadv

Reconstruct the tracer (e.g., PV, vorticity) onto point i-1/2 using a seventh-order WENO scheme This reconstruction computes a thickness weighted average of PV.

weno_seven_reconstruction_0

mom_coriolisadv

Reconstruction in the fourth upwind stencil for seventh-order WENO scheme.

weno_seven_reconstruction_1

mom_coriolisadv

Reconstruction in the third upwind stencil for seventh-order WENO scheme.

weno_seven_reconstruction_2

mom_coriolisadv

Reconstruction in the second upwind stencil for seventh-order WENO scheme.

weno_seven_reconstruction_3

mom_coriolisadv

Reconstruction in the first upwind stencil for seventh-order WENO scheme.

weno_seven_weight_0

mom_coriolisadv

Compute the smoothness indicator for the fourth upwind stencil of the seventh-order WENO scheme.

weno_seven_weight_1

mom_coriolisadv

Compute the smoothness indicator for the third upwind stencil of the seventh-order WENO scheme.

weno_seven_weight_2

mom_coriolisadv

Compute the smoothness indicator for the second upwind stencil of the seventh-order WENO scheme.

weno_seven_weight_3

mom_coriolisadv

Compute smoothness indicator for the first upwind stencil of the seventh-order WENO scheme.

weno_three_h_weight_reconstruction

mom_coriolisadv

Reconstruct the tracer (e.g., PV, vorticity) onto the point i-1/2 using a third-order WENO scheme This reconstruction is thickness-weighted.

weno_three_reconstruction_0

mom_coriolisadv

Reconstruction in the second upwind stencil of the third-order WENO scheme.

weno_three_reconstruction_1

mom_coriolisadv

Reconstruction in the first upwind stencil for third-order WENO scheme.

weno_three_weight

mom_coriolisadv

Compute the smoothness indicator for the two-point stencil of the third-order WENO scheme.

wind_forcing_1gyre

mom_surface_forcing

Sets the surface wind stresses to set up a single idealized gyre.

wind_forcing_2gyre

mom_surface_forcing

Sets the surface wind stresses to set up two idealized gyres.

wind_forcing_by_data_override

mom_surface_forcing

wind_forcing_const

mom_surface_forcing

Sets the surface wind stresses to constant values.

wind_forcing_from_file

mom_surface_forcing

wind_forcing_gyres

mom_surface_forcing

Sets the surface wind stresses to set up idealized gyres.

write_attribute_infra

mom_io_file

Write global metadata to the MOM framework file.

write_attribute_nc

mom_io_file

Write global metadata to the MOM netcdf file.

write_auto_mask_file

mom_domains

Write out the auto-generated mask information to a file in the run directory.

write_check_msg

mom_eos

Write a message indicating how well a value matches its check value.

write_cputime

mom_write_cputime

This subroutine assesses how much CPU time the model has taken and determines how long the model should be run before it saves a restart file and stops itself. Optionally this may also be used to trigger this module’s end routine.

write_cputime_start_clock

mom_write_cputime

Evaluate the CPU time returned by SYSTEM_CLOCK at the start of a run.

write_depth_list

mom_sum_output

This subroutine writes out the depth list to the specified file.

write_energy

mom_sum_output

This subroutine calculates and writes the total model energy, the energy and mass of each layer, and other globally integrated physical quantities.

write_field_0d_infra

mom_io_file

Write a 0D field to the MOM framework file.

write_field_0d_nc

mom_io_file

Write a 0D field to the MOM netcdf file.

write_field_1d_infra

mom_io_file

Write a 1D field to the MOM framework file.

write_field_1d_nc

mom_io_file

Write a 1D field to the MOM netcdf file.

write_field_2d_infra

mom_io_file

Write a 2D field to the MOM framework file.

write_field_2d_nc

mom_io_file

Write a 2D field to the MOM netcdf file.

write_field_3d_infra

mom_io_file

Write a 3D field to the MOM framework file.

write_field_3d_nc

mom_io_file

Write a 3D field to the MOM netcdf file.

write_field_4d_infra

mom_io_file

Write a 4D field to the MOM framework file.

write_field_4d_nc

mom_io_file

Write a 4D field to the MOM netcdf file.

write_field_axis_infra

mom_io_file

Write an axis field to the MOM framework file.

write_field_axis_nc

mom_io_file

Write an axis field to the MOM netcdf file.

write_hybgen_coord_file

mom_hybgen_regrid

Writes out a file containing any available data related to the vertical grid used by the MOM ocean model.

write_ice_shelf_energy

mom_ice_shelf_dynamics

Writes the total ice shelf kinetic energy and mass to an ascii file.

write_netcdf_attribute

mom_netcdf

Write a global attribute to a netCDF file.

write_netcdf_axis

mom_netcdf

Write axis points to associated netCDF variable.

write_netcdf_field_0d

mom_netcdf

Write a scalar to a compatible netCDF field.

write_netcdf_field_1d

mom_netcdf

Write a 1D array to a compatible netCDF field.

write_netcdf_field_2d

mom_netcdf

Write a 2D array to a compatible netCDF field.

write_netcdf_field_3d

mom_netcdf

Write a 3D array to a compatible netCDF field.

write_netcdf_field_4d

mom_netcdf

Write a 4D array to a compatible netCDF field.

write_obc_info

mom_open_boundary

Write out information about the contents of the OBC control structure.

write_ocean_geometry_file

mom_shared_initialization

Write out a file describing the topography, Coriolis parameter, grid locations and various other fixed fields from the grid.

write_ocean_obs_init

write_ocean_obs_mod

Initialize write_ocean_obs module.

write_profile

write_ocean_obs_mod

Write a profile.

write_regrid_file

mom_regridding

Write the vertical coordinate information into a file. This subroutine writes out a file containing any available data related to the vertical grid used by the MOM ocean model when in ALE mode.

write_static_fields

mom_diagnostics

Offers the static fields in the ocean grid type for output via the diag_manager.

write_stoch_restart_ocn

get_stochy_pattern_mod

Write the restart file for the stochastic physics perturbations.

write_u_accel

mom_pointaccel

This subroutine writes to an output file all of the accelerations that have been applied to a column of zonal velocities over the previous timestep. This subroutine is called from vertvisc.

write_user_log

user_shelf_init

This subroutine writes out the user ice shelf code version number to the model log.

write_user_log

user_initialization

Write output about the parameter values being used.

write_v_accel

mom_pointaccel

This subroutine writes to an output file all of the accelerations that have been applied to a column of meridional velocities over the previous timestep. This subroutine is called from vertvisc.

write_version_number

mom_io

Write a file version number to the log file or other output file.

write_vertgrid_file

mom_coord_initialization

Writes out a file containing any available data related to the vertical grid used by the MOM ocean model.

writemessageanddesc

mom_document

This subroutine writes out the message and description to the documentation files.

x

recon1d_ppm_cwk

Solver for x: f(x)=t.

x

recon1d_plm_cw

Solver for x such that f(x)=t.

x

recon1d_pcm

Solver for x: f(x)=t.

x

recon1d_type

Solve for x such that f(x)=t.

ypseudo

rossby_front_2d_initialization

Pseudo coordinate across domain used by Hml() and dTdy() returns a coordinate from -PI/2 .. PI/2 squashed towards the center of the domain [radians].

zb2020_copy_gradient_and_thickness

mom_zanna_bolton

Save precomputed velocity gradients and thickness from the horizontal eddy viscosity module We save as much halo for velocity gradients as possible In symmetric (preferable) memory model: halo 2 for sh_xx and halo 1 for sh_xy and vort_xy We apply zero boundary conditions to velocity gradients which is required for filtering operations.

zb2020_end

mom_zanna_bolton

Deallocate any variables allocated in ZB_2020_init.

zb2020_init

mom_zanna_bolton

Read parameters, allocate and precompute arrays, register diagnosicts used in Zanna_Bolton_2020().

zb2020_lateral_stress

mom_zanna_bolton

Baroclinic Zanna-Bolton-2020 parameterization, see eq. 6 in

zchksum

mom_checksums

Checksum a 1d array (typically a column).

zonal_bt_mass_flux

mom_continuity_ppm

Calculates the vertically integrated mass or volume fluxes through the zonal faces.

zonal_edge_thickness

mom_continuity_ppm

Set the reconstructed thicknesses at the eastern and western edges of tracer cells.

zonal_flux_adjust

mom_continuity_ppm

Returns the barotropic velocity adjustment that gives the desired barotropic (layer-summed) transport.

zonal_flux_en

mom_internal_tides

Evaluates the zonal mass or volume fluxes in a layer.

zonal_flux_layer

mom_continuity_ppm

Evaluates the zonal mass or volume fluxes in a layer.

zonal_flux_thickness

mom_continuity_ppm

Sets the effective interface thickness associated with the fluxes at each zonal velocity point, optionally scaling back these thicknesses to account for viscosity and fractional open areas.

zonal_mass_flux

mom_continuity_ppm

Calculates the mass or volume fluxes through the zonal faces, and other related quantities.