Skip to content

CAM-SIMA directory structure

This page lists out the directory structure for CAM-SIMA, and what the general purpose of each directory and subdirectory is.

Top-level external directories

These directories contain external repository source code, libraries, or tools, and usually are only present after bin/git-fleximod update has been run.

Please note that any modifications to the source code in these directories should generally be made outside of CAM-SIMA and instead in the associated external repository listed below.

bin/

Contains the git-fleximod tool for downloading needed source code and software from external repositories. More information on git-fleximod can be found here.

ccpp_framework/

Contains the core CCPP-framework source code and tools.

ccs_config/

Contains the configuration files used by CIME to properly configure and build a CAM-SIMA (or CESM) case. The Github repository associated with this directory can be found here.

cime/

Contains the Common Infrastructure for Modeling the Earth (CIME) tools and associated libraries. Used by CAM-SIMA and CESM for the general configuration and building of a simulation (or "case"). See more on CIME usage in the Creating, configuring, and running a case section.

components/

Contains the following other CESM components:

libraries/

Contains the following external libraries:

share/

Contains source code shared across all CESM components.

Top-level CAM-SIMA directories

These directories represent code and tools that is solely contained within the CAM-SIMA repository. If there is a sub-directory that is also an external submodule or repository it will be marked with the "(external)" label.

cime_config/

Contains the SIMA-specific python and XML configuration routines used by CIME and the CCPP-framework to properly configure and build a CAM-SIMA simulation, including the CCPP-generated caps and namelist files.

Subdirectories:

  • testdefs - Location of the CAM-SIMA regression test list and associated files used by CIME during regression (system) testing.
    • testmods_dirs/cam - Location of CAM-SIMA case configuration files used during CIME regression testing.

docker/

Contains files needed to run certain CAM-SIMA configurations in a docker container.

src/

Contains all of the SIMA-specific source code needed to run the model. Additional details can be found below in the Source directories section.

test/

Contains everything needed to perform software testing and validation of CAM-SIMA source code.

Subdirectories:

  • system/ - Includes scripts needed to run CIME (integration) regression tests.
  • unit/ - Includes scripts and source code needed to run CAM-SIMA unit tests.
    • sample_files/ - Contains files that are used to validate the unit test results.

tools/

Contains non-required scripts and source code that may be useful for CAM-SIMA development.

Source (src) directories

This section lists all of the directories underneath the "src" top-level directory.

control/

Contains all of the source code needed for general model configuration, organization, and workflow, i.e. all of the "control" systems.

cpl/

Contains all of the source code needed for SIMA to interact with a coupler

Subdirectories:

  • nuopc/ - Contains the source code needed to interact with the NUOPC coupler, which is brought in via the CMEPS external.

data/

Contains all of the source code needed to manage internal model data. This includes auto-generated registry and initial conditions files code, physical constants, and atmospheric composition and thermodynamic properties.

dynamics/

Contains all of the dynamical core (dycore) source code.

Subdirectories:

  • mpas/ - Contains all of the source code needed for SIMA to properly couple to the Model for Prediction Across Scales (MPAS) dynamical core.
    • dycore/ (external) - External submodule that contains the MPAS dycore code.
  • none/ - Contains the "null" dycore source code, which allows physics and chemistry routines to be forced with atmospheric data coming directly from input files as opposed to dycore calculations.
  • se/ - Contains all of the source code needed for SIMA to properly couple to the Spectral Element dynamical core.
    • dycore/ - Contains the internal SE dycore source code files.
  • tests/ - Contains the source code needed to configure analytic initial conditions for dycores.
    • initial_conditions/ - Contains source code needed to configure specific analytic initial conditions formulations.
  • utils/ - Contains utility code used by all dycores in SIMA.

physics/

Contains all of the SIMA physics and chemistry source code.

Subdirectories:

  • ncar_ccpp/ (external) - External submodule that contains all of the code in the atmospheric_physics repo.
  • utils/ - Contains SIMA-specific utility routines for working with the CCPP-framework and CCPP-ized physics routines.

utils/

Contains source code for generic SIMA utility routines that can be used throughout the model.