WRFDA Publications

Technical Notes

WRFDA Code Browser

User's Guide V3.8.1

User's Guide V3.8

User's Guide V3.7.1

User's Guide V3.7

User's Guide V3.6.1

User's Guide V3.6

User's Guide V3.5.1

User's Guide V3.5

User's Guide V3.4.1

User's Guide V3.4

User's Guide V3.3

Older versions

WRFDA Online Tutorial

How to compile WRFDA

WRFDA on Yellowstone

Reading BUFR files

 

 

 

Background Error Statistics

Here is the collection of documentation for GEN_BE and backround error covariance in WRFDA; some of them are old and may not match the latest code. Please use them as reference only.

Documentation on CV_OPTIONS=3 in WRF-Var

Gen_be_overview for CV_OPTIONS=5

Gen_be_structure for CV_OPTIONS=5

Gen_be_Stage0 for CV_OPTIONS=5

 

Satellite radiance data assimilation

Tips on how to read radiance bufr data on different pltforms and compilers

Users' guide for radiance data assimilation (draft version)

4D-Var

 

WRF Data Assimilation System Coding Standards

These standards must apply to all da_ prefixed routines. We don't aspire to fix contributed code.

Fortran

  • All USE statements should have ONLY and specify exactly what module items they use
  • Lower case filenames, function, module and subroutine names
  • "Implicit none" in every subroutine.
  • Keep within 100 columns
  • Do not use DIMENSION keyword in variable declarations
  • Lower-case throughout (exception - environment variables in scripts).
  • One subroutine per file.
  • Indent if/do blocks by 3 spaces.
  • Only label do loops if exit/cycle would be ambiguous
  • Only CONTINUE statements can have numeric labels
  • Use descriptive names for variables/subroutines when usage is unique (e.g. psichi_to_uv).
  • Use generic names for variables/subroutines when usage is varied, i.e. maintain flexibility - e.g. field(:,:, for general interpolation routines.
  • Include compact, informative comments for each group of operations.
  • Any commented out declaration or code must have an associated comment saying why.
  • Do not mix changes - commit separately to help reviews understand what they are reviewing (tidying changes should be performed separately from other changes for which there is non-zero impact).
  • All IO using units defined by da_get_unit, da_free_unit system
  • Use statements only occur in modules, not individual routines
  • No unused variables. Assigning and then not using variables is only allowed for reading pad data in IO routines.
  • No unused types coming through use statements. Use _use x, only : _ construct
  • Do not pass different levels of a derived data into a routine, so call x(grid,grid%xb) is bad.
  • all types should end _type
  • Refer to real constants as 0.0, not 0.
    wrfvar/da/da_obs has examples of good practice.

NCL

  • All do and if blocks should be indented by 3 spaces
  • Comments should be indented with code
  • Blank lines should be used as seperators, not blank comments or lines of dashes etc