| | 1 | = PDAFomi_diag_diffstats = |
| | 2 | |
| | 3 | This page documents the routine `PDAFomi_diag_stats` of PDAF, which was introduced with PDAF V3.1. This is part of the [wiki:OMI_observation_diagnostics_PDAF3 PDAF-OMI observation diagnostics module]. |
| | 4 | |
| | 5 | The routine returns a pointer to an array of a selection of 6 statistics comparing the observations and the observed ensemble mean for each observation type. The statistics can, for example, be used to plot a Taylor diagram. |
| | 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: |
| | 10 | {{{ |
| | 11 | SUBROUTINE PDAFomi_diag_diffstats(nobs, obsstats_ptr, verbose) |
| | 12 | |
| | 13 | INTEGER, INTENT(inout) :: nobs ! Number of observation types |
| | 14 | REAL, POINTER, INTENT(inout) :: obsstats_ptr(:,:) ! Array of observation statistics |
| | 15 | ! Included statistics are: |
| | 16 | ! (1,:) correlations between observation and observed ensemble mean (corr) |
| | 17 | ! (2,:) centered RMS difference between observation and observed ensemble mean (cRMSD) |
| | 18 | ! (3,:) mean bias (observation minus observed ensemble mean, 'bias y-Hx') |
| | 19 | ! (4,:) mean absolute difference between observation and observed ensemble mean (MAD) |
| | 20 | ! (5,:) variance of observations (STDDEV(y)) |
| | 21 | ! (6,:) variance of observed ensemble mean (STDDEV(Hx)) |
| | 22 | INTEGER, INTENT(in) :: verbose ! Verbosity flag, >0 to write screen output |
| | 23 | }}} |
| | 24 | |
| | 25 | For verbose>0 a list of statistics is printed for each observation type in the form |
| | 26 | {{{ |
| | 27 | PDAFomi obs-ID corr cRMSD bias y-Hx MAD STDDEV(y) STDDEV(Hx) |
| | 28 | PDAFomi 1 0.611 7.084E-01 4.376E-02 5.774E-01 8.787E-01 7.179E-01 |
| | 29 | }}} |
| | 30 | |
| | 31 | **Note:** |
| | 32 | * The computed statistics are for the global model domain. Thus, in case of a parallelized model, all process sub-domains are taken into account and calling `PDAFomi_diag_stats` will return the same value for all processes. |
| | 33 | * In Fortran user code the pointer should be declared in the form[[BR]] `REAL, POINTER :: obsstats_ptr(:)`[[BR]] It does not need to be allocated. The target array has the size `(6, nobs)`. |
| | 34 | * 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 |
| | 35 | * The routine returns the centered RMSD as displayed in Taylor diagrams. The non-centered RMSD can be computed using [wiki:PDAFomi_diag_rmsd]. |
| | 36 | |
| | 37 | |