Modules

adjustment_initialization

Configures the model for the geostrophic adjustment test case.

advection_test_tracer

This tracer package is used to test advection schemes.

atmos_ocean_fluxes_mod

A dummy version of atmos_ocean_fluxes_mod() module for use when the vastly larger FMS package is not needed.

baroclinic_zone_initialization

Initial conditions for an idealized baroclinic zone.

basin_builder

An idealized topography building system.

benchmark_initialization

Initialization for the "bench mark" configuration.

bfb_initialization

Initialization of the boundary-forced-basing configuration.

bfb_surface_forcing

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

boundary_impulse_tracer

Implements a boundary impulse response tracer to calculate Green's functions.

circle_obcs_initialization

Configures the model for the "circle_obcs" experiment which tests Open Boundary Conditions radiating an SSH anomaly.

coord_adapt

Regrid columns for the adaptive coordinate.

coord_hycom

Regrid columns for the HyCOM coordinate.

coord_rho

Regrid columns for the continuous isopycnal (rho) coordinate.

coord_sigma

Regrid columns for the sigma coordinate.

coord_zlike

Regrid columns for a z-like coordinate (z-star, z-level)

database_client_interface

<undocumented>

dense_water_initialization

Initialization routines for the dense water formation and overflow experiment.

dome2d_initialization

Initialization of the 2D DOME experiment with density water initialized on a coastal shelf.

dome_initialization

Configures the model for the "DOME" experiment.

dome_tracer

A tracer package that is used as a diagnostic in the DOME experiments.

dumbbell_initialization

Configures the model for the idealized dumbbell test case.

dumbbell_surface_forcing

Surface forcing for the dumbbell test case.

dyed_channel_initialization

Initialization for the dyed_channel configuration.

dyed_obc_tracer

This tracer package dyes flow through open boundaries.

dyed_obcs_initialization

Dyed open boundary conditions; OBC_USER_CONFIG="dyed_obcs".

external_gwave_initialization

Initialization for the "external gravity wave wave" configuration.

get_stochy_pattern_mod

<undocumented>

harmonic_analysis

Major revision (August, 2025)

ideal_age_example

A tracer package of ideal age tracers.

idealized_hurricane

Forcing for the idealized hurricane and SCM_idealized_hurricane examples.

isomip_initialization

Configures the ISOMIP test case.

isomip_tracer

Routines used to set up and use a set of (one for now) dynamically passive tracers in the ISOMIP configuration.

kdtree

A null version of K-d tree from geoKdTree.

kelvin_initialization

Configures the model for the Kelvin wave experiment.

lock_exchange_initialization

Initialization of the "lock exchange" experiment.

marbl_constants_mod

A non-functioning template of the MARBL constants module.

marbl_forcing_mod

This module provides a common datatype to provide forcing for MARBL tracers regardless of driver.

marbl_interface

A non-functioning template of the MARBL interface.

marbl_interface_public_types

A non-functioning template of the public structures provided through MARBL interface.

marbl_logging

A non-functioning template of the MARBL logging module.

marbl_tracers

A tracer package for tracers computed in the MARBL library.

MARBL_tracers

<undocumented>

meso_surface_forcing

Sets forcing for the MESO configuration.

mom

The central module of the MOM6 ocean model.

mom_ale

This module contains the main regridding routines.

mom_ale_sponge

This module contains the routines used to apply sponge layers when using the ALE mode.

mom_ann

Implements the general purpose Artificial Neural Network (ANN).

mom_array_transform

Module for supporting the rotation of a field's index map.

mom_barotropic

Barotropic solver.

mom_bkgnd_mixing

Interface to background mixing schemes, including the Bryan and Lewis (1979) which is applied via CVMix.

mom_boundary_update

Controls where open boundary conditions are applied.

mom_bulk_mixed_layer

Build mixed layer parameterization.

mom_CFC_cap

<undocumented>

mom_cfc_cap

