MOM6
Name space list
Here is a list of all modules with brief descriptions:
 Nadjustment_initializationThe module configures the model for the geostrophic adjustment test case
 Nadvection_test_tracer
 Natmos_ocean_fluxes_mod
 Nbaroclinic_zone_initializationInitial conditions for an idealized baroclinic zone
 Nbenchmark_initialization
 Nbfb_initialization
 Nbfb_surface_forcing
 Nboundary_impulse_tracerImplements a boundary impulse response tracer to calculate Green's functions
 Ncircle_obcs_initializationThe module configures the model for the "circle_obcs" experiment. circle_obcs = Test of Open Boundary Conditions for an SSH anomaly
 Ncoord_adaptRegrid columns for the adaptive coordinate
 Ncoord_hycomRegrid columns for the HyCOM coordinate
 Ncoord_rhoRegrid columns for the continuous isopycnal (rho) coordinate
 Ncoord_sigmaRegrid columns for the sigma coordinate
 Ncoord_slightRegrid columns for the SLight coordinate
 Ncoord_zlikeRegrid columns for a z-like coordinate (z-star, z-level)
 Ncoupler_types_mod
 Ncoupler_util
 Ndense_water_initializationInitialization routines for the dense water formation and overflow experiment
 Ndome2d_initialization
 Ndome_initializationThe module configures the model for the "DOME" experiment. DOME = Dynamics of Overflows and Mixing Experiment
 Ndome_tracer
 Nexternal_gwave_initializationThe module configures the model for the "external_gwave" experiment. external_gwave = External Gravity Wave
 Nideal_age_example
 Nisomip_initializationThe module configures the ISOMIP test case
 Nisomip_tracerThis module contains the routines used to set up and use a set of (one for now) dynamically passive tracers. For now, just one passive tracer is injected in the sponge layer. Set up and use passive tracers requires the following: (1) register_ISOMIP_tracer (2)
 Nkelvin_initialization
 Nlock_exchange_initializationThe module configures the model for the "lock_exchange" experiment. lock_exchange = A 2-d density driven hydraulic exchange flow
 Nmeso_surface_forcing
 Nmidas_vertmap
 NmomThis is the main routine for MOM
 Nmom_aleThis module contains the main regridding routines. Regridding comprises two steps: (1) Interpolation and creation of a new grid based on target interface densities (or any other criterion). (2) Remapping of quantities between old grid and new grid. Original module written by Laurent White, 2008.06.09
 Nmom_ale_spongeThis module contains the routines used to apply sponge layers when using the ALE mode. Applying sponges requires the following: (1) initialize_ALE_sponge (2) set_up_ALE_sponge_field (tracers) and set_up_ALE_sponge_vel_field (vel) (3) apply_ALE_sponge (4) init_ALE_sponge_diags (not being used for now) (5) ALE_sponge_end (not being used for now)
 Nmom_barotropic
 Nmom_boundary_updateControls where open boundary conditions are applied
 Nmom_bulk_mixed_layer
 Nmom_checksum_packages
 Nmom_checksums
 Nmom_coms
 Nmom_constants
 Nmom_continuitySolve the layer continuity equation
 Nmom_continuity_ppmSolve the layer continuity equation using the PPM method for layer fluxes
 Nmom_controlled_forcing
                                                               *

