Skip to content
ChunxiZhang-NOAA edited this page Oct 31, 2022 · 53 revisions

Welcome to the ccpp-physics UFS fork wiki!

The ccpp-physics UFS fork was created from the authoritative ccpp-physics repo https://github.com/NCAR/ccpp-physics and aimed to serve the UFS modeling community. This fork is co-managed by NWS/NCEP/EMC and DTC, and managed following the management guidance.

  • This fork is used as the official physics code repository for all UFS applications, including MRW, SRW, S2S, Hurricane, AQM and other emerging UFS applications. All UFS applications point to the ufs/dev branch or have a tag in the UFS fork.
  • The NOAA-EMC/fv3atm develop branch has been pointing to this fork's ufs/dev branch since Sep 22, 2022; Developers in the UFS community should point their PRs to this fork if the code is targeted for operational applications.
  • All PRs to the ufs/dev branch should pass the RTs/ORTs.
  • The code managers of this fork will submit the PR to the authoritative repo main branch. If any RTs/ORTs for participating models do not pass, developers submitting the PR are requested to engage in a timely manner to work with UFS Fork and the CCPP authoritative code managers to resolve any issues. By this way, there will be no permanent differences between this fork and authoritative repo.
  • All UFS applications shall still use the authoritative ccpp-framework repository (https://github.com/NCAR/ccpp-framework/).
  • Authors of updates and new physics parameterizations committed to this Fork shall work with DTC CCPP team to either update existing documentation or provide new content to the CCPP Technical Documentation (https://ccpp-techdoc.readthedocs.io/) and Scientific Documentation (https://dtcenter.ucar.edu/GMTB/v6.0.0/sci_doc/).

Instructions for ccpp-physics code developers

  1. Please start with the develop branch of the ufs-weather-model by git clone -b develop --recursive https://github.com/ufs-community/ufs-weather-model.
  2. Please create an issue before creating a PR; The issue needs to be descriptive, e.g., what problem it resolves (bug or feature)? how it is tested? does the results improve the forecast skills? If possible, please attach testing results in a PPT file and PDF file.
  3. Before creating a PR to the ufs/dev branch, the developers need to conduct a full regression test (RT) on any major platform (e.g., Hera, Jet, Orion, WCOSS2 and Cheyenne); If a new case of RT is added, this RT needs to pass the full ORT test.
  4. Anyone who created a PR to the ufs/dev branch of this fork also needs to create two corresponding PRs to the develop branch of https://github.com/NOAA-EMC/fv3atm and https://github.com/ufs-community/ufs-weather-model, respectively.
  5. The ufs-weather-model PR will be added into the ufs-weather-model commit queue.
  6. If the code developers feel the commit process is too stressful, please deliver the fork managers their ccpp-physics code or provide the Github link of their branch. The fork managers will take care of the rest work. The fork managers will require the code developers to review the PR.

The protocols for the fork managers

  • For the PR into the ufs/dev branch of this fork (hereafter, UFS/dev), the commit process will follow the standard procedure by the ufs-weather-model.
  • For the PR into the NCAR/ccpp-physics main branch (hereafter, NCAR/main), it will be tested for all host models and merged by the code managers of NCAR/main.
  • UFS/dev => NCAR/main: After a new PR is merged into UFS/dev, the code managers of this fork will send an equivalent PR to NCAR/main to merge it into NCAR/main timely. The tests for all host models will be conducted by the code managers of NCAR/main.
  • NCAR/main => UFS/dev: After a new PR is merged into NCAR/main, the code managers of NCAR/main will send an equivalent PR to UFS/dev to merge it into UFS/dev timely. The testing process will follow the protocol of the ufs-weather-model.