# PDAF_gather_obs_f

This page documents the routine `PDAF_gather_obs_f`

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

In the local filters (LESKTF, LETKF, LSEIK, LNETF) this routine gathers the full observation vector dimension from process-local observation vectors of size dim_obs_p and returns the full vector.

The routine depends on PDAF_gather_dim_obs_f, which defines the process-local observation dimensions. Further, the related routine PDAF_gather_obs_f2 is used to gather the associated rank-2 array of observation coordinates.

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

The interface is the following:

SUBROUTINE PDAF_gather__obs_f(obs_p, obs_f, status)

with the following arguments:

`obs_p`

:`real, intent(in), dimension(dim_obs_p)`

Process-local observation vector`obs_f`

:`real, intent(out), dimension(dim_obs_f)`

Full observation vector`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. - For cases with different observation types, the routine PDAF_gather_obs_f_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.