This page outlines basic configuration of MOM4 experiments.

MOM4/5 Configuration Files

MOM4 configuration is managed primarily through four text files:

  • input.nml: Principal configuration
  • diag_table: Diagnostic output management
  • data_table: Input and boundary condition data field management
  • field_table: Initial condition and advection scheme configuration

Basic Configuration

Setting the simulation time

Simulation time (or integration time) is set in the input.nml namelist file, in either ocean_solo_nml (for ocean-only runs) or coupler_nml (for coupled runs).

Ocean-only (solo) configuration

An example ocean_solo_nml namelist record is shown below:
    date_init = 1980,1,1,0,0,0
    calendar = 'julian'
    months  = 0
    days    = 2
    hours   = 0
    minutes = 0
    seconds = 0
    dt_cpld = 86400
The major namelist fields are described below:

  • date_init: Simulation start time (if no ocean_solo.res timestamp is present, such as from a previous simulation, then this field is ignored)
  • calendar: Simulation calendar type. Four calendars are supported:
    • gregorian: Modern calendar will full leap-year support
    • julian: 365-day calendar with 4-year leap years
    • noleap: 365-day calendar with no leap years
    • thirty_day: 30-day months (or 360 days per year)

  • months, days, etc.: Simulation (or integration) time
  • dt_cpld: Timestep (in seconds) to external data fields (usually atmospheric)

Coupled configuration

An example coupler_nml record follows a similar structure:
    current_date = 1980,1,1,0,0,0
    calendar = 'noleap'
    months = 12
    do_atmos = .false.
    do_land  = .false.
    do_ice   = .true.
    do_ocean = .true.
    dt_cpld = 1800
    dt_atmos = 1800
Many of the fields are identical to the ocean_solo_nml fields. The new or modified fields are listed below:

  • current_date: Simulation start time, similar to date_init in ocean_solo_nml (in this case, the timestamp override file is named coupler.res)
  • do_atmos, do_land, etc.: Use to enable or disable submodel components
  • dt_atmos: Atmospheric model timestep (in seconds), including its coupling to land and ice (or the "fast" coupling timestep)
  • dt_cpld: Ocean-atmosphere coupling (or the "slow" coupling timestep). This must be a multiple of dt_atmos and dt_ocean.

Timestep configuration

The predominant numerical parameter in model configuration is timestep size. MOM4 timestepping is configured in the ocean_model_nml namelist record. An example record is provided below:
    dt_ocean = 10800
    vertical_coordinate = 'zstar'
    barotropic_split = 60
Some typical timestep settings are as follows:

  • dt_ocean: Ocean model timestep size (in seconds)
  • vertical_coordinate: Vertical coordinate type, the most common options are listed below:
    • geopotential: Geopotential (equivalent to depth in many cases)
    • zstar: Quasi-horizontal depth
    • pressure: Pressure-based vertical coordiante
    • pstar: Quasi-horizontal pressure

  • barotropic_split: Split timestepping between the ocean free surface (or barotropic) and internal (or baroclinic) flow. A barotropic timestep of 60 means that there are sixty free surface timesteps per model timesteps (set by dt_ocean).

Advanced Configuration

A typical input.nml file will usually contain a large number of namelist records, sometimes as many as 100 for fully coupled models. Much of the configuration settings are determined through experiment design, which is a nontrivial task and often a subject of ongoing research.


The data_table file is used to supply a MOM experiment with external data forcing fields, such as surface winds or radiative heating.

Note that MOM usually expects external fields to be in netCDF format, and that the grid variables must be formatted in a particular manner.

Example data_table record:
"OCN", "u_flux", "taux", "INPUT/", .true., 1.0
  • "OCN": Identifies the class of the field. It contains one of the following values: ATM, OCN, LND, ICE
  • "u_flux": The field variable name as defined in MOM4.
  • "taux": The field variable name as defined in the netCDF provided by the user.
  • "INPUT/": The path (including filename) for the netCDF file containing the forcing field. Local paths can be used.
  • .true.: Indicates whether or not the field is on the the ocean model grid. A value of .false. indicates that it does not match the model grid and requires interpolation (as computed by MOM).
  • 1.0: A rescaling factor applied to the field. A value of 1.0 indicates no rescaling, while a value of 0. will set all values to zero.