Skip to content

atmospheric_physics directory structure

This page lists out the directory structure for the atmospheric_physics repo, and what the general purpose of each directory and subdirectory is.

Top-level directories

These directories represent code and tools that are contained within the atmospheric_physics repository.

doc/

Contains files used to document the current state of the atmospheric_physics repository, such as a ChangeLog and the NamesNotInDictionary.txt file which lists all standard names that are currently not in the official CCPP Standard Names repo. More on the NamesNotInDictionary.txt file here.

phys_utils/

Contains portable helper functions and utilities for use in CCPP-ized physics schemes. A general requirement is to have all routines in this directory automatically unit tested, either in atmospheric_physics itself or in a host model like CAM-SIMA.

schemes/

Contains subdirectories for all of the CCPP-ized physics schemes, with the subdirectories containing the core physics scheme source code, the associated CCPP metadata files, namelist XML files, and any relevant dependency files outside of phys_utils and to_be_ccppized.

suites/

Contains CCPP Suite Definition Files (SDFs) for official scientific and production configurations of the CAM-SIMA host model.

test/

Contains code and tools used to run tests on the CCPP-ized physics schemes.

Subdirectories:

  • cmake - Contains cmake files needed to configure and build unit tests.
  • docker - Contains dockerfiles needed to configure, build, and run unit tests.
  • include - Contains utility source code needed to build and run unit tests.
  • musica - Contains test code for the CCPP-ized Multi-Scale Infrastructure for Chemistry Modeling (MUSICA) components.
  • test_schemes - Contains CCPP physics schemes that are only used for testing.
  • test_suites - Contains test SDFs for use in CAM-SIMA snapshot regression testing.
  • unit-test - Contains the source code for the automated Fortran unit testing with pFUnit
    • include - Contains "mock" source code needed to run unit tests without bringing in an entire host model
    • tests - Contains subdirectories which have the actual pFUnit unit test code and related CMake files for building.

to_be_ccppized/

Contains source code files that are needed by certain CCPP physics schemes, but which are not yet fully CCPP compliant (e.g. have code that is still host-model-specific).