-
Notifications
You must be signed in to change notification settings - Fork 250
Home
The ufs-weather-model repository contains the model code and external links needed to build the Unified Forecast System (UFS) atmosphere model and associated components, including the WaveWatch III model. This weather model is used in several of the UFS applications, including the medium-range weather application and the short-range weather application.
This wiki includes a Getting Started section that leads you through a quick example. It also includes a Graduate Student Test based on that example. The Graduate Student Test is a way for students, postdocs and others to provide feedback on the usability of the code by running through a series of experiments and then filling out a questionnaire about the experience.
The UFS Weather Model User's Guide has more comprehensive information than this wiki, including links to scientific descriptions of the code and more thorough technical instructions.
Depending on what you are doing, you may need different versions of the User's Guide:
Version | Description |
---|---|
Tag ufs-v1.1.0 | Documentation for the most recent release and the version currently used in the Getting Started section and Graduate Student Test. |
Latest | Documentation for the head of the development. This may have gaps and errors. |
You can also get expert help through a user support forum set up specifically for the UFS Weather Model.
The ufs-weather-model repository supports several UFS applications. It contains atmosphere and wave components and some infrastructure components. Each of these components has its own repository. All the repositories are currently located in GitHub with public access to the broad community. Below is the ufs-weather-model hierarchical repository structure:
Hierarchy of repositories | Authoritative repo URL |
---|---|
ufs-weather-model | https://github.com/ufs-community/ufs-weather-model |
|── FMS | https://github.com/NOAA-GFDL/FMS |
|── NEMS | https://github.com/NOAA-EMC/NEMS |
└── NCEPLIBS-pyprodutil | https://github.com/NOAA-EMC/NCEPLIBS-pyprodutil |
|── fv3atm | https://github.com/NOAA-EMC/fv3atm |
└── GFDL_atmos_cubed_sphere | https://github.com/NOAA-EMC/GFDL_atmos_cubed_sphere |
└── ccpp-framework | https://github.com/NCAR/ccpp-framework |
└── ccpp-physics | https://github.com/NCAR/ccpp-physics |
|── stochastic_physics | https://github.com/noaa-psd/stochastic_physics |
|── WW3 | https://github.com/NOAA-EMC/WW3 |
In the table, the left column shows the component names and the right column shows the component authoritative repositories. The ufs-weather-model currently uses git submodule to manage the sub-components. Developers may need to work with several components at the same time and need to get their changes committed to the components' authoritative repositories. To do that, developers need to follow the code management practices of the authoritative repositories. Once the component authoritative repositories have been updated, the changes will be brought into the ufs-weather-model repository by its code managers.
Users who only need to check out the latest code or certain tags can clone the repository without having a GitHub account:
% git clone https://github.com/ufs-community/ufs-weather-model
% cd ufs-weather-model
% git checkout develop (or tags)
% git submodule update --init --recursive
Developers who are making code changes will need to refer to the Weather Model User's Guide. They will need to create a GitHub account if they do not already have one.
- Commit Queue
- WCOSS2/Acorn Library Install Status
- News
- Making code changes in the UFS weather model using the GitHub repository
- UFS weather model code commit tutorial recordings
- Building model
- Running regression tests
- Regression Test Policy for Weather Model Platforms and Compilers
- Running operational requirements tests
- Porting to a new machine
-
spack-stack - builds prerequisite software stack for the UFS WM, including NCEPLIBS and NCEPLIBS-external
- NCEPLIBS - builds bundled library dependencies
- NCEPLIBS-external - builds external library dependencies