| | 1 | = PDAFomi_diag_get_ivar = |
| | 2 | |
| | 3 | This page documents the routine `PDAFomi_diag_get_ivar` of PDAF, which was introduced with PDAF V3.0. This is part of the PDAF-OMI observation diagnostics module. |
| | 4 | |
| | 5 | The routine returns a pointer to a vector of the inverse observatino error variances for the specified observation type (`id_obs`). |
| | 6 | |
| | 7 | Usually all PDAFomi_diag routines are called in `prepoststep_pdaf` where the observation information can be retrieved and analyzed. |
| | 8 | |
| | 9 | The interface is the following: |
| | 10 | {{{ |
| | 11 | SUBROUTINE PDAFomi_diag_get_ivar(id_obs, dim_obs_p_diag, ivar_p_ptr) |
| | 12 | }}} |
| | 13 | with the following arguments: |
| | 14 | {{{ |
| | 15 | INTEGER, INTENT(in) :: id_obs !< Index of observation type to return |
| | 16 | INTEGER, INTENT(out) :: dim_obs_p_diag !< Observation dimension |
| | 17 | REAL, POINTER, INTENT(out) :: ivar_p_ptr(:) !< Pointer to inverse observation error variances |
| | 18 | }}} |
| | 19 | |
| | 20 | **Notes:** |
| | 21 | * In case of a parallelized model, the vector `ivar_p_prt contains the observed ensemble mean for the process-sub-domain |
| | 22 | * In Fortran user code the obsevation pointer should be declared in the form[[BR]] `REAL, POINTER :: ivar_p_ptr(:)`[[BR]] It does not need to be allocated. The target vector has the length `dim_obs_p_diag` |
| | 23 | * If the observation diagnostics have not be activated by using [wiki:PDAFomi_set_obs_diag] the pointer will not be set and `dim_obs_diag=0` will be returned. This value can be checked before assessing the pointer array |
| | 24 | * If the feature `thisobs%inno_omit` is used (see [wiki:PDAFomi_additional_functionality], the inverse variance of the omitted observations will show the small value set by `inno_omit`. One can use this information to exclude such observations when analyzing differences between observations and observed ensemble. |
| | 25 | |
| | 26 | |