WRF SUPPORT
Support for WRF Users
WRF is now supported through a forum-based platform that can be found here:
http://forum.mmm.ucar.edu/.
As we expressed in the statement for
"NCAR/MMM Support for WRF and MPAS", we will continue to provide support
of the WRF modeling system to the scientific and research community. In order
to provide this support effectively and efficiently, we are prioritizing,
streamlining, and refocusing the support tasks. The following areas will have
high priority in our effort:
-
Host workshops
and tutorials
-
Maintain and continue to release up-to-date and robust software
-
Maintain and improve online documentation and online learning materials
-
Participate in user forum
discussions and answer questions regarding reasonable use of the modeling system:
-
Address issues that can be replicated in the current version of the released code.
-
Support for standard configurations and usages of the models.
-
Limited physics consultation to a subset of physics suites and options.
-
Answer forum posts that are more likely to benefit a larger segment of the community.
Support for WRF Code Developers
An important aspect of community support for WRF is to provide up-to-date and
robust software to the scientific and research community. We strive to work with
code contributors and make new capabilities available to the community. To accomplish
this goal, we ask the code contributors to follow these guidelines:
Contributors should follow the workflows (using the latest release branch)
and tools (Git and Github) used by MMM to contribute to WRF.
-
Any code contributions must meet WRF code standards.
-
Any code contributions must be made via pull requests (PR) on Github.
-
Each PR should be aimed to address a single issue.
-
Moderators from MMM will review the PR and work with contributors to meet the code
standards of the models.
-
Contributors must agree to actively support their scheme. This support includes
documentation and answering technical questions (through a moderator).
The following summarizes background information and provides links to resources for
code contributions (Click to expand).
Contributing new physics options to WRF requires an important preliminary step,
which is to obtain approval from the WRF Physics Review Panel (WPRP).
New physics packages submitted for inclusion in WRF are reviewed by the WPRP, and
prospective contributors of new schemes must contact the WPRP (wprp@ucar.edu) to
notify it of their proposed submission.
The panel makes a recommendation on whether a proposed package should be accepted.
The details of the review process may be found
here.
WRF is an open development community model, and code
contributions must meet the coding, performance, and testing requirements standards set
by the WRF Developers' Committee and WRF community.
Detailed information about code preparation, code testing, and the submission process can be found
here.
If multiple code modifications are proposed, they must be separated into single-issue pull requests.
The following tests are required for PRs of new features and physics. The tests
can be performed using Docker containers, which provide
a controlled environment for running the code. Instructions on how to use
the Docker container for the testing may be found
here.
1) The contributed code must compile and run for the core WRF system as well as components of it,
listed below.
2) The contributed code must produce bit-for-bit results when running
single vs. multiple processors for both distributed-memory MPI and shared-memory OpenMP operation.
-
Instructions
3) The contributed code must be able to produce bit-for-bit results with the restart capability.
-
Instructions
WRF code contributions are made on Github via a pull request (PR). Creating a good PR
helps WRF developers, reviewers, and other community members to
understand, review, and accept proposed changes. This section describes the process of
producing a PR.
1) PRs should be constrained to addressing a single bug fix, update, or new feature.
2) A Git PR must be created to describe the bug fix, update, or new feature.
Workflow for WRF code modification
Making a PR commit message
Example of a pull request for a new physics scheme
Example of pull request for a bug fix
Once a PR is made, it triggers an automated series of regression tests that are
carried out via cloud computing, employing the Jenkins continuous integration software.
Purposes of this testing are to ensure bit-reproducibility and that the proposed changes do not break
the existing code. Additional information on the testing is available
here.
3) Once the code passes the tests, the PR is reviewed by the Developers'
Committee, while also being open to review by the community.
Contributors should follow the discussion on the submission via comments on Github and
should be prepared to respond.
4) Contributors will likely need to
modify their submitted code code to accommodate needs
and suggestions. It is very rare that
an actual PR is accepted without changes, and this public review
is one part of the benefits of Github.
5) MMM will conduct a final test before a PR for a new feature or new physics
is accepted and merged into the code repository.
|