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_tracer
 Cadvection_test_tracer_cs
 Cp3d
 Nbfb_surface_forcing
 Cbfb_surface_forcing_cs
 Nboundary_impulse_tracerImplements a boundary impulse response tracer to calculate Green's functions
 Cboundary_impulse_tracer_cs
 Cp3d
 Ncoord_adaptRegrid columns for the adaptive coordinate
 Cadapt_cs
 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
 Ncoupler_types_mod
 Ccoupler_2d_bc_type
 Ndome_tracer
 Cdome_tracer_cs
 Cp3d
 Nideal_age_example
 Cideal_age_tracer_cs
 Cp3d
 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)
 Cisomip_tracer_csTracer control structure
 Cp3d
 Nkelvin_initialization
 Ckelvin_obc_csControl structure for Kelvin wave open boundaries
 Nmeso_surface_forcing
 Cmeso_surface_forcing_cs
 Nmidas_vertmap
 Cfill_boundaries
 NmomThis is the main routine for MOM
 Cmom_control_structControl structure for this module
 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
 Cale_csALE control structure
 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)
 Cale_sponge_csSPONGE control structure
 Cp2d
 Cp3d
 Nmom_barotropic
 Cbarotropic_cs
 Cbt_obc_type
 Clocal_bt_cont_u_type
 Clocal_bt_cont_v_type
 Cmemory_size_type
 Nmom_boundary_updateControls where open boundary conditions are applied
 Cupdate_obc_cs
 Nmom_bulk_mixed_layer
 Cbulkmixedlayer_cs
 Nmom_checksum_packages
 Cmom_state_chksum
 Cstats
 Nmom_checksums
 Cbchksum
 Cbchksum_pair
 Cchk_sum_msg
 Cchksum
 Chchksum
 Chchksum_pair
 Cis_nan
 Cqchksum
 Cuchksum
 Cuvchksum
 Cvchksum
 Nmom_coms
 Cassignment(=)
 Cefp_type
 Coperator(+)
 Coperator(-)
 Creproducing_sum
 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_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). *
 Cctrl_forcing_cs
 Nmom_coriolisadvAccelerations due to the Coriolis force and momentum advection
 Ccoriolisadv_csControl structure for mom_coriolisadv
 Nmom_cvmix_shearInterface to CVMix interior shear schemes
 Ccvmix_shear_csControl structure including parameters for CVMix interior shear schemes
 Nmom_debugging
 Ccheck_redundant
 Ccheck_redundant_b
 Ccheck_redundant_c
 Ccheck_redundant_t
 Cvec_chksum
 Cvec_chksum_a
 Cvec_chksum_b
 Cvec_chksum_c
 Nmom_diabatic_aux
 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_mediator
 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_typeThis type is used to represent a diagnostic at the diag_mediator level. There can be both 'primary' and 'seconday' diagnostics. The primaries reside in the diag_csdiags array. They have an id which is an index into this array. The secondaries are 'variations' on the primary diagnostic. For example the CMOR diagnostics are secondary. The secondary diagnostics are kept in a list with the primary diagnostic as the head
 Cpost_data
 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
 Cdiag_remap_ctrlThis type represents remapping of diagnostics to a particular vertical coordinate. There is one of these types for each vertical coordinate. The vertical axes of a diagnostic will reference an instance of this type indicating how (or if) the diagnostic should be vertically remapped when being posted
 Nmom_diag_to_z
 Cdiag_to_z_cs
 Nmom_diagnostics
 Cdiagnostics_cs
 Nmom_diapyc_energy_req
 Cdiapyc_energy_req_cs
 Nmom_diffconvection
 Cdiffconvection_cs
 Nmom_document
 Cdoc_param
 Cdoc_type
 Clink_msg
 Nmom_domains
 Cclone_mom_domain
 Ccreate_group_pass
 Cfill_symmetric_edges
 Cmom_domain_typeThe MOM_domain_type contains information about the domain decompositoin
 Cpass_var
 Cpass_var_complete
 Cpass_var_start
 Cpass_vector
 Cpass_vector_complete
 Cpass_vector_start
 Nmom_dyn_horgrid
 Cdyn_horgrid_type
 Nmom_dynamics_legacy_split
 Cmom_dyn_legacy_split_cs
 Nmom_dynamics_split_rk2Time step the adiabatic dynamic core of MOM using RK2 method
 Cmom_dyn_split_rk2_csModule control structure
 Nmom_dynamics_unsplit
 Cmom_dyn_unsplit_cs
 Nmom_dynamics_unsplit_rk2
 Cmom_dyn_unsplit_rk2_cs
 Nmom_energetic_pbl
 Cenergetic_pbl_cs
 Nmom_entrain_diffusive
 Centrain_diffusive_cs
 Nmom_eosProvides subroutines for quantities specific to the equation of state
 Ccalculate_densityCalculates density 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_linear
 Ccalculate_density_linear
 Nmom_eos_nemo
 Ccalculate_density_nemo
 Nmom_eos_teos10
 Ccalculate_density_teos10
 Nmom_eos_unesco
 Ccalculate_density_unesco
 Nmom_eos_wright
 Ccalculate_density_wright
 Nmom_file_parser
 Cfile_data_type
 Cget_param
 Clink_parameter
 Clog_param
 Clog_version
 Cparam_file_type
 Cparameter_block
 Cread_param
 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. Data in this type is allocated in the module MOM_surface_forcing.F90, of which there are three: solo, coupled, and ice-shelf. Alternatively, they are allocated in MESO_surface_forcing.F90, which is a special case of solo_driver/MOM_surface_forcing.F90
 Cforcing_diagsStructure that defines the id handles for the forcing type
 Nmom_geothermal
 Cgeothermal_cs
 Nmom_get_input
 Cdirectories
 Nmom_gridProvides the ocean grid type
 Cocean_grid_typeOcean grid type. See mom_grid for details
 Nmom_grid_initialize
 Cgps
 Nmom_hor_indexDefines the horizontal index type (hor_index_type) used for providing index ranges
 Cassignment(=)
 Chor_index_typeContainer for horizontal index ranges for data, computational and global domains
 Nmom_hor_visc
 Chor_visc_cs
 Nmom_ice_shelfImplements the thermodynamic aspects of ocean / ice-shelf interactions,
 Cice_shelf_csControl structure that contains ice shelf parameters and diagnostics handles
 Nmom_int_tide_input
 Cint_tide_input_cs
 Cint_tide_input_type
 Nmom_interface_heightsThe module calculates interface heights, including free surface height
 Cfind_eta
 Nmom_internal_tides
 Cint_tide_cs
 Cloop_bounds_type
 Nmom_ioThis module contains I/O framework code
 Cfile_exists
 Cmom_read_data
 CvardescType for describing a variable, typically a tracer
 Nmom_kappa_shear
 Ckappa_shear_cs
 Nmom_kppProvides the K-Profile Parameterization (KPP) of Large et al., 1994, via CVMix
 Ckpp_csControl structure for containing KPP parameters/data
 Nmom_lateral_mixing_coeffsVariable mixing coefficients
 Cvarmix_csVariable mixing coefficients
 Nmom_legacy_barotropic
 Cbt_obc_type
 Clegacy_barotropic_cs
 Clocal_bt_cont_u_type
 Clocal_bt_cont_v_type
 Cmemory_size_type
 Nmom_mekeImplements the Mesoscale Eddy Kinetic Energy framework
 Cmeke_csControl structure that contains MEKE parameters and diagnostics handles
 Nmom_meke_types
 Cmeke_type
 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_cs
 Nmom_ocmip2_cfc
 Cocmip2_cfc_cs
 Cp3d
 Nmom_ocmip2_co2calc_mod
 Cco2_dope_vector
 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_cs
 Nmom_opacity
 Copacity_cs
 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_typeOpen boundary segment data structure
 Cobc_struct_typeType to carry something (what] for the OBC registry
 Cocean_obc_typeOpen-boundary data
 Nmom_pointaccel
 Cpointaccel_cs
 Nmom_pressureforceA thin wrapper for Boussinesq/non-Boussinesq forms of the pressure force calculation
 Cpressureforce_cs
 Nmom_pressureforce_afvAnalytically integrated finite volume pressure gradient
 Cpressureforce_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_layers
 Cregularize_layers_cs
 Nmom_remappingProvides column-wise vertical remapping functions
 Cremapping_csContainer for remapping parameters
 Nmom_restart
 Cfield_restart
 Cmom_restart_cs
 Cp0d
 Cp1d
 Cp2d
 Cp3d
 Cp4d
 Cquery_initialized
 Cregister_restart_field
 Nmom_safe_alloc
 Csafe_alloc_alloc
 Csafe_alloc_ptr
 Nmom_set_diffusivity
 Cdiffusivity_diags
 Cset_diffusivity_cs
 Nmom_set_visc
 Cset_visc_cs
 Nmom_shortwave_abs
 Coptics_type
 Nmom_sponge
 Cp2d
 Cp3d
 Csponge_cs
 Nmom_sum_output
 Cdepth_list
 Csum_output_cs
 Nmom_surface_forcing
 Csurface_forcing_cs
 Nmom_tfreeze
 Ccalculate_tfreeze_linear
 Ccalculate_tfreeze_millero
 Ccalculate_tfreeze_teos10
 Nmom_thickness_diffuseThickness diffusion (or Gent McWilliams)
 Cthickness_diffuse_csControl structure for thickness diffusion
 Nmom_tidal_forcing
 Ctidal_forcing_cs
 Nmom_tracer_advectThis program contains the subroutines that advect tracers along coordinate surfaces
 Ctracer_advect_csControl structure for this module
 Nmom_tracer_flow_control
 Ctracer_flow_control_cs
 Nmom_tracer_hor_diffMain routine for lateral (along surface or neutral) diffusion of tracers
 Cp2d
 Cp2di
 Ctracer_hor_diff_cs
 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_variables
 Caccel_diag_ptrsThe accel_diag_ptrs structure contains pointers to arrays with accelerations, which can later be used for derived diagnostics, like energy balances
 Cbt_cont_typeThe BT_cont_type structure contains information about the summed layer transports and how they will vary as the barotropic velocity is changed
 Ccont_diag_ptrsThe cont_diag_ptrs structure contains pointers to arrays with transports, which can later be used for derived diagnostics, like energy balances
 Cocean_internal_stateThe ocean_internal_state structure contains pointers to all of the prognostic variables allocated in MOM_variables.F90 and MOM.F90. It is useful for sending these variables for diagnostics, and in preparation for ensembles later on. All variables have the same names as the local (public) variables they refer to in MOM.F90
 Cp2d
 Cp3d
 CsurfaceThe following structure contains pointers 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_ptrsThe thermo_var_ptrs structure contains pointers to an assortment of thermodynamic fields that may be available, including potential temperature, salinity, heat capacity, and the equation of state control structure
 Cvertvisc_typeThe vertvisc_type structure contains vertical viscosities, drag coefficients, and related fields
 Nmom_vert_frictionImplements vertical viscosity (vertvisc)
 Cvertvisc_cs
 Nmom_verticalgrid
 Cverticalgrid_type
 Nmom_wave_speedRoutines for calculating baroclinic wave speeds
 Cwave_speed_csControl structure for MOM_wave_speed
 Nmom_wave_structure
 Cwave_structure_cs
 Nmom_write_cputime
 Cwrite_cputime_cs
 Nocean_model_mod
 Cocean_model_data_get
 Cocean_public_type
 Cocean_state_type
 Noil_tracer
 Coil_tracer_cs
 Cp3d
 Npseudo_salt_tracer
 Cp3d
 Cpseudo_salt_tracer_cs
 Nregional_dyes
 Cdye_tracer_cs
 Cp3d
 Nregrid_constsContains constants for interpreting input parameters that control regridding
 Ccoordinateunits
 Cstate_dependent
 Nregrid_interp
 Cinterp_cs_type
 Nscm_cvmix_testsInitial conditions and forcing for the single column model (SCM) CVmix test set
 Cscm_cvmix_tests_csContainer for surface forcing parameters
 Nscm_idealized_hurricaneInitial conditions and forcing for the single column model (SCM) idealized hurricane example
 Cscm_idealized_hurricane_csContainer for parameters describing idealized wind structure
 Nshelf_triangular_festuff
 Cice_shelf_cs
 Nshelfwave_initializationThe module configures the model for the idealized shelfwave test case
 Cshelfwave_obc_csControl structure for shelfwave open boundaries
 Ntidal_bay_initializationThe module configures 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
 Nuser_change_diffusivityBy Robert Hallberg, May 2012
 Cuser_change_diff_cs
 Nuser_revise_forcing
 Cuser_revise_forcing_cs
 Nuser_shelf_init
 Cuser_ice_shelf_cs
 Nuser_surface_forcing
 Cuser_surface_forcing_cs
 Nuser_tracer_example
 Cp3d
 Cuser_tracer_example_cs
 CKelvin_InitializationThe module configures the model for the Kelvin wave experiment. Kelvin = coastally-trapped Kelvin waves from the ROMS examples. Initialize with level surfaces and drive the wave in at the west, radiate out at the east