# PDAF_gather_obs_f2_flex

This page documents the routine `PDAF_gather_obs_f2_flex`

of PDAF, which was introduced with PDAF V1.14.

In the local filters (LESKTF, LETKF, LSEIK, LNETF) this routine can be used to gather the process-local observation coordinates arrays and returns the cooridates for the full observation 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_flex(dim_obs_p, dim_obs_f, coords_obs_p, coords_obs_f, nrows, status)

with the following arguments:

`dim_obs_p`

:`integer, intent(in)`

Process-local dimension of observation vector`dim_obs_f`

:`integer, intent(in)`

Full dimension of observation vector`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 [Wiki:PDAF_gather_dim_obs_f] can be used to determine
`dim_obs_f`

. - This is more flexible variant to the routine PDAF_gather_obs_f2. It's functionality is the same, but it does not rely on a previous call to the routine
`PDAF_gather_dim_obs_f`

. - 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.

Last modified 15 months ago
Last modified on Jul 5, 2019, 10:14:56 AM