Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Coupled Models: CICE and BGC

CrocoDash supports two compset-level coupling options beyond standalone ocean:

Both follow the same 4-step workflow as the Getting Started tutorial. Only the compset= argument and a few configure_forcings kwargs change.

Section A: Sea Ice (CICE6)

Swap the stub SICE (stub sea ice) for CICE in the compset. Everything else — grid, topo, vgrid, forcings — is identical to the standalone run.

from CrocoDash.case import Case

case = Case(
    cesmroot=cesmroot,
    caseroot=caseroot,
    inputdir=inputdir,
    ocn_grid=grid,
    ocn_vgrid=vgrid,
    ocn_topo=topo,
    project="NCGD0011",
    override=True,
    machine="derecho",
    compset="GR_JRA",  # GR_JRA = 1850_DATM%JRA_SLND_CICE_MOM6%REGIONAL_SROF_SGLC_SWAV
)

Optional: Warm start from CICE restart files

After a first run you can use CICE restart files as the ice initial condition instead of the default (open water). This gives a more realistic sea-ice state at the start of subsequent runs.

  1. Find restart files in your archive: <caseroot>/archive/rest/<year>/ — look for *.cice.r.*.nc. If unsure of the archive path, run ./xmlquery DOUT_S_ROOT in the case directory.

  2. Copy the file to your run directory: cp <restart_file> <run_dir>/.

  3. Open user_nl_cice and set ice_ic = "<restart_filename>".

Section B: Biogeochemistry (MARBL)

MARBL (the Marine Biogeochemistry Library) is bundled with CESM. Activating it requires:

  1. A compset that includes MOM6%REGIONAL%MARBL-BIO.

  2. A MARBL global initial-condition file.

  3. Passing BGC-specific kwargs to configure_forcings.

Optionally, combine with river nutrients by also enabling GLOFAS runoff (see the note below).

from CrocoDash.case import Case

case = Case(
    cesmroot=cesmroot,
    caseroot=caseroot,
    inputdir=inputdir,
    ocn_grid=grid,
    ocn_vgrid=vgrid,
    ocn_topo=topo,
    project="NCGD0011",
    override=True,
    machine="derecho",
    compset="CR1850MARBL_JRA",
)
case.configure_forcings(
    date_range=["2000-01-01 00:00:00", "2000-02-01 00:00:00"],
    product_name="mom6_output",
    function_name="get_mom6_data",
    marbl_ic_filepath="",      # path to MARBL global IC file
    # For river nutrients (requires GLOFAS runoff also enabled):
    # rof_esmf_mesh_filepath="",
    # global_river_nutrients_filepath="",
)