About wrfhelp

wrf-news list

WRF Workshop

WRF Tutorial

Frequently Asked Questions

 

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:
    1. Address issues that can be replicated in the current version of the released code.
    2. Support for standard configurations and usages of the models.
    3. Limited physics consultation to a subset of physics suites and options.
    4. 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).

1. Learning to Use Git and Github

Git is the version control system employed by WRF, and its use via Github is required of all contributors. Note that prospective contributors must create an account on Github to be able to make and process WRF code contributions.

Git basics

Some Github terminology

Useful Git commands

Getting started with Git and Github

WRF release process

2. Contributing a New Physics Scheme to WRF

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.

3. Code Preparation and Testing Requirements

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.

Required Tests

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

4. Proposing Code Additions/Changes Using Git

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.