MOM6
F90 module list
This is the list of all F90 modules. Some are expandable which shows the defined types that are provided by that module.
[detail level 12]
 Nadvection_test_tracerThis tracer package is used to test advection schemes
 Cadvection_test_tracer_csThe control structure for the advect_test_tracer module
 Nbfb_surface_forcingSurface forcing for the boundary-forced-basin (BFB) configuration
 Cbfb_surface_forcing_csControl structure for BFB_surface_forcing
 Nboundary_impulse_tracerImplements a boundary impulse response tracer to calculate Green's functions
 Cboundary_impulse_tracer_csThe control structure for the boundary impulse tracer package
 Ncoord_adaptRegrid columns for the adaptive coordinate
 Cadapt_csControl structure for adaptive coordinates (coord_adapt)
 Ncoord_hycomRegrid columns for the HyCOM coordinate
 Chycom_csControl structure containing required parameters for the HyCOM coordinate
 Ncoord_rhoRegrid columns for the continuous isopycnal (rho) coordinate
 Crho_csControl structure containing required parameters for the rho coordinate
 Ncoord_sigmaRegrid columns for the sigma coordinate
 Csigma_csControl structure containing required parameters for the sigma coordinate
 Ncoord_slightRegrid columns for the SLight coordinate
 Cslight_csControl structure containing required parameters for the SLight coordinate
 Ncoord_zlikeRegrid columns for a z-like coordinate (z-star, z-level)
 Czlike_csControl structure containing required parameters for a z-like coordinate
 Ndome_tracerA tracer package that is used as a diagnostic in the DOME experiments
 Cdome_tracer_csThe DOME_tracer control structure
 Ndumbbell_surface_forcingSurface forcing for the dumbbell test case
 Cdumbbell_surface_forcing_csControl structure for the dumbbell test case forcing
 Ndyed_channel_initializationInitialization for the dyed_channel configuration
 Cdyed_channel_obc_csControl structure for dyed-channel open boundaries
 Ndyed_obc_tracerThis tracer package dyes flow through open boundaries
 Cdyed_obc_tracer_csThe control structure for the dyed_obc tracer package
 Nideal_age_exampleA tracer package of ideal age tracers
 Cideal_age_tracer_csThe control structure for the ideal_age_tracer package
 Nidealized_hurricaneForcing for the idealized hurricane and SCM_idealized_hurricane examples
 Cidealized_hurricane_csContainer for parameters describing idealized wind structure
 Nisomip_tracerRoutines used to set up and use a set of (one for now) dynamically passive tracers in the ISOMIP configuration
 Cisomip_tracer_csISOMIP tracer package control structure
 Nkelvin_initializationConfigures the model for the Kelvin wave experiment
 Ckelvin_obc_csControl structure for Kelvin wave open boundaries
 Nmeso_surface_forcingSets forcing for the MESO configuration
 Cmeso_surface_forcing_csThis control structure is used to store parameters associated with the MESO forcing
 Nmidas_vertmapRoutines for initialization callable from MOM6 or Python (MIDAS)
 Cfill_boundariesFill grid edges
 NmomThe central module of the MOM6 ocean model
 Cmom_control_structControl structure for the MOM module, including the variables that describe the state of the ocean
 Cmom_diag_idsA structure with diagnostic IDs of the state variables
 Nmom_aleThis module contains the main regridding routines
 Cale_csALE control structure
 Nmom_ale_spongeThis module contains the routines used to apply sponge layers when using the ALE mode
 Cale_sponge_csALE sponge control structure
 Cinitialize_ale_spongeDdetermine the number of points which are within sponges in this computational domain
 Cp2dA structure for creating arrays of pointers to 2D arrays with extra gridding information
 Cp3dA structure for creating arrays of pointers to 3D arrays with extra gridding information
 Cset_up_ale_sponge_fieldStore the reference profile at h points for a variable
 Cset_up_ale_sponge_vel_fieldThis subroutine stores the reference profile at u and v points for a vector
 Nmom_barotropicBaropotric solver
 Cbarotropic_csThe barotropic stepping control stucture
 Cbt_obc_typeThe barotropic stepping open boundary condition type
 Clocal_bt_cont_u_typeA desciption of the functional dependence of transport at a u-point
 Clocal_bt_cont_v_typeA desciption of the functional dependence of transport at a v-point
 Cmemory_size_typeA container for passing around active tracer point memory limits
 Nmom_bkgnd_mixingInterface to background mixing schemes, including the Bryan and Lewis (1979) which is applied via CVMix
 Cbkgnd_mixing_csControl structure including parameters for this module
 Nmom_boundary_updateControls where open boundary conditions are applied
 Cupdate_obc_csThe control structure for the MOM_boundary_update module
 Nmom_bulk_mixed_layerBuild mixed layer parameterization
 Cbulkmixedlayer_csThe control structure with parameters for the MOM_bulk_mixed_layer module
 Nmom_cap_methodsContains import/export methods for both NEMS and CMEPS
 Cstate_getfldptrGet field pointer
 Nmom_cap_modThis module contains a set of subroutines that are required by NUOPC
 Cfld_list_typeContains field information
 Cocean_internalstate_typeInternal state type with pointers to three types defined by MOM
 Cocean_internalstate_wrapperWrapper-derived type required to associate an internal state instance with the ESMF/NUOPC component
 Nmom_checksum_packagesProvides routines that do checksums of groups of MOM variables
 Cmom_state_chksumWrite out checksums of the MOM6 state variables
 CstatsA type for storing statistica about a variable
 Nmom_checksumsRoutines to calculate checksums of various array and vector types
 CbchksumChecksums an array (2d or 3d) staggered at corner points
 Cbchksum_pairChecksums a pair of arrays (2d or 3d) staggered at corner points
 Cchk_sum_msgWrite a message with either checksums or numerical statistics of arrays
 CchksumThis is an older interface for 1-, 2-, or 3-D checksums
 ChchksumChecksums an array (2d or 3d) staggered at tracer points
 Chchksum_pairChecksums a pair of arrays (2d or 3d) staggered at tracer points
 Cis_nanReturns .true. if any element of x is a NaN, and .false. otherwise
 CqchksumThis is an older interface that has been renamed Bchksum
 CuchksumChecksums an array (2d or 3d) staggered at C-grid u points
 CuvchksumChecksums a pair velocity arrays (2d or 3d) staggered at C-grid locations
 CvchksumChecksums an array (2d or 3d) staggered at C-grid v points
 Nmom_comsInterfaces to non-domain-oriented communication subroutines, including the MOM6 reproducing sums facility
 Cassignment(=)Copy the value of one extended-fixed-point number into another
 Cefp_typeThe Extended Fixed Point (EFP) type provides a public interface for doing sums and taking differences with this type
 Coperator(+)Add two extended-fixed-point numbers
 Coperator(-)Subtract one extended-fixed-point number from another
 Creproducing_sumFind an accurate and order-invariant sum of distributed 2d or 3d fields
 Nmom_continuitySolve the layer continuity equation
 Ccontinuity_csControl structure for mom_continuity
 Nmom_continuity_ppmSolve the layer continuity equation using the PPM method for layer fluxes
 Ccontinuity_ppm_csControl structure for mom_continuity_ppm
 Cloop_bounds_typeA container for loop bounds
 Nmom_controlled_forcingUse control-theory to adjust the surface heat flux and precipitation
 Cctrl_forcing_csControl structure for MOM_controlled_forcing
 Nmom_coriolisadvAccelerations due to the Coriolis force and momentum advection
 Ccoriolisadv_csControl structure for mom_coriolisadv
 Nmom_cvmix_convInterface to CVMix convection scheme
 Ccvmix_conv_csControl structure including parameters for CVMix convection
 Nmom_cvmix_ddiffInterface to CVMix double diffusion scheme
 Ccvmix_ddiff_csControl structure including parameters for CVMix double diffusion
 Nmom_cvmix_kppProvides the K-Profile Parameterization (KPP) of Large et al., 1994, via CVMix
 Ckpp_csControl structure for containing KPP parameters/data
 Nmom_cvmix_shearInterface to CVMix interior shear schemes
 Ccvmix_shear_csControl structure including parameters for CVMix interior shear schemes
 Nmom_debuggingProvides checksumming functions for debugging
 Ccheck_redundantCheck for consistency between the duplicated points of a C-grid vector
 Ccheck_redundant_bCheck for consistency between the duplicated points of a B-grid vector or scalar
 Ccheck_redundant_cCheck for consistency between the duplicated points of a C-grid vector
 Ccheck_redundant_tCheck for consistency between the duplicated points of an A-grid vector or scalar
 Cvec_chksumDo checksums on the components of a C-grid vector
 Cvec_chksum_aDo checksums on the components of an A-grid vector
 Cvec_chksum_bDo checksums on the components of a B-grid vector
 Cvec_chksum_cDo checksums on the components of a C-grid vector
 Nmom_diabatic_auxProvides functions for some diabatic processes such as fraxil, brine rejection, tendency due to surface flux divergence
 Cdiabatic_aux_csControl structure for diabatic_aux
 Nmom_diabatic_driverThis routine drives the diabatic/dianeutral physics for MOM
 Cdiabatic_csControl structure for this module
 Nmom_diag_manager_wrapperA simple (very thin) wrapper for register_diag_field to avoid a compiler bug with PGI
 Cregister_diag_field_fmsA wrapper for register_diag_field_array()
 Nmom_diag_mediatorThe subroutines here provide convenient wrappers to the fms diag_manager interfaces with additional diagnostic capabilies
 Caxes_grpA group of 1D axes that comprise a 1D/2D/3D mesh
 Cdiag_ctrlThe following data type a list of diagnostic fields an their variants, as well as variables that control the handling of model output
 Cdiag_dsampContained for down sampled masks
 Cdiag_grid_storageStores all the remapping grids and the model's native space thicknesses
 Cdiag_grids_typeContains an array to store a diagnostic target grid
 Cdiag_typeThis type is used to represent a diagnostic at the diag_mediator level
 Cdiagcs_dsampContainer for down sampling information
 Cdownsample_diag_fieldDown sample a diagnostic field
 Cdownsample_fieldDown sample a field
 Cdownsample_maskDown sample the mask of a field
 Cpost_dataMake a diagnostic available for averaging or output
 Nmom_diag_remapRuntime remapping of diagnostics to z star, sigma and rho vertical coordinates
 Cdiag_remap_ctrlRepresents remapping of diagnostics to a particular vertical coordinate
 Nmom_diagnosticsCalculates any requested diagnostic quantities that are not calculated in the various subroutines. Diagnostic quantities are requested by allocating them memory
 Cdiagnostics_csThe control structure for the MOM_diagnostics module
 Csurface_diag_idsA structure with diagnostic IDs of the surface and integrated variables
 Ctransport_diag_idsA structure with diagnostic IDs of mass transport related diagnostics
 Nmom_diapyc_energy_reqCalculates the energy requirements of mixing
 Cdiapyc_energy_req_csThis control structure holds parameters for the MOM_diapyc_energy_req module
 Nmom_documentThe subroutines here provide hooks for document generation functions at various levels of granularity
 Cdoc_paramDocument parameter values
 Cdoc_typeA structure that controls where the documentation occurs, its veborsity and formatting
 Clink_msgA linked list of the parameter documentation messages that have been issued so far
 Nmom_domainsDescribes the decomposed MOM domain and has routines for communications across PEs
 Cclone_mom_domainCopy one MOM_domain_type into another
 Ccreate_group_passSet up a group of halo updates
 Cfill_symmetric_edgesDo a set of halo updates that fill in the values at the duplicated edges of a staggered symmetric memory domain
 Cmom_domain_typeThe MOM_domain_type contains information about the domain decompositoin
 Cpass_varDo a halo update on an array
 Cpass_var_completeComplete a non-blocking halo update on an array
 Cpass_var_startInitiate a non-blocking halo update on an array
 Cpass_vectorDo a halo update on a pair of arrays representing the two components of a vector
 Cpass_vector_completeComplete a halo update on a pair of arrays representing the two components of a vector
 Cpass_vector_startInitiate a halo update on a pair of arrays representing the two components of a vector
 Nmom_dyn_horgridContains a shareable dynamic type for describing horizontal grids and metric data and utilty routines that work on this type
 Cdyn_horgrid_typeDescribes the horizontal ocean grid with only dynamic memory arrays
 Nmom_dynamics_split_rk2Time step the adiabatic dynamic core of MOM using RK2 method
 Cmom_dyn_split_rk2_csMOM_dynamics_split_RK2 module control structure
 Nmom_dynamics_unsplitTime steps the ocean dynamics with an unsplit quasi 3rd order scheme
 Cmom_dyn_unsplit_csMOM_dynamics_unsplit module control structure
 Nmom_dynamics_unsplit_rk2Time steps the ocean dynamics with an unsplit quasi 2nd order Runge-Kutta scheme
 Cmom_dyn_unsplit_rk2_csMOM_dynamics_unsplit_RK2 module control structure
 Nmom_energetic_pblEnergetically consistent planetary boundary layer parameterization
 Cenergetic_pbl_csThis control structure holds parameters for the MOM_energetic_PBL module
 Cepbl_column_diagsA type for conveniently passing around ePBL diagnostics for a column
 Nmom_entrain_diffusiveDiapycnal mixing and advection in isopycnal mode
 Centrain_diffusive_csThe control structure holding parametes for the MOM_entrain_diffusive module
 Nmom_eosProvides subroutines for quantities specific to the equation of state
 Ccalculate_compressCalculates the compressibility of water from T, S, and P
 Ccalculate_densityCalculates density of sea water from T, S and P
 Ccalculate_density_derivsCalculate the derivatives of density with temperature and salinity from T, S, and P
 Ccalculate_density_second_derivsCalculates the second derivatives of density with various combinations of temperature, salinity, and pressure from T, S and P
 Ccalculate_spec_volCalculates specific volume of sea water from T, S and P
 Ccalculate_tfreezeCalculates the freezing point of sea water from T, S and P
 Ceos_typeA control structure for the equation of state
 Nmom_eos_linearA simple linear equation of state for sea water with constant coefficients
 Ccalculate_density_derivs_linearFor a given thermodynamic state, return the derivatives of density with temperature and salinity using the simple linear equation of state
 Ccalculate_density_linearCompute the density of sea water (in kg/m^3), or its anomaly from a reference density, using a simple linear equation of state from salinity (in psu), potential temperature (in deg C) and pressure [Pa]
 Ccalculate_density_second_derivs_linearFor a given thermodynamic state, return the second derivatives of density with various combinations of temperature, salinity, and pressure. Note that with a simple linear equation of state these second derivatives are all 0
 Ccalculate_spec_vol_linearCompute the specific volume of sea water (in m^3/kg), or its anomaly from a reference value, using a simple linear equation of state from salinity (in psu), potential temperature (in deg C) and pressure [Pa]
 Nmom_eos_nemoThe equation of state using the expressions of Roquet et al. that are used in NEMO
 Ccalculate_density_derivs_nemoFor a given thermodynamic state, return the derivatives of density with conservative temperature and absolute salinity, the expressions derived for use with NEMO
 Ccalculate_density_nemoCompute the in situ density of sea water ([kg m-3]), or its anomaly with respect to a reference density, from absolute salinity (g/kg), conservative temperature (in deg C), and pressure [Pa], using the expressions derived for use with NEMO
 Nmom_eos_teos10The equation of state using the TEOS10 expressions
 Ccalculate_density_derivs_teos10For a given thermodynamic state, return the derivatives of density with conservative temperature and absolute salinity, using the TEOS10 expressions
 Ccalculate_density_second_derivs_teos10For a given thermodynamic state, return the second derivatives of density with various combinations of conservative temperature, absolute salinity, and pressure, using the TEOS10 expressions
 Ccalculate_density_teos10Compute the in situ density of sea water ([kg m-3]), or its anomaly with respect to a reference density, from absolute salinity (g/kg), conservative temperature (in deg C), and pressure [Pa], using the TEOS10 expressions
 Ccalculate_spec_vol_teos10Compute the in situ specific volume of sea water (in [m3 kg-1]), or an anomaly with respect to a reference specific volume, from absolute salinity (in g/kg), conservative temperature (in deg C), and pressure [Pa], using the TEOS10 expressions
 Nmom_eos_unescoThe equation of state using the Jackett and McDougall fits to the UNESCO EOS
 Ccalculate_density_unescoCompute the in situ density of sea water (in [kg m-3]), or its anomaly with respect to a reference density, from salinity [PSU], potential temperature [degC], and pressure [Pa], using the UNESCO (1981) equation of state
 Ccalculate_spec_vol_unescoCompute the in situ specific volume of sea water (in [m3 kg-1]), or an anomaly with respect to a reference specific volume, from salinity [PSU], potential temperature [degC], and pressure [Pa], using the UNESCO (1981) equation of state
 Nmom_eos_wrightThe equation of state using the Wright 1997 expressions
 Ccalculate_density_derivs_wrightFor a given thermodynamic state, return the derivatives of density with temperature and salinity
 Ccalculate_density_second_derivs_wrightFor a given thermodynamic state, return the second derivatives of density with various combinations of temperature, salinity, and pressure
 Ccalculate_density_wrightCompute the in situ density of sea water (in [kg m-3]), or its anomaly with respect to a reference density, from salinity (in psu), potential temperature (in deg C), and pressure [Pa], using the expressions from Wright, 1997, J. Atmos. Ocean. Tech., 14, 735-740
 Ccalculate_spec_vol_wrightCompute the in situ specific volume of sea water (in [m3 kg-1]), or an anomaly with respect to a reference specific volume, from salinity (in psu), potential temperature (in deg C), and pressure [Pa], using the expressions from Wright, 1997, J. Atmos. Ocean. Tech., 14, 735-740
 Nmom_file_parserThe MOM6 facility to parse input files for runtime parameters
 Cfile_data_typeThe valid lines extracted from an input parameter file without comments
 Cget_paramAn overloaded interface to read and log the values of various types of parameters
 Clink_parameterA link in the list of variables that have already had override warnings issued
 Clog_paramAn overloaded interface to log the values of various types of parameters
 Clog_versionAn overloaded interface to log version information about modules
 Cparam_file_typeA structure that can be parsed to read and document run-time parameters
 Cparameter_blockSpecify the active parameter block
 Cread_paramAn overloaded interface to read various types of parameters
 Nmom_forcing_typeThis module implements boundary forcing for MOM6
 CforcingStructure that contains pointers to the boundary forcing used to drive the liquid ocean simulated by MOM
 Cforcing_diagsStructure that defines the id handles for the forcing type
 Cmech_forcingStructure that contains pointers to the mechanical forcing at the surface used to drive the liquid ocean simulated by MOM. Data in this type is allocated in the module MOM_surface_forcing.F90, of which there are three versions: solo, coupled, and ice-shelf
 Nmom_geothermalImplemented geothermal heating at the ocean bottom
 Cgeothermal_csControl structure for geothermal heating
 Nmom_get_inputReads the only Fortran name list needed to boot-strap the model
 CdirectoriesContainer for paths and parameter file names
 Nmom_gridProvides the ocean grid type
 Cocean_grid_typeOcean grid type. See mom_grid for details
 Nmom_grid_initializeInitializes horizontal grid
 CgpsGlobal positioning system (aka container for information to describe the grid)
 Nmom_hor_indexDefines the horizontal index type (hor_index_type) used for providing index ranges
 Cassignment(=)Copy the contents of one horizontal index type into another
 Chor_index_typeContainer for horizontal index ranges for data, computational and global domains
 Nmom_hor_viscCalculates horizontal viscosity and viscous stresses
 Chor_visc_csControl structure for horizontal viscosity
 Nmom_horizontal_regriddingHorizontal interpolation
 Cfill_boundariesFill grid edges
 Choriz_interp_and_extrap_tracerExtrapolate and interpolate data
 Nmom_ice_shelfImplements 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
 Cice_shelf_csControl structure that contains ice shelf parameters and diagnostics handles
 Nmom_ice_shelf_dynamicsImplements a crude placeholder for a later implementation of full ice shelf dynamics
 Cice_shelf_dyn_csThe control structure for the ice shelf dynamics
 Nmom_ice_shelf_stateImplements 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
 Cice_shelf_stateStructure that describes the ice shelf state
 Nmom_int_tide_inputCalculates energy input to the internal tides
 Cint_tide_input_csThis control structure holds parameters that regulate internal tide energy inputs
 Cint_tide_input_typeThis type is used to exchange fields related to the internal tides
 Nmom_interface_heightsFunctions for calculating interface heights, including free surface height
 Cfind_etaCalculates the heights of sruface or all interfaces from layer thicknesses
 Nmom_internal_tidesSubroutines that use the ray-tracing equations to propagate the internal tide energy density
 Cint_tide_csThis control structure has parameters for the MOM_internal_tides module
 Cloop_bounds_typeA structure with the active energy loop bounds
 Nmom_ioThis module contains I/O framework code
 Cfile_existsIndicate whether a file exists, perhaps with domain decomposition
 Cmom_read_dataRead a data field from a file
 Cmom_read_vectorRead a pair of data fields representing the two components of a vector from a file
 CvardescType for describing a variable, typically a tracer
 Nmom_kappa_shearShear-dependent mixing following Jackson et al. 2008
 Ckappa_shear_csThis control structure holds the parameters that regulate shear mixing
 Nmom_lateral_boundary_diffusionCalculates and applies diffusive fluxes as a parameterization of lateral mixing (non-neutral) by mesoscale eddies near the top and bottom (to be implemented) boundary layers of the ocean
 Clateral_boundary_diffusion_csSets parameters for lateral boundary mixing module
 Nmom_lateral_mixing_coeffsVariable mixing coefficients
 Cvarmix_csVariable mixing coefficients
 Nmom_marine_iceRoutines incorporating the effects of marine ice (sea-ice and icebergs) into the ocean model dynamics and thermodynamics
 Cmarine_ice_csControl structure for MOM_marine_ice
 Nmom_mekeImplements the Mesoscale Eddy Kinetic Energy framework with topographic beta effect included in computing beta in Rhines scale
 Cmeke_csControl structure that contains MEKE parameters and diagnostics handles
 Nmom_meke_types
 Cmeke_typeThis type is used to exchange information related to the MEKE calculations
 Nmom_mixed_layer_restratParameterization of mixed layer restratification by unresolved mixed-layer eddies
 Cmixedlayer_restrat_csControl structure for mom_mixed_layer_restrat
 Nmom_neutral_diffusionA column-wise toolbox for implementing neutral diffusion
 Cneutral_diffusion_csThe control structure for the MOM_neutral_diffusion module
 Nmom_ocean_model_mctTop-level module for the MOM6 ocean model in coupled mode
 Cocean_public_typeThis type is used for communication with other components via the FMS coupler. The element names and types can be changed only with great deliberation, hence the persistnce of things like the cutsy element name "avg_kount"
 Cocean_state_typeThe ocean_state_type contains all information about the state of the ocean, with a format that is private so it can be readily changed without disrupting other coupled components
 Nmom_ocean_model_nuopcTop-level module for the MOM6 ocean model in coupled mode
 Cocean_public_typeThis type is used for communication with other components via the FMS coupler. The element names and types can be changed only with great deliberation, hence the persistnce of things like the cutsy element name "avg_kount"
 Cocean_state_typeThe ocean_state_type contains all information about the state of the ocean, with a format that is private so it can be readily changed without disrupting other coupled components
 Nmom_ocmip2_cfcSimulates CFCs using the OCMIP2 protocols
 Cocmip2_cfc_csThe control structure for the OCMPI2_CFC tracer package
 Nmom_oda_driver_modInterfaces for MOM6 ensembles and data assimilation
 Coda_csControl structure that contains a transpose of the ocean state across ensemble members
 Cptr_mpp_domainA structure with a pointer to a domain2d, to allow for the creation of arrays of pointers
 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
 Coffline_transport_csThe control structure for the offline transport module
 Nmom_opacityRoutines used to calculate the opacity of the ocean
 Copacity_csThe control structure with paramters for the MOM_opacity module
 Coptics_typeThis type is used to store information about ocean optical properties
 Nmom_open_boundaryControls where open boundary conditions are applied
 Cfile_obc_csControl structure for open boundaries that read from files. Probably lots to update here
 Cobc_registry_typeType to carry basic OBC information needed for updating values
 Cobc_segment_data_typeOpen boundary segment data from files (mostly)
 Cobc_segment_tracer_typeTracer on OBC segment data structure, for putting into a segment tracer registry
 Cobc_segment_typeOpen boundary segment data structure
 Cobc_struct_typeType to carry something (what] for the OBC registry
 Cocean_obc_typeOpen-boundary data
 Csegment_tracer_registry_typeRegistry type for tracers on segments
 Nmom_pointaccelDebug accelerations at a given point
 Cpointaccel_csThe control structure for the MOM_PointAccel module
 Nmom_pressureforceA thin wrapper for Boussinesq/non-Boussinesq forms of the pressure force calculation
 Cpressureforce_csPressure force control structure
 Nmom_pressureforce_afvAnalytically integrated finite volume pressure gradient
 Cpressureforce_afv_csFinite volume pressure gradient control structure
 Nmom_pressureforce_blk_afvAnalytically integrated finite volume pressure gradient
 Cpressureforce_blk_afv_csFinite volume pressure gradient control structure
 Nmom_pressureforce_montProvides the Montgomery potential form of pressure gradient
 Cpressureforce_mont_csControl structure for the Montgomery potential form of pressure gradient
 Nmom_regriddingGenerates vertical grids as part of the ALE algorithm
 Cregridding_csRegridding control structure
 Nmom_regularize_layersProvides regularization of layers in isopycnal mode
 Cregularize_layers_csThis control structure holds parameters used by the MOM_regularize_layers module
 Nmom_remappingProvides column-wise vertical remapping functions
 Cremapping_csContainer for remapping parameters
 Nmom_restartThe MOM6 facility for reading and writing restart files, and querying what has been read
 Cfield_restartA structure with information about a single restart field
 Cmom_restart_csA restart registry and the control structure for restarts
 Cobsolete_restartA structure to store information about restart fields that are no longer used
 Cp0dA type for making arrays of pointers to scalars
 Cp1dA type for making arrays of pointers to 1-d arrays
 Cp2dA type for making arrays of pointers to 2-d arrays
 Cp3dA type for making arrays of pointers to 3-d arrays
 Cp4dA type for making arrays of pointers to 4-d arrays
 Cquery_initializedIndicate whether a field has been read from a restart file
 Cregister_restart_fieldRegister fields for restarts
 Nmom_safe_allocConvenience functions for safely allocating memory without accidentally reallocating pointer and causing memory leaks
 Csafe_alloc_allocAllocate a 2-d or 3-d allocatable array
 Csafe_alloc_ptrAllocate a pointer to a 1-d, 2-d or 3-d array
 Nmom_set_diffusivityCalculate vertical diffusivity from all mixing processes
 Cdiffusivity_diagsThis structure has memory for used in calculating diagnostics of diffusivity
 Cset_diffusivity_csThis control structure contains parameters for MOM_set_diffusivity
 Nmom_set_viscCalculates various values related to the bottom boundary layer, such as the viscosity and thickness of the BBL (set_viscous_BBL)
 Cset_visc_csControl structure for MOM_set_visc
 Nmom_spongeImplements sponge regions in isopycnal mode
 Cp2dA structure for creating arrays of pointers to 2D arrays
 Cp3dA structure for creating arrays of pointers to 3D arrays
 Csponge_csThis control structure holds memory and parameters for the MOM_sponge module
 Nmom_sum_outputReports integrated quantities for monitoring the model state
 Cdepth_listA list of depths and corresponding globally integrated ocean area at each depth and the ocean volume below each depth
 Csum_output_csThe control structure for the MOM_sum_output module
 Nmom_surface_forcingFunctions that calculate the surface wind stresses and fluxes of buoyancy or temperature/salinity andfresh water, in ocean-only (solo) mode
 Csurface_forcing_csStructure containing pointers to the forcing fields that may be used to drive MOM. All fluxes are positive into the ocean
 Nmom_surface_forcing_mct
 Cice_ocean_boundary_typeStructure corresponding to forcing, but with the elements, units, and conventions that exactly conform to the use for MOM-based coupled models
 Csurface_forcing_csContains pointers to the forcing fields which may be used to drive MOM. All fluxes are positive downward
 Nmom_surface_forcing_nuopcConverts the input ESMF data (import data) to a MOM-specific data type (surface_forcing_CS)
 Cice_ocean_boundary_typeStructure corresponding to forcing, but with the elements, units, and conventions that exactly conform to the use for MOM-based coupled models
 Csurface_forcing_csContains pointers to the forcing fields which may be used to drive MOM. All fluxes are positive downward
 Nmom_tfreezeFreezing point expressions
 Ccalculate_tfreeze_linearCompute the freezing point potential temperature [degC] from salinity [ppt] and pressure [Pa] using a simple linear expression, with coefficients passed in as arguments
 Ccalculate_tfreeze_milleroCompute the freezing point potential temperature [degC] from salinity [PSU] 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)
 Ccalculate_tfreeze_teos10Compute the freezing point conservative temperature [degC] from absolute salinity [g/kg] and pressure [Pa] using the TEOS10 package
 Nmom_thickness_diffuseThickness diffusion (or Gent McWilliams)
 Cthickness_diffuse_csControl structure for thickness diffusion
 Nmom_tidal_forcingTidal contributions to geopotential
 Ctidal_forcing_csThe control structure for the MOM_tidal_forcing module
 Nmom_tidal_mixingInterface to vertical tidal mixing schemes including CVMix tidal mixing
 Ctidal_mixing_csControl structure with parameters for the tidal mixing module
 Ctidal_mixing_diagsContainers for tidal mixing diagnostics
 Nmom_tracer_advectThis module contains the subroutines that advect tracers along coordinate surfaces
 Ctracer_advect_csControl structure for this module
 Nmom_tracer_flow_controlOrchestrates the registration and calling of tracer packages
 Ctracer_flow_control_csThe control structure for orchestrating the calling of tracer packages
 Nmom_tracer_hor_diffMain routine for lateral (along surface or neutral) diffusion of tracers
 Cp2dA type that can be used to create arrays of pointers to 2D arrays
 Cp2diA type that can be used to create arrays of pointers to 2D integer arrays
 Ctracer_hor_diff_csThe ocntrol structure for along-layer and epineutral tracer diffusion
 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
 Ctracer_registry_typeType to carry basic tracer information
 Ctracer_typeThe tracer type
 Nmom_unit_scalingProvides a transparent unit rescaling type to facilitate dimensional consistency testing
 Cunit_scale_typeDescribes various unit conversion factors
 Nmom_variablesProvides transparent structures with groups of MOM6 variables and supporting routines
 Caccel_diag_ptrsPointers to arrays with accelerations, which can later be used for derived diagnostics, like energy balances
 Cbt_cont_typeContainer for information about the summed layer transports and how they will vary as the barotropic velocity is changed
 Ccont_diag_ptrsPointers to arrays with transports, which can later be used for derived diagnostics, like energy balances
 Cocean_internal_statePointers to all of the prognostic variables allocated in MOM_variables.F90 and MOM.F90
 Cp2dA structure for creating arrays of pointers to 2D arrays
 Cp3dA structure for creating arrays of pointers to 3D arrays
 CsurfacePointers to various fields which may be used describe the surface state of MOM, and which will be returned to a the calling program
 Cthermo_var_ptrsPointers to an assortment of thermodynamic fields that may be available, including potential temperature, salinity, heat capacity, and the equation of state control structure
 Cvertvisc_typeVertical viscosities, drag coefficients, and related fields
 Nmom_vert_frictionImplements vertical viscosity (vertvisc)
 Cvertvisc_csThe control structure with parameters and memory for the MOM_vert_friction module
 Nmom_verticalgridProvides a transparent vertical ocean grid type and supporting routines
 Cverticalgrid_typeDescribes the vertical ocean grid, including unit conversion factors
 Nmom_wave_interfaceInterface for surface waves
 Cwave_parameters_csContainer for all surface wave related parameters
 Nmom_wave_speedRoutines for calculating baroclinic wave speeds
 Cwave_speed_csControl structure for MOM_wave_speed
 Nmom_wave_structureVertical structure functions for first baroclinic mode wave speed
 Cwave_structure_csThe control structure for the MOM_wave_structure module
 Nmom_write_cputimeA module to monitor the overall CPU time used by MOM6 and project when to stop the model
 Cwrite_cputime_csA control structure that regulates the writing of CPU time
 Nneverland_surface_forcingWind and buoyancy forcing for the Neverland configurations
 Cneverland_surface_forcing_csThis control structure should be used to store any run-time variables associated with the Neverland forcing
 Nocn_comp_mctThis is the main driver for MOM6 in CIME
 Cmct_mom_dataControl structure for this module
 Nocn_cpl_indices
 Ccpl_indices_typeStructure with indices needed for MCT attribute vectors
 Noil_tracerA tracer package to mimic dissolved oil
 Coil_tracer_csThe control structure for the oil tracer package
 Npseudo_salt_tracerA tracer package that mimics salinity
 Cpseudo_salt_tracer_csThe control structure for the pseudo-salt tracer
 Nregional_dyesA tracer package for using dyes to diagnose regional flows
 Cdye_tracer_csThe control structure for the regional dyes tracer package
 Nregrid_constsContains constants for interpreting input parameters that control regridding
 CcoordinateunitsReturns a string with the coordinate units associated with the coordinate mode
 Cstate_dependentReturns true if the coordinate is dependent on the state density, returns false otherwise
 Nregrid_interpVertical interpolation for regridding
 Cinterp_cs_typeControl structure for regrid_interp module
 Nrgc_tracerThis module contains the routines used to set up a dynamically passive tracer. Set up and use passive tracers requires the following: (1) register_RGC_tracer (2) apply diffusion, physics/chemistry and advect the tracer
 Crgc_tracer_csTracer control structure
 Nscm_cvmix_testsInitial conditions and forcing for the single column model (SCM) CVMix test set
 Cscm_cvmix_tests_csContainer for surface forcing parameters
 Nshelfwave_initializationConfigures the model for the idealized shelfwave test case
 Cshelfwave_obc_csControl structure for shelfwave open boundaries
 Ntidal_bay_initializationConfigures the model for the "tidal_bay" experiment. tidal_bay = Tidally resonant bay from Zygmunt Kowalik's class on tides
 Ctidal_bay_obc_csControl structure for tidal bay open boundaries
 Ntime_utils_modSet of time utilities for converting between FMS and ESMF time type
 Cesmf2fms_timeConverts time from FMS to ESMF format
 Cfms2esmf_calConverts calendar from FMS to ESMF format
 Nuser_change_diffusivityIncrements the diapycnal diffusivity in a specified band of latitudes and densities
 Cuser_change_diff_csControl structure for user_change_diffusivity
 Nuser_revise_forcingProvides a template for users to code updating the forcing fluxes
 Cuser_revise_forcing_csControl structure for user_revise_forcing
 Nuser_shelf_initThis module specifies the initial values and evolving properties of the MOM6 ice shelf, using user-provided code
 Cuser_ice_shelf_csThe control structure for the user_ice_shelf module
 Nuser_surface_forcingTemplate for user to code up surface forcing
 Cuser_surface_forcing_csThis control structure should be used to store any run-time variables associated with the user-specified forcing
 Nuser_tracer_exampleA sample tracer package that has striped initial conditions
 Cuser_tracer_example_csThe control structure for the USER_tracer_example module