![](images/shim112.gif) |
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
![](images/transgif.gif) ![](images/shim162.gif) |