Version 1 (modified by 4 years ago) (diff) | ,
---|

# U_localize

The page document the user-supplied call-back routine `U_localize`

.

The routine `U_localize`

is a call-back routine that has to be provided by the user. In the simplified interface the predefined name of the routine is `localize_enkf_pdaf`

, but in the full interface, the user can choose the name of the routine.
The routine is used with the localized EnKF and called during the analysis step. The purpose of the routine is to apply covariance localization to the matrices **HP** and **HPH ^{T}**, which are provided as input/output arguments.

The interface is the following:

SUBROUTINE U_localize(dim_p, dim_obs, HP, HPH)

with

`dim`

:`integer, intent(in)`

State dimension`dim_obs`

:`integer, intent(in)`

Number of observations at current time step (i.e. the size of the observation vector)`HP`

:`real, intent(in), dimension(dim_obs, dim_p)`

Matrix HP`HPH`

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

Matrix HPH^{T }

Notes:

- In case of a parallelization with domain decomposition,
`HP`

contains only the columns of the matrix that resides on the model sub-domain of the calling process. The number of rows is that of the global number of observations

Hints:

- To compute the localization one can use the routine
`PDAF_local_weight`

after computing the distance between two elements in the matrix**HP**or**HPH**.^{T}