Version 2 (modified by lnerger, 5 years ago) (diff)



The page documents the user-supplied call-back routine U_init_obsvar.

The routine U_init_obsvar 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_obsvar_pdaf, but in the full interface, the user can choose the name of the routine. The routine is used with the global filters ESTKF, ETKF, and SEIK as well as the local filters LESTKF, LETKF, and LSEIK. The routine is called during the filter analysis step. The routine is only called if the adaptive forgetting factor is used (type_forget=1 in the example impementation). When the routine is called it has to return the mean observation error variance.

The interface is the following:

SUBROUTINE U_init_obsvar(step, dim_obs_p, obs_p, meanvar)


  • step : integer, intent(in)
    Current time step
  • dim_obs_p : integer, intent(in)
    Size of observation vector
  • obs_p : real, intent(in), dimension(dim_obs_p)
    Vector of observations
  • meanvar : real, intent(out)
    Mean observation error variance


  • For a model with domain-decomposition one might use the mean variance for the model sub-domain of the calling process. Alternatively one can compute a mean variance for the full model domain using MPI communication (e.g. the function MPI_allreduce).
  • The observation vector obs_p is provided to the routine for the case that the observation error variance is relative to the value of the observations.