Pubs & Docs

Tech Notes

User's Guide

 

 

 

 

Background Error Statistics

Here is the collection of the documentations for the backround error covariance of WRF-Var, some of them are old and may not match the latest codes. 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 radiacne data assimilation

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

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