Changes between Initial Version and Version 1 of U_init_obs_l


Ignore:
Timestamp:
Jan 21, 2016, 3:01:12 PM (5 years ago)
Author:
lnerger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • U_init_obs_l

    v1 v1  
     1= U_init_obs_l =
     2
     3The page document the user-supplied call-back routine `U_init_obs_l`.
     4
     5The 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.
     6This routine is used by all filter algorithms with domain-localization (LSEIK, LETKF, LESTKF) and is independent of the particular algorithm.
     7The 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.
     8
     9The interface is the following:
     10{{{
     11SUBROUTINE U_init_obs_l(domain_p, step, dim_obs_l, observation_l)
     12}}}
     13with
     14 * `domain_p` : `integer, intent(in)`[[BR]] Index of current local analysis domain
     15 * `step` : `integer, intent(in)`[[BR]] Current time step
     16 * `dim_obs_l` : `integer, intent(in)`[[BR]] Local size of the observation vector
     17 * `observation_l` : `real, intent(out), dimension(dim_obs_l)`[[BR]] Local vector of observations
     18
     19Hints:
     20 * 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.
     21 * 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.