Version 1 (modified by 9 years ago) (diff) | ,
---|
U_init_dim_obs_f
The page document the user-supplied call-back routine U_init_dim_obs_f
.
The routine U_init_dim_obs_f
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_dim_obs_f_pdaf
, but in the full interface, the user can choose the name of the routine.
The routine is used with all filter algorithms suing 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 U_init_dim_obs_f(step, dim_obs_f)
with
step
:integer, intent(in)
Current time stepdim_obs_f
:integer, intent(out)
Size of the full observation vector
Some hints:
- 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 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
U_init_obs_l
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 likemod_assimilation
. - The routine is similar to
U_init_dim_obs
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 routineU_init_dim_obs
to implementU_init_dim_obs_f
.