wiki:init_dim_obs_f_pdaf

Version 3 (modified by lnerger, 7 years ago) (diff)

--

init_dim_obs_f_pdaf

The page document the user-supplied call-back routine init_dim_obs_f_pdaf.

The routine init_dim_obs_f_pdaf (called U_init_dim_obs_f in the PDAF core routines) is a call-back routine that has to be provided by the user. The routine is used with all filter algorithms using domain-localization (LSEIK, LETKF, LESTKF) and is independent of the particular algorithm. The routine is called at the beginning of each analysis step, before the loop over all local analysis domains is entered. It has to initialize the size of the full observation vector according to the current time step. For simplicity, this size can be the number of observations for the global model domain.

The interface is the following:

SUBROUTINE init_dim_obs_f_pdaf(step, dim_obs_f)

with

  • step : integer, intent(in)
    Current time step
  • dim_obs_f : integer, intent(out)
    Size of the full observation vector

Some hints:

  • The full observation vector dimension dim_obs_f can be obtained by first counting process-local observation and then using the routine PDAF_gather_dim_obs_f (introduced with PDAF_V1.13).
  • It can be useful to not only determine the size of the observation vector at this point. One can also already gather information about the location (coordinates) of the observations, which can be used later, e.g. to implement the observation operator. In addition, one can already prepare an array that holds the full observation vector. This can be used later by init_obs_l_pdaf to initialize a local vector of observations by selecting the relevant parts of the full observation vector. The required arrays can be defined in a module like mod_assimilation.
  • The full observation vector and an associated array of coordinates can be collected using the routines PDAF_gather_obs_f and PDAF_gather_obs_f2 (introduced with PDAF V1.13).
  • The routine is similar to init_dim_obs_pdaf used in the global filters. However, if the global filter is used with a domain-decomposed model, it only initializes the size of the observation vector for the local model sub-domain. This is different for the local filters, as the local analysis also requires observational data from neighboring model sub-domains. Nonetheless, one can base on an implemented routine init_dim_obs_pdaf to implement init_dim_obs_f_pdaf.