2. Technical Overview¶
This chapter contains an overview of HAFS prerequisites, HAFS repository management and structure, and the workflow design.
2.1. Prerequisites for Working with the HAFS Repository¶
Git version 1.8.2 or newer, which added the possibility to track branches of submodules. The following versions of Git are used on NOAA HPCs:
Orion:
Git version 1.8.3.1 (system default)
Git version 2.21.0 (available via
module load git/2.21.0)
Jet/Hera: Git version 2.18.0
WCOSS Dell: Git version 1.8.3.1
WCOSS Cray (cannot access GitHub)
Git version 1.7.12.4 (system default)
Git version 2.14.2 (available)
module use /gpfs/hps3/emc/hwrf/noscrub/soft/modulefilesmodule load git/2.14.2
GitHub account (e.g., FirstLast-NOAA)
2.2. HAFS GitHub Repository Management¶
The authoritative HAFS repository is publicly available on GitHub at: https://github.com/hafs-community/HAFS. It is maintained by EMC and DTC with developments and contributions from the UFS HAFS application team and the hurricane research community.
HAFS Branching/Tagging Conventions:
develop: The main development branch
support/[name]: Branches used by operational implementations or HFIP real-time parallel experiments (e.g.,support/hafs.v0.2.0)
release/vx.x.x: Public release branches (e.g.,release/v1.0.0)
[name].v#.#.#(tags): hafs.v0.2.0, hafs.v1.0.0, public.v1.0.0, etc.
hotfix/[name]: Temporary bug fix branches
feature/[name]: Feature branches for adding new capabilities or enhancements
The HAFS repository only hosts major feature branches (e.g., feature/hafs_nesting) that require active group collaborations. Individual developers can work on feature branches in their personal HAFS forks.
Fig. 2.1 Example HAFS Branching Diagram¶
2.3. HAFS Directory Structure¶
The following shows the names of the files and directories in the HAFS repository.
2.4. HAFS Submodules¶
HAFS contains the following subcomponents:
2.5. HAFS Workflow Schematic¶