3. Code repositories and directory structure

This chapter describes the code repositories that comprise the UFS MR Weather App, without describing, in detail, any of the components.

3.1. Hierarchical Repository Structure

The umbrella repository for the UFS 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 UFS 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).

Table 3.1 List of top-level repositories that comprise the UFS MR Weather App.

Repository Description

Authoritative repository URL

Umbrella repository for the UFS Weather App


Umbrella repository for the UFS Weather Model




Layer required for CIME to build ufs-weather-model


Layer required for CIME to build NEMS driver


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 last two repositories provide interfaces to allow CIME to properly build the ufs-weather-model and the NEMS driver.


Note that the prerequisite libraries (including NCEP Libraries) are not included in the UFS 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>.

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 UFS MR Weather App are equal in that they contain subdirectories for FMS, FV3, NEMS and stochastic_physics. However, in the UFS Weather App, subdirectories are located under src/model. The UFS 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.