Simulates CFCs using atmospheric pressure, wind speed and sea ice cover provided via cap (only NUOPC cap is implemented so far).

mom_check_scaling

This module is used to check the dimensional scaling factors used by the MOM6 ocean model.

mom_checksum_packages

Provides routines that do checksums of groups of MOM variables.

mom_checksums

Routines to calculate checksums of various array and vector types.

mom_coms

Interfaces to non-domain-oriented communication subroutines, including the MOM6 reproducing sums facility.

mom_continuity

Solve the layer continuity equation.

mom_continuity_ppm

Solve the layer continuity equation using the PPM method for layer fluxes.

mom_controlled_forcing

Use control-theory to adjust the surface heat flux and precipitation.

mom_coord_initialization

Initializes fixed aspects of the related to its vertical coordinate.

mom_coriolisadv

Accelerations due to the Coriolis force and momentum advection.

mom_coupler_types

This module provides coupler type interfaces for use by MOM6.

mom_cpu_clock

Provides cpu clock functions.

mom_cvmix_conv

Interface to CVMix convection scheme.

mom_cvmix_ddiff

Interface to CVMix double diffusion scheme.

mom_cvmix_kpp

Provides the K-Profile Parameterization (KPP) of Large et al., 1994, via CVMix.

mom_cvmix_shear

Interface to CVMix interior shear schemes.

mom_data_override

These interfaces allow for ocean or sea-ice variables to be replaced with data.

MOM_data_override

Public functions: mom_data_override_infra:impose_data_init.

mom_database_comms

Contains routines necessary to initialize communication with a database.

mom_debugging

Provides checksumming functions for debugging.

mom_density_integrals

Provides integrals of density.

mom_diabatic_aux

Provides functions for some diabatic processes such as frazil, brine rejection, tendency due to surface flux divergence.

mom_diabatic_driver

This routine drives the diabatic/dianeutral physics for MOM.

mom_diag_buffers

Provides buffers that can dynamically grow as needed.

mom_diag_mediator

The subroutines here provide convenient wrappers to the FMS diag_manager interfaces with additional diagnostic capabilities.

mom_diag_remap

provides runtime remapping of diagnostics to z star, sigma and rho vertical coordinates.

mom_diagnose_kdwork

Provides diagnostics of work due to a given diffusivity.

mom_diagnose_mld

Provides functions for some diabatic processes such as fraxil, brine rejection, tendency due to surface flux divergence.

mom_diagnostics

Calculates any requested diagnostic quantities that are not calculated in the various subroutines.

mom_diapyc_energy_req

Calculates the energy requirements of mixing.

mom_document

The subroutines here provide hooks for document generation functions at various levels of granularity.

mom_domains

Describes the decomposed MOM domain and has routines for communications across PEs.

mom_dyn_horgrid

Contains a shareable dynamic type for describing horizontal grids and metric data and utilty routines that work on this type.

mom_dynamics_split_rk2

Time step the adiabatic dynamic core of MOM using RK2 method.

mom_dynamics_split_rk2b

Time step the adiabatic dynamic core of MOM using RK2 method with greater use of the time-filtered velocities and less inheritance of tedencies from the previous step in the predictor step than in the original MOM_dyanmics_split_RK2.

mom_dynamics_unsplit

Time steps the ocean dynamics with an unsplit quasi 3rd order scheme.

mom_dynamics_unsplit_rk2

Time steps the ocean dynamics with an unsplit quasi 2nd order Runge-Kutta scheme.

MOM_energetic_PBL

By Robert Hallberg, 2015.

mom_energetic_pbl

Energetically consistent planetary boundary layer parameterization.

mom_ensemble_manager

Manages ensemble member layout information.

mom_entrain_diffusive

Diapycnal mixing and advection in isopycnal mode.

mom_eos

Provides subroutines for quantities specific to the equation of state.

mom_eos_base_type

A generic type for equations of state.

mom_eos_jackett06

