wiki:U_init_obs_l

Version 1 (modified by lnerger, 9 years ago) (diff)

--

U_init_obs_l

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

The routine U_init_obs_l is a call-back routine that has to be provided by the user. In the simplified interface the predefined name of the routine is init_obs_l_pdaf, but in the full interface, the user can choose the name of the routine. This routine is used by all filter algorithms with domain-localization (LSEIK, LETKF, LESTKF) and is independent of the particular algorithm. The routine is called during the analysis step during the loop over the local analysis domain. It has to provide the vector of observations for the analysis in the specified local analysis domain for the current time step.

The interface is the following:

SUBROUTINE U_init_obs_l(domain_p, step, dim_obs_l, observation_l)

with

  • domain_p : integer, intent(in)
    Index of current local analysis domain
  • step : integer, intent(in)
    Current time step
  • dim_obs_l : integer, intent(in)
    Local size of the observation vector
  • observation_l : real, intent(out), dimension(dim_obs_l)
    Local vector of observations

Hints:

  • For parallel efficiency, the all domain-localized algorithms (LSEIK, LETKF, LESTKF) are implemented in a way that first the full vectors are initialized. These are then restricted to the local analysis domain during the loop over all local analysis domains. Thus, if the full vector of observations has been initialized before U_init_obs_l is executed (e.g. by U_init_dim_obs_f), the operations performed in this routine will be to select the part of the full observation vector that is relevant for the current local analysis domain.
  • The routine U_init_dim_obs_l is executed before this routine. Thus, if U_init_dim_obs_l already prepares the information which elements of observation_f are needed for observation_l, this information can be used efficiently here.