wiki:PDAF_gather_obs_f2

Version 5 (modified by lnerger, 5 years ago) (diff)

--

PDAF_gather_obs_f2

This page documents the routine PDAF_gather_obs_f2 of PDAF, which was introduced with PDAF V1.13.

In the local filters (LESKTF, LETKF, LSEIK, LNETF) this routine gathers the process-local observation coordinates arrays and returns the cooridates for the full observation vector.

The routine depends on PDAF_gather_dim_obs_f, which defines the process-local observation dimensions. Further, the related routine PDAF_gather_obs_f is used to collect the full state vector.

The routine is typically used in the routines init_dim_obs_f_pdaf if the analysis step of the local filters is parallelized.

The interface is the following:

  SUBROUTINE PDAF_gather_obs_f2(coords_obs_p, coords_obs_f, nrows, status)

with the following arguments:

  • coords_obs_p : real, intent(in), dimension(nrows, dim_obs_p)
    Process-local observation coordinates array
  • coords_obs_f : real, intent(out), dimension(nrows, dim_obs_f)
    Full observation coordinates array
  • nrows : integer, intent(in)
    Number of rows in observation coordinates array
  • status : integer, intent(out)
    Status flag (0 for no error)

Notes:

  • The routine PDAF_gather_dim_obs_f has to be called once before using PDAF_gather_obs_f because it internally initializes the local observation dimensions for gathering. The most recent call to PDAF_gather_dim_obs_f defines the dimensions dim_obs_p and dim_obs_f used here.
  • The routine is used for a coordinate array which stores in each column the coordinates of one observation. Thus for a two-dimensional case, the size of coords_obs_p is (2, dim_obs_p) and nrows=2 is used in the call to PDAF_gather_obs_f2.
  • If the coordindates are stored so that each row of coords_obs_p holds the coordinates of one observation the routine PDAF_gather_obs_f should be applied separate for each column to gather the full coordinates array.
  • For cases with different observation types, the routine PDAF_gather_obs_f2_flex can be used. It does not rely on PDAF_gather_dim_obs_f and is hence easier to use. It was introduced in PDAF 1.14.