The equation of state using the Jackett et al 2006 expressions that are often used in Hycom.

mom_eos_Jackett06

<undocumented>

mom_eos_linear

A simple linear equation of state for sea water with constant coefficients.

mom_eos_roquet_rho

The equation of state using the expressions of Roquet et al.

mom_eos_Roquet_rho

<undocumented>

mom_eos_Roquet_SpV

<undocumented>

mom_eos_roquet_spv

The equation of state for specific volume (SpV) using the expressions of Roquet et al.

mom_eos_teos10

The equation of state using the TEOS10 expressions.

mom_eos_UNESCO

<undocumented>

mom_eos_unesco

The equation of state using the Jackett and McDougall fits to the UNESCO EOS.

mom_eos_wright

The equation of state using a poor implementation (missing parenthesis and bugs) of the reduced range Wright 1997 expressions.

mom_eos_wright_full

The equation of state using the Wright 1997 expressions with full range of data.

mom_eos_wright_red

The equation of state using the Wright 1997 expressions with reduced range of data.

mom_error_handler

Routines for error handling and I/O management.

mom_file_parser

The MOM6 facility to parse input files for runtime parameters.

mom_file_parser_tests

<undocumented>

mom_fixed_initialization

Initializes fixed aspects of the model, such as horizontal grid metrics, topography and Coriolis.

mom_forcing_type

This module implements boundary forcing for MOM6.

mom_full_convection

Does full convective adjustment of unstable regions via a strong diffusivity.

mom_generic_tracer

Drives the generic version of tracers TOPAZ and CFC and other GFDL BGC components.

mom_geothermal

Implemented geothermal heating at the ocean bottom.

mom_get_input

Reads the only Fortran name list needed to boot-strap the model.

mom_grid

Provides the ocean grid type.

mom_grid_initialize

Initializes horizontal grid.

mom_harmonic_analysis

Inline harmonic analysis (conventional)

mom_hor_bnd_diffusion

Calculates and applies diffusive fluxes as a parameterization of horizontal mixing (non-neutral) by mesoscale eddies near the top and bottom (to be implemented) boundary layers of the ocean.

mom_hor_index

Defines the horizontal index type (hor_index_type()) used for providing index ranges.

mom_hor_visc

Calculates horizontal viscosity and viscous stresses.

mom_horizontal_regridding

Horizontal interpolation.

mom_hybgen_regrid

This module contains the hybgen regridding routines from HYCOM, with minor modifications to follow the MOM6 coding conventions.

mom_hybgen_remap

This module contains the hybgen remapping routines from HYCOM, with minor modifications to follow the MOM6 coding conventions.

mom_hybgen_unmix

This module contains the hybgen unmixing routines from HYCOM, with modifications to follow the MOM6 coding conventions and several bugs fixed.

mom_ice_shelf

Implements the thermodynamic aspects of ocean / ice-shelf interactions, along with a crude placeholder for a later implementation of full ice shelf dynamics, all using the MOM framework and coding style.

mom_ice_shelf_dynamics

Implements a crude placeholder for a later implementation of full ice shelf dynamics.

mom_ice_shelf_initialize

Initialize ice shelf variables.

mom_ice_shelf_state

Implements the thermodynamic aspects of ocean / ice-shelf interactions, along with a crude placeholder for a later implementation of full ice shelf dynamics, all using the MOM framework and coding style.

mom_int_tide_input

Calculates energy input to the internal tides.

mom_interface_filter

Interface height filtering module.

mom_interface_heights

Functions for calculating interface heights, including free surface height.

mom_internal_tides

Subroutines that use the ray-tracing equations to propagate the internal tide energy density.

mom_interpolate

This module provides added functionality to the FMS temporal and spatial interpolation routines.

mom_intrinsic_functions

A module with intrinsic functions that are used by MOM but are not supported by some compilers.

mom_io

This module contains I/O framework code.

MOM_IO_file

