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.

external_gwave_initialization

Initialization for the “external gravity wave wave” configuration.

fms_coupler_util

<undocumented>

g_tracer_utils

g_tracer_utils() module consists of core utility subroutines to be used by all generic tracer modules. These include the lowest level functions for adding, allocating memory, and record keeping of individual generic tracers irrespective of their physical/chemical nature. module consists of core utility subroutines to be used by all generic tracer modules. These include the lowest level functions for adding, allocating memory, and record keeping of individual generic tracers irrespective of their physical/chemical nature.

generic_tracer

A non-functioning template of the GFDL ocean BGC.

get_stochy_pattern_mod

<undocumented>

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.

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_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

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

mom_CFC_cap

<undocumented>

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 fraxil, brine rejection, tendency due to surface flux divergence.

mom_diabatic_driver

This routine drives the diabatic/dianeutral physics for MOM.

mom_diag_mediator

The subroutines here provide convenient wrappers to the fms diag_manager interfaces with additional diagnostic capabilies.

mom_diag_remap

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

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_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

Energetically consistent planetary boundary layer parameterization.

MOM_energetic_PBL

By Robert Hallberg, 2015.

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_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

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

mom_eos_Roquet_SpV

<undocumented>

mom_eos_teos10

The equation of state using the TEOS10 expressions.

mom_eos_unesco

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

mom_eos_UNESCO

<undocumented>

mom_eos_wright

The equation of state using the Wright 1997 expressions.

mom_eos_wright_full

The equation of state using the Wright 1997 expressions.

mom_eos_wright_red

The equation of state using the Wright 1997 expressions.

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_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 module contains the MOM file handler types.

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_is_diag_mediator

Convenient wrappers to the FMS diag_manager interfaces with additional diagnostic capabilies.

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_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_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_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_diabatic

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

mom_tracer_flow_control

Orchestrates the registration and calling of tracer packages.

MOM_tracer_flow_control

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

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_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

<undocumented>

neverworld_initialization

Initialization for the “Neverworld” configuration.

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.

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.

remapping_attic

Retains older versions of column-wise vertical remapping functions that are no longer used in MOM6, but may be useful later for documenting the development of the schemes that are used in MOM6.

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.

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

Code by Robert Hallberg, August 2005, based on C-code by Harper Simmons, February, 2003, in turn based on code by Brian Arbic.

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.