g2l_obs_pdaf
The page document the user-supplied call-back routine g2l_obs_pdaf
.
The routine g2l_obs_pdaf
(called U_g2l_obs
inside 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 during the loop over the local analysis domains in the analysis step. It has to provide a local observation vector mstate_l
for the observation domain that corresponds to the local analysis domain with index domain_p
. Provided to the routine is the full observation vector mstate_f
from which the local part has to be extracted.
The interface is the following:
SUBROUTINE g2l_obs_pdaf(domain_p, step, dim_obs_f, dim_obs_l, mstate_f, mstate_l)
with
domain_p
:integer, intent(in)
Index of current local analysis domainstep
:integer, intent(in)
Current time stepdim_obs_f
:integer, intent(in)
Size of full observation vector for model sub-domaindim_obs_l
:integer, intent(in)
Size of observation vector for local analysis domainmstate_f
:integer, intent(in), dimension(dim_p)
Full observation vector for model sub-domainmstate_l
:integer, intent(out), dimension(dim_l)
Observation vector for local analysis domain
Hints:
- The vector
mstate_f
that is provided to the routine is one of the observed state vectors that are produced byobs_op_f_pdaf
. - Some operations performed here are analogous to those required to initialize a local vector of observations in
init_obs_l_pdaf
. If that routine reads first a full vector of observations (e.g. ininit_dim_obs_f_pdaf
), this vector has to be restricted to the relevant observations for the current local analysis domain. For this operation, one can for example initialize an index array wheninit_dim_obs_l_pdaf
is executed. (Which happens beforeg2l_obs_pdaf
)