= PDAF_diag_diffstats = This page documents the routine `PDAF_diag_diffstats` of PDAF, which was introduced with PDAF V3.1. The routine is provided two vector of the same length and returns a vector with 6 statistics comparing the two vectors. The statistics can, for example, be used to plot a Taylor diagram. The routine can be called in the pre/poststep routine of PDAF both before and after the analysis step to compute the ensemble statistics. The interface is: {{{ SUBROUTINE PDAF_diag_diffstats(dim_p, vec1, vec2, stats, verbose) INTEGER, INTENT(in) :: dim_p !< Size of vector REAL, INTENT(inout) :: vec1(:) !< Vector 1 REAL, INTENT(inout) :: vec2(:) !< Vector 2 REAL, INTENT(inout) :: stats(6) !< Vector holding statistics ! Included statistics are: ! (1,:) correlations between vec1 and vec2 (corr) ! (2,:) centered RMS difference between vec1 and vec2 (cRMSD) ! (3,:) mean bias (vec1-vec2) ! (4,:) mean absolute difference between vec1 and vec2 (MAD) ! (5,:) standard deviation of vec1 (STDDEV(vec1)) ! (6,:) standard deviation of vec2 (STDDEV(vec2)) INTEGER, INTENT(in) :: verbose !< Verbosity flag }}} For verbose>0 a list of statistics is printed for each observation type in the form {{{ PDAF corr cRMSD bias MAD STDDEV(1) STDDEV(2) PDAF 0.611 7.084E-01 4.376E-02 5.774E-01 8.787E-01 7.179E-01 }}} **Note:** * The statistics are computed for the global domain. Thus, with parallelization the values in `stats(6)` will be identical for all processes. * The routine performs MPI operations to obtain the global result. These operations are performed within the communicator `COMM_filter`, i.e. within the communicator computing the analysis step. * To compare the assimilated observations with the ensemble mean, one can use the PDAF-OMI routine [wiki:PDAFomi_diag_diffstats].