# init_obscovar_pdaf

The page documents the user-supplied call-back routine `init_obscovar_pdaf`

.

The routine `init_obscovar_pdaf`

(called `U_init_obs_covar`

inside the PDAF core routines) is a call-back routine that has to be provided by the user.
The routine is used only with the EnKF. The routine is called during the analysis step and is required for the generation of an ensemble of observations. It has to initialize the global observation error covariance matrix. In addition, a flag has to be initialized to provide the information, whether the observation error covariance matrix is diagonal.

The interface is the following:

SUBROUTINE init_obscovar_pdaf(step, dim_obs, dim_obs_p, covar, obs_p, isdiag)

with

`step`

:`integer, intent(in)`

Current time step`dim_obs`

:`integer, intent(in)`

Global size of observation vector`dim_obs_p`

:`integer, intent(in)`

Size of process-local observation vector`covar`

:`real, intent(out)`

Observation error covariance matrix`obs_p`

:`real, intent(in), dimension(dim_obs_p)`

Process-local vector of observations`isdiag`

:`logical, intent(out)`

Flag whether the observation error covar. matrix is diagonal

The initialization of `covar`

is for the global observation space. Thus, it is independent of whether the filter is executed with or without parallelization.

Hints:

- The local observation vector
`obs_p`

is provided to the routine for the case that the observation errors are relative to the value of the observation.