3. Code repositories and directory structure¶
This chapter describes the code repositories that comprise the MR Weather App, without describing, in detail, any of the components.
3.1. Hierarchical Repository Structure¶
The umbrella repository for the MR Weather App is named ufs-mrweather-app and is
available on GitHub at https://github.com/ufs-community/ufs-mrweather-app. An umbrella
repository is defined as a repository that includes links, called externals, to additional
repositories. The MR Weather App includes the checkout_externals
tools along with a
configuration file called Externals.cfg
, which describes the external repositories
associated with this umbrella (see Table 3.1).
Repository Description |
Authoritative repository URL |
---|---|
Umbrella repository for the MR Weather App |
|
Umbrella repository for the UFS Weather Model |
|
CIME |
|
Layer required for CIME to build ufs-weather-model |
|
Layer required for CIME to build NEMS driver |
|
UPP |
The UFS MR Weather Model is itself an umbrella repository and contains a number of sub-repositories used by the model as documented here. The CIME repository contains the workflow and build system for the prognostic model. The two layer repositories provide interfaces to allow CIME to properly build the ufs-weather-model and the NEMS driver.
Note
Note that the prerequisite libraries (including NCEP Libraries) are not included in the MR Weather App repository. The source code for these components resides in the umbrella repositories NCEPLIBS and NCEPLIBS-external. The former has links to the chgres_cube preprocessor repository and to UPP.
These external components are already built on the preconfigured platforms listed here. However, they must be cloned and built on other platforms according to the instructions provided in the wiki pages of those repositories: <https://github.com/NOAA-EMC/NCEPLIBS/wiki>` and <https://github.com/NOAA-EMC/NCEPLIBS-external/wiki>.
The UPP code works in two ways with the MR Weather App. The code to create the UPP executable is part of the NCEPLIBS, and the executable is already installed in preconfigued platforms. For the purposes of enabling customization of UPP fields, as described in the Inputs and Outputs chapter, the UPP code is also included in the MR Weather App umbrella repository.
3.2. Directory Structure¶
The directory structure on disk for users of the MR Weather App depends on whether one is using
a pre-configured platform. Users working on pre-configured platforms will only have the
files associated with the ufs-mrweather-app in their disk space. The directory structure is set
in configuration file Externals.cfg
, which is in the top directory where the umbrella repository
has been cloned. A listing of the directory structure is shown here.
The directory structures for the standalone UFS Weather Model and the UFS Weather Model included with
the MR Weather App are equal in that they contain subdirectories for FMS, FV3, NEMS
and stochastic_physics. However, in the MR Weather App, subdirectories are located under src/model
.
The MR Weather App also includes directories for CIME, such as the src/model/FV3/cime
and
src/model/NEMS/cime
directories.
Users working outside of preconfigured platforms will have additional files on disk associated with
the libraries, pre- and post-processing. The resulting directory structure is determined by the path
settings in the NCEPLIBS .gitmodules
file.