| 1 | = PDAFomi_diag_obs_rmsd = |
| 2 | |
| 3 | This page documents the routine `PDAFomi_diag_obs_rmsd` 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 root-mean square difference (RMSD) between the observations and the observed ensemble mean for each observation type. |
| 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_obs_rmsd(nobs, rmsd_pointer, verbose) |
| 12 | }}} |
| 13 | with the following arguments: |
| 14 | {{{ |
| 15 | INTEGER, INTENT(inout) :: nobs !< Number of observation types |
| 16 | REAL, POINTER, INTENT(inout) :: rmsd_pointer(:) !< Vector of RMSD values |
| 17 | INTEGER, INTENT(in) :: verbose !< Verbosity flag |
| 18 | }}} |
| 19 | |
| 20 | **Note:** |
| 21 | * The computed RMSD is for the global model domain. Thus, in case of a parallelized model, all process sub-domains are taken into account and calling `PDAFomi_diag_obs_rmsd` will return the same value for all processes. |
| 22 | * In Fortran user code the pointer should be declared in the form[[BR]] `REAL, POINTER :: rmsd_ptr(:)`[[BR]] It does not need to be allocated.. The target vector has the length `nobs`. |
| 23 | * If the observation diagnostics have not be activated by using [wiki:PDAFomi_set_obs_diag] the pointer array will not be set and `nobs=0` is. One can check this value before assessing the pointer array |
| 24 | |
| 25 | |