This file defines the MOM_file classes used to inferface with the internal IO handlers, such as the configured "infra" layer (FMS) or native netCDF.

mom_io_file

This module contains the MOM file handler types.

mom_is_diag_mediator

The subroutines here provide convenient wrappers to the FMS diag_manager interfaces with additional diagnostic capabilities.

mom_isopycnal_slopes

Calculations of isoneutral slopes and stratification.

mom_kappa_shear

Shear-dependent mixing following Jackson et al.

mom_lateral_mixing_coeffs

Variable mixing coefficients.

mom_load_love_numbers

Load Love Numbers for degree range [0, 1440].

mom_marine_ice

Routines incorporating the effects of marine ice (sea-ice and icebergs) into the ocean model dynamics and thermodynamics.

mom_meke

Implements the Mesoscale Eddy Kinetic Energy framework with topographic beta effect included in computing beta in Rhines scale.

mom_meke_types

<undocumented>

mom_mixed_layer_restrat

Parameterization of mixed layer restratification by unresolved mixed-layer eddies.

mom_murmur_hash

MurmurHash is a non-cryptographic hash function developed by Austin Appleby.

mom_netcdf

MOM6 interface to netCDF operations.

mom_neutral_diffusion

A column-wise toolbox for implementing neutral diffusion.

mom_obsolete_diagnostics

Provides a mechanism for recording diagnostic variables that are no longer valid, along with their replacement name if appropriate.

mom_obsolete_params

Methods for testing for, and list of, obsolete run-time parameters.

mom_ocmip2_cfc

Simulates CFCs using the OCMIP2 protocols.

mom_oda_driver_mod

Interfaces for MOM6 ensembles and data assimilation.

MOM_oda_driver_mod

<undocumented>

mom_oda_incupd

This module contains the routines used to apply incremental updates from data assimilation.

mom_offline_aux

Contains routines related to offline transport of tracers.

mom_offline_main

The routines here implement the offline tracer algorithm used in MOM6.

mom_opacity

Routines used to calculate the opacity of the ocean.

mom_open_boundary

Controls where open boundary conditions are applied.

mom_particles_mod

A set of dummy interfaces for compiling the MOM6 drifters code.

mom_pointaccel

Debug accelerations at a given point.

mom_porous_barriers

Module for calculating curve fit for porous topography.

mom_pressureforce

A thin wrapper for Boussinesq/non-Boussinesq forms of the pressure force calculation.

mom_pressureforce_fv

Finite volume pressure gradient (integrated by quadrature or analytically)

mom_pressureforce_mont

Provides the Montgomery potential form of pressure gradient.

mom_random

Provides gridded random number capability.

mom_regridding

Generates vertical grids as part of the ALE algorithm.

mom_regularize_layers

Provides regularization of layers in isopycnal mode.

mom_remapping

Provides column-wise vertical remapping functions.

mom_restart

The MOM6 facility for reading and writing restart files, and querying what has been read.

mom_safe_alloc

Convenience functions for safely allocating memory without accidentally reallocating pointer and causing memory leaks.

mom_self_attr_load

<undocumented>

mom_set_diffusivity

Calculate vertical diffusivity from all mixing processes.

mom_set_visc

Calculates various values related to the bottom boundary layer, such as the viscosity and thickness of the BBL (set_viscous_BBL).

mom_shared_initialization

Code that initializes fixed aspects of the model grid, such as horizontal grid metrics, topography and Coriolis, and can be shared between components.

mom_spatial_means

Functions and routines to take area, volume, mass-weighted, layerwise, zonal or meridional means.

mom_spherical_harmonics

Laplace's spherical harmonic transforms (SHT)

mom_sponge

Implements sponge regions in isopycnal mode.

mom_state_initialization

Initialization functions for state variables, u, v, h, T and S.

mom_stoch_eos

Provides the ocean stochastic equation of state.

mom_stochastics

Top-level module for the MOM6 ocean model in coupled mode.

mom_streaming_filter