By Robert Hallberg, July 2011 *

  • This program contains the subroutines that use control-theory * to adjust the surface heat flux and precipitation, based on the * time-mean or periodically (seasonally) varying anomalies from the * observed state. The techniques behind this are described in * Hallberg and Adcroft (2011, in prep.). *
  • Macros written all in capital letters are defined in MOM_memory.h. *
  • A small fragment of the grid is shown below: *
  • j+1 x ^ x ^ x At x: q * j+1 > o > o > At ^: v, tauy * j x ^ x ^ x At >: u, taux * j > o > o > At o: h, fluxes. * j-1 x ^ x ^ x * i-1 i i+1 At x & ^: * i i+1 At > & o: *
  • The boundaries always run through q grid points (x). *
 Nmom_coord_initializationInitializes fixed aspects of the related to its vertical coordinate
 Nmom_coriolisadvAccelerations due to the Coriolis force and momentum advection
 Nmom_cpu_clock
 Nmom_cvmix_shearInterface to CVMix interior shear schemes
 Nmom_debugging
 Nmom_diabatic_aux
 Nmom_diabatic_driverThis routine drives the diabatic/dianeutral physics for MOM
 Nmom_diag_manager_wrapperA simple (very thin) wrapper for register_diag_field to avoid a compiler bug with PGI
 Nmom_diag_mediator
 Nmom_diag_remapThis module is used for runtime remapping of diagnostics to z star, sigma and rho vertical coordinates. It defines the diag_remap_ctrl type which represents a remapping of diagnostics to a particular vertical coordinate. The module is used by the diag mediator module in the following way: 1) _init() is called to initialise a diag_remap_ctrl instance. 2) _configure_axes() is called to read the configuration file and set up the vertical coordinate / axes definitions. 3) _get_axes_info() returns information needed for the diag mediator to define new axes for the remapped diagnostics. 4) _update() is called periodically (whenever h, T or S change) to either create or update the target remapping grids. 5) _do_remap() is called from within a diag post() to do the remapping before the diagnostic is written out
 Nmom_diag_to_z
 Nmom_diag_vkernelsProvides kernels for single-column interpolation, re-integration (re-mapping of integrated quantities) and intensive-variable remapping in the vertical
 Nmom_diagnostics
 Nmom_diapyc_energy_req
 Nmom_diffconvection
 Nmom_document
 Nmom_domains
 Nmom_dyn_horgrid
 Nmom_dynamics_legacy_split
 Nmom_dynamics_split_rk2Time step the adiabatic dynamic core of MOM using RK2 method
 Nmom_dynamics_unsplit
 Nmom_dynamics_unsplit_rk2
 Nmom_energetic_pbl
 Nmom_entrain_diffusive
 Nmom_eosProvides subroutines for quantities specific to the equation of state
 Nmom_eos_linear
 Nmom_eos_nemo
 Nmom_eos_teos10
 Nmom_eos_unesco
 Nmom_eos_wright
 Nmom_error_handler
 Nmom_file_parser
 Nmom_fixed_initializationInitializes fixed aspects of the model, such as horizontal grid metrics, topography and Coriolis
 Nmom_forcing_typeThis module implements boundary forcing for MOM6
 Nmom_generic_tracer
 Nmom_geothermal
 Nmom_get_input
 Nmom_gridProvides the ocean grid type
 Nmom_grid_initialize
 Nmom_hor_indexDefines the horizontal index type (hor_index_type) used for providing index ranges
 Nmom_hor_visc
 Nmom_ice_shelfImplements the thermodynamic aspects of ocean / ice-shelf interactions,
 Nmom_ice_shelf_initialize
 Nmom_int_tide_input
 Nmom_interface_heightsThe module calculates interface heights, including free surface height
 Nmom_internal_tides
 Nmom_intrinsic_functions
 Nmom_ioThis module contains I/O framework code
 Nmom_isopycnal_slopesCalculations of isoneutral slopes and stratification
 Nmom_kappa_shear
 Nmom_kppProvides the K-Profile Parameterization (KPP) of Large et al., 1994, via CVMix
 Nmom_lateral_mixing_coeffsVariable mixing coefficients
 Nmom_legacy_barotropic
 Nmom_mekeImplements the Mesoscale Eddy Kinetic Energy framework
 Nmom_meke_types
 Nmom_mixed_layer_restratParameterization of mixed layer restratification by unresolved mixed-layer eddies
 Nmom_neutral_diffusionA column-wise toolbox for implementing neutral diffusion
 Nmom_obsolete_diagnosticsProvides a mechanism for recording diagnostic variables that are no longer valid, along with their replacement name if appropriate
 Nmom_obsolete_paramsMethods for testing for, and list of, obsolete run-time parameters
 Nmom_ocmip2_cfc
 Nmom_ocmip2_co2calc_mod
 Nmom_offline_auxContains routines related to offline transport of tracers. These routines are likely to be called from the MOM_offline_main module
 Nmom_offline_mainThe routines here implement the offline tracer algorithm used in MOM6. These are called from step_offline Some routines called here can be found in the MOM_offline_aux module
 Nmom_opacity
 Nmom_open_boundaryControls where open boundary conditions are applied
 Nmom_pointaccel
 Nmom_pressureforceA thin wrapper for Boussinesq/non-Boussinesq forms of the pressure force calculation
 Nmom_pressureforce_afvAnalytically integrated finite volume pressure gradient
 Nmom_pressureforce_montProvides the Montgomery potential form of pressure gradient
 Nmom_regriddingGenerates vertical grids as part of the ALE algorithm
 Nmom_regularize_layers
 Nmom_remappingProvides column-wise vertical remapping functions
 Nmom_restart
 Nmom_safe_alloc
 Nmom_set_diffusivity
 Nmom_set_visc
 Nmom_shared_initializationCode that initializes fixed aspects of the model grid, such as horizontal grid metrics, topography and Coriolis, and can be shared between components
 Nmom_shortwave_abs
 Nmom_spatial_means
 Nmom_sponge
 Nmom_state_initializationInitialize state variables, u, v, h, T and S
 Nmom_string_functions
 Nmom_sum_output
 Nmom_surface_forcing
 Nmom_tfreeze
 Nmom_thickness_diffuseThickness diffusion (or Gent McWilliams)
 Nmom_tidal_forcing
 Nmom_time_manager
 Nmom_tracer_advectThis program contains the subroutines that advect tracers along coordinate surfaces
 Nmom_tracer_diabaticThis module contains routines that implement physical fluxes of tracers (e.g. due to surface fluxes or mixing). These are intended to be called from call_tracer_column_fns in the MOM_tracer_flow_control module
 Nmom_tracer_flow_control
 Nmom_tracer_hor_diffMain routine for lateral (along surface or neutral) diffusion of tracers
 Nmom_tracer_registryThis module contains the tracer_registry_type and the subroutines that handle registration of tracers and related subroutines. The primary subroutine, register_tracer, is called to indicate the tracers advected and diffused
 Nmom_tracer_z_init
 Nmom_transcribe_grid
 Nmom_unit_testsInvokes unit tests in all modules that have them
 Nmom_variables
 Nmom_vert_frictionImplements vertical viscosity (vertvisc)
 Nmom_verticalgrid
 Nmom_wave_speedRoutines for calculating baroclinic wave speeds
 Nmom_wave_structure
 Nmom_write_cputime
 Nocean_model_mod
 Noil_tracer
 Np1m_functions
 Np3m_functions
 Npcm_functions
 Nphillips_initializationBy Robert Hallberg, April 1994 - June 2002 *

  • This subroutine initializes the fields for the simulations. * The one argument passed to initialize, Time, is set to the * current time of the simulation. The fields which are initialized * here are: * u - Zonal velocity in m s-1. * v - Meridional velocity in m s-1. * h - Layer thickness in m. (Must be positive.) * D - Basin depth in m. (Must be positive.) * f - The Coriolis parameter, in s-1. * g - The reduced gravity at each interface, in m s-2. * Rlay - Layer potential density (coordinate variable) in kg m-3. * If ENABLE_THERMODYNAMICS is defined: * T - Temperature in C. * S - Salinity in psu. * If SPONGE is defined: * A series of subroutine calls are made to set up the damping * rates and reference profiles for all variables that are damped * in the sponge. * Any user provided tracer code is also first linked through this * subroutine. *
  • Forcing-related fields (taux, tauy, buoy, ustar, etc.) are set * in MOM_surface_forcing.F90. *
  • These variables are all set in the set of subroutines (in this * file) Phillips_initialize_thickness, Phillips_initialize_velocity, * Phillips_initialize_topography and Phillips_initialize_sponges * that seet up fields that are specific to the Phillips instability * test case. *
  • Macros written all in capital letters are defined in MOM_memory.h. *
  • A small fragment of the grid is shown below: *
  • j+1 x ^ x ^ x At x: q, f * j+1 > o > o > At ^: v, tauy * j x ^ x ^ x At >: u, taux * j > o > o > At o: h, D, buoy, tr, T, S, ustar * j-1 x ^ x ^ x * i-1 i i+1 At x & ^: * i i+1 At > & o: *
  • The boundaries always run through q grid points (x). *
 Nplm_functions
 Npolynomial_functions
 Nppm_functionsProvides functions used with the Piecewise-Parabolic-Method in the vertical ALE algorithm
 Npqm_functions
 Npseudo_salt_tracer
 Nregional_dyes
 Nregrid_constsContains constants for interpreting input parameters that control regridding
 Nregrid_defs
 Nregrid_edge_slopes
 Nregrid_edge_values
 Nregrid_interp
 Nregrid_solvers
 Nrossby_front_2d_initializationInitial conditions for the 2D Rossby front test
 Nscm_cvmix_testsInitial conditions and forcing for the single column model (SCM) CVmix test set
 Nscm_idealized_hurricaneInitial conditions and forcing for the single column model (SCM) idealized hurricane example
 Nseamount_initializationThe module configures the model for the idealized seamount test case
 Nshelf_triangular_festuff
 Nshelfwave_initializationThe module configures the model for the idealized shelfwave test case
 Nsloshing_initializationThe module configures the model for the non-rotating sloshing test case
 Nsoliton_initializationInitial conditions for the Equatorial Rossby soliton test (Boyd)
 Nsupercritical_initializationThe module configures the model for the "supercritical" experiment. https://marine.rutgers.edu/po/index.php?model=test-problems&title=supercritical
 Ntidal_bay_initializationThe module configures the model for the "tidal_bay" experiment. tidal_bay = Tidally resonant bay from Zygmunt Kowalik's class on tides
 Nuser_change_diffusivityBy Robert Hallberg, May 2012
 Nuser_initializationBy Robert Hallberg, April 1994 - June 2002 *

  • This subroutine initializes the fields for the simulations. * The one argument passed to initialize, Time, is set to the * current time of the simulation. The fields which are initialized * here are: * u - Zonal velocity in m s-1. * v - Meridional velocity in m s-1. * h - Layer thickness in m. (Must be positive.) * GbathyT - Basin depth in m. (Must be positive.) * GCoriolisBu - The Coriolis parameter, in s-1. * GVg_prime - The reduced gravity at each interface, in m s-2. * GVRlay - Layer potential density (coordinate variable), kg m-3. * If ENABLE_THERMODYNAMICS is defined: * T - Temperature in C. * S - Salinity in psu. * If BULKMIXEDLAYER is defined: * Rml - Mixed layer and buffer layer potential densities in * units of kg m-3. * If SPONGE is defined: * A series of subroutine calls are made to set up the damping * rates and reference profiles for all variables that are damped * in the sponge. * Any user provided tracer code is also first linked through this * subroutine. *
  • Forcing-related fields (taux, tauy, buoy, ustar, etc.) are set * in MOM_surface_forcing.F90. *
  • These variables are all set in the set of subroutines (in this * file) USER_initialize_bottom_depth, USER_initialize_thickness, * USER_initialize_velocity, USER_initialize_temperature_salinity, * USER_initialize_mixed_layer_density, USER_initialize_sponges, * USER_set_coord, and USER_set_ref_profile. *
  • The names of these subroutines should be self-explanatory. They * start with "USER_" to indicate that they will likely have to be * modified for each simulation to set the initial conditions and * boundary conditions. Most of these take two arguments: an integer * argument specifying whether the fields are to be calculated * internally or read from a NetCDF file; and a string giving the * path to that file. If the field is initialized internally, the * path is ignored. *
  • Macros written all in capital letters are defined in MOM_memory.h. *
  • A small fragment of the grid is shown below: *
  • j+1 x ^ x ^ x At x: q, CoriolisBu * j+1 > o > o > At ^: v, tauy * j x ^ x ^ x At >: u, taux * j > o > o > At o: h, bathyT, buoy, tr, T, S, Rml, ustar * j-1 x ^ x ^ x * i-1 i i+1 At x & ^: * i i+1 At > & o: *
  • The boundaries always run through q grid points (x). *
 Nuser_revise_forcing
 Nuser_shelf_init
 Nuser_surface_forcing
 Nuser_tracer_example