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 arraycoords_obs_f:real, intent(out), dimension(nrows, dim_obs_f)
Full observation coordinates arraynrows:integer, intent(in)
Number of rows in observation coordinates arraystatus:integer, intent(out)
Status flag (0 for no error)
Notes:
- The routine
PDAF_gather_dim_obs_fhas to be called once before usingPDAF_gather_obs_fbecause it internally initializes the local observation dimensions for gathering. The most recent call toPDAF_gather_dim_obs_fdefines the dimensionsdim_obs_panddim_obs_fused 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_pis(2, dim_obs_p)andnrows=2is used in the call toPDAF_gather_obs_f2. - If the coordindates are stored so that each row of
coords_obs_pholds the coordinates of one observation the routinePDAF_gather_obs_fshould 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_fand is hence easier to use. It was introduced in PDAF 1.14.