Streaming band-pass filter for detecting the instantaneous tidal signals in the simulation.

mom_string_functions

Handy functions for manipulating strings.

mom_sum_output

Reports integrated quantities for monitoring the model state.

mom_surface_forcing

Functions that calculate the surface wind stresses and fluxes of buoyancy or temperature/salinity and fresh water, in ocean-only (solo) mode.

mom_surface_forcing_gfdl

<undocumented>

MOM_temperature_conv

<undocumented>

mom_temperature_convert

Functions to convert between conservative and potential temperature.

mom_tfreeze

Freezing point expressions.

mom_thickness_diffuse

Isopycnal height diffusion (or Gent McWilliams diffusion)

mom_tidal_forcing

Tidal contributions to geopotential.

mom_tidal_mixing

Interface to vertical tidal mixing schemes including CVMix tidal mixing.

mom_tracer_advect

This module contains the subroutines that advect tracers along coordinate surfaces.

mom_tracer_advect_schemes

This module contains constants for the tracer advection schemes.

mom_tracer_diabatic

This module contains routines that implement physical fluxes of tracers (e.g.

MOM_tracer_flow_control

By Will Cooke, April 2003 Edited by Elizabeth Yankovsky, May 2019.

mom_tracer_flow_control

Orchestrates the registration and calling of tracer packages.

mom_tracer_hor_diff

Main routine for lateral (along surface or neutral) diffusion of tracers.

mom_tracer_initialization_from_z

Initializes hydrography from z-coordinate climatology files.

mom_tracer_registry

This module contains subroutines that handle registration of tracers and related subroutines.

mom_tracer_types

This module contains the tracer_type() and and tracer_registry_type().

mom_tracer_z_init

Used to initialize tracers from a depth- (or z*-) space file.

mom_transcribe_grid

Module with routines for copying information from a shared dynamic horizontal grid to an ocean-specific horizontal grid and the reverse.

mom_unique_scales

This module provides tools that can be used to check the uniqueness of the dimensional scaling factors used by the MOM6 ocean model or other models.

mom_unit_scaling

Provides a transparent unit rescaling type to facilitate dimensional consistency testing.

mom_unit_testing

<undocumented>

mom_unit_tests

Invokes unit tests in all modules that have them.

mom_variables

Provides transparent structures with groups of MOM6 variables and supporting routines.

mom_vert_friction

Implements vertical viscosity (vertvisc)

mom_verticalgrid

Provides a transparent vertical ocean grid type and supporting routines.

mom_wave_drag

Frequency-dependent linear wave drag.

mom_wave_interface

Interface for surface waves.

mom_wave_speed

Routines for calculating baroclinic wave speeds.

mom_write_cputime

A module to monitor the overall CPU time used by MOM6 and project when to stop the model.

mom_zanna_bolton

Calculates Zanna and Bolton 2020 parameterization Implemented by Perezhogin P.A.

neverworld_initialization

Initialization for the "Neverworld" configuration.

numerical_testing_type

A simple type for keeping track of numerical tests.

nw2_tracers

Ideal tracers designed to help diagnose a tracer diffusivity tensor in NeverWorld2.

ocean_da_core_mod

A set of dummy interfaces for compiling the MOM6 DA driver code.

ocean_da_types_mod

Dummy aata structures and methods for ocean data assimilation.

ocean_model_mod

Top-level module for the MOM6 ocean model in coupled mode.

oil_tracer

A tracer package to mimic dissolved oil.

p1m_functions

Linear interpolation functions.

p3m_functions

Cubic interpolation functions.

particles_types_mod

Dummy data structures and methods for drifters package.

PCM_functions

Date of creation: 2008.06.06 L.

pcm_functions

Piecewise constant reconstruction functions.

phillips_initialization

Initialization for the "Phillips" channel configuration.

plm_functions

Piecewise linear reconstruction functions.

polynomial_functions

Polynomial functions.

posix

Interface to the libc POSIX API.

ppm_functions

Provides functions used with the Piecewise-Parabolic-Method in the vertical ALE algorithm.

pqm_functions

Piecewise quartic reconstruction functions.

pseudo_salt_tracer

A tracer package that mimics salinity.

recon1d_emplm_cwk

Piecewise Linear Method 1D reconstruction in index space and boundary extrapolation.

recon1d_emplm_wa

Extrapolated-Monotonized Piecewise Linear Method 1D reconstruction.

recon1d_emplm_wa_poly

Extrapolated-Monotonized Piecewise Linear Method 1D reconstruction.

recon1d_eppm_cwk

Piecewise Parabolic Method 1D reconstruction in model index space with linear extrapolation for first and last cells.

recon1d_mplm_cwk

Piecewise Linear Method 1D reconstruction in index space.

recon1d_mplm_wa

Monotonized Piecewise Linear Method 1D reconstruction.

recon1d_mplm_wa_poly

Monotonized Piecewise Linear Method 1D reconstruction using polynomial representation.

recon1d_pcm

1D reconstructions using the Piecewise Constant Method (PCM)

recon1d_plm_cw

Piecewise Linear Method 1D reconstruction.

recon1d_plm_cwk

Piecewise Linear Method 1D reconstruction.

recon1d_plm_hybgen

Piecewise Linear Method 1D reconstruction ported from "hybgen" module in Hycom.

recon1d_plm_wls

Piecewise Linear Method using Weighted Conservative Least Squares 1D reconstruction.

recon1d_ppm_c4_2019

<undocumented>

recon1d_ppm_cw

Piecewise Parabolic Method 1D reconstruction following Colella and Woodward, 1984.

recon1d_ppm_cwk

Piecewise Parabolic Method 1D reconstruction in model index space.

recon1d_ppm_h4_2018

Piecewise Parabolic Method 1D reconstruction with h4 interpolation for edges (2018 version)

recon1d_ppm_h4_2019

Piecewise Parabolic Method 1D reconstruction with h4 interpolation for edges.

recon1d_ppm_hybgen

Piecewise Parabolic Method 1D reconstruction following Colella and Woodward, 1984.

recon1d_type

A generic type for vertical 1D reconstructions.

regional_dyes

A tracer package for using dyes to diagnose regional flows.

regrid_consts

Contains constants for interpreting input parameters that control regridding.

regrid_edge_values

Edge value estimation for high-order reconstruction.

regrid_interp

Vertical interpolation for regridding.

regrid_solvers

Solvers of linear systems.

rgc_initialization

Configures the models sponges for the Rotating Gravity Current (RGC) experiment.

rgc_tracer

This module contains the routines used to set up a dynamically passive tracer.

rossby_front_2d_initialization

Initial conditions for the 2D Rossby front test.

scm_cvmix_tests

Initial conditions and forcing for the single column model (SCM) CVMix test set.

seamount_initialization

Configures the model for the idealized seamount test case.

self_attr_load

<undocumented>

shelfwave_initialization

Configures the model for the idealized shelfwave test case.

sloshing_initialization

Initialization for the "sloshing" internal waves configuration.

soliton_initialization

Initial conditions for the Equatorial Rossby soliton test (Boyd).

stochastic_physics

<undocumented>

supercritical_initialization

The "super critical" configuration.

tidal_bay_initialization

Configures the model for the "tidal_bay" experiment.

tidal_forcing

<undocumented>

user_change_diffusivity

Increments the diapycnal diffusivity in a specified band of latitudes and densities.

user_initialization

A template of a user to code up customized initial conditions.

user_revise_forcing

Provides a template for users to code updating the forcing fluxes.

user_shelf_init

This module specifies the initial values and evolving properties of the MOM6 ice shelf, using user-provided code.

user_surface_forcing

Template for user to code up surface forcing.

user_tracer_example

A sample tracer package that has striped initial conditions.

write_ocean_obs_mod

Dummy interfaces for writing ODA data.