Skip to content

Configure DART as a CESM component  #5

@hkershaw-brown

Description

@hkershaw-brown

DART interface to CESM

Summary:

CESM (Community Earth System Model) couples atmosphere, ocean, sea ice, land, and other components to simulate the Earth system. DART (Data Assimilation Research Testbed) provides tools and infrastructure to run ensemble-based data assimilation experiments and to generate diagnostics.

This project focuses on automating the process of downloading, configuring, and building DART as part of a CESM case setup. Instead of requiring users to manually obtain and compile DART, this interface makes DART a managed CESM “external” component to streamline the workflow for running data assimilation experiments with CESM.

A proof-of-concept DART interface for the POP ocean component already exists: https://github.com/CROCODILE-CESM/DART_interface. This project extends and generalizes that work to support MOM6 (and optionally other components such as CICE), integrate cleanly into CESM build/run workflows, to improve user experience, testing, and reusable tooling.

Motivation:

Currently, CESM and DART must be installed separately. Users who want to run assimilation experiments must:

  • Clone both repositories,

  • Compile DART manually,

  • Copy or link DART executables into CESM case directories, and

  • Manually coordinate updates and paths.

This setup is error-prone and discourages wider use of data assimilation capabilities within the CESM framework.
By integrating DART directly into the CESM build and case management system:

  • CESM users can easily enable DART through a case option or configuration flag.

  • DART becomes a managed dependency (downloaded via manage_externals or similar).

  • Experiment setup becomes reproducible, portable, and easier to maintain.

A proof of concept for integrating DART with CESM’s POP component exists here:
https://github.com/CROCODILE-CESM/DART_interface

Scientists currently install CESM and DART separately and perform a good deal of manual configuration to run assimilation experiments. That friction discourages use, makes experiments error-prone, and reduces reproducibility.

A maintained, documented interface will:

  • Lower the barrier to entry for DART+CESM experiments.

  • Encourage consistent best-practices for data assimilation options

  • Enable easier replication and sharing of assimilation experiments across groups.

Extending the POP prototype to MOM6 (the modern ocean model used in CESM) covers more of the community and future-proofs the interface.

Goals:

  • DART can be downloaded, built, and installed automatically when setting up CESM.
  • No manual DART installation required by the user.

Approach

  • Understand CESM Build Workflow

    • Review how CESM manages external repositories (e.g., via git-fleximod).
    • Examine existing component build scripts (bld/, config_component.xml, etc.).
  • Add DART as an External Component

    • Define DART in CESM’s external configuration file (e.g., Externals.cfg).
    • Ensure consistent versioning and reproducible checkout.
  • Integrate DART Build into CESM Build System

    • Create a lightweight build script wrapper for DART.
    • Add logic to CESM’s build system to invoke this build step automatically.
    • Configure DART executables to install into CESM’s exe or case-specific directories.
  • Provide User-Facing Configuration Options

    • Ensure CESM recognizes and validates this option during case setup.
  • Testing & Documentation

    • Validate integration on common platforms (e.g., NCAR HPC systems).
    • Write user and developer documentation for enabling and building with DART.

Skills Needed (or gained with this project!)

  • Familiarity with CESM build and configuration system (CIME).
  • Understanding of DART’s build process.
  • Command-line and scripting (Python, and shell).
  • Basic Git and GitHub workflow.

Possible Challenges

  • Maintaining compatibility across CESM versions and platforms.
  • Managing build dependencies (e.g., NetCDF, MPI) consistently between DART and CESM.
  • Keeping DART versioning aligned with CESM releases.
  • Ensuring reproducibility when using git-fleximod.

Metadata

Metadata

Assignees

No one assigned

    Labels

    CIMEThe Common Infrastructure for Modeling the Earth. the glue that holds CESM together!PythonPython Skills!enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions