| 1 | = U_localize = |
| 2 | |
| 3 | The page document the user-supplied call-back routine `U_localize`. |
| 4 | |
| 5 | 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. |
| 6 | 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. |
| 7 | |
| 8 | The interface is the following: |
| 9 | {{{ |
| 10 | SUBROUTINE U_localize(dim_p, dim_obs, HP, HPH) |
| 11 | }}} |
| 12 | with |
| 13 | * `dim` : `integer, intent(in)`[[BR]] State dimension |
| 14 | * `dim_obs` : `integer, intent(in)`[[BR]] Number of observations at current time step (i.e. the size of the observation vector) |
| 15 | * `HP` : `real, intent(in), dimension(dim_obs, dim_p)`[[BR]] Matrix HP |
| 16 | * `HPH` : `real, intent(in), dimension(dim_obs, dim_obs)`[[BR]] Matrix HPH^T |
| 17 | |
| 18 | |
| 19 | Notes: |
| 20 | * 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 |
| 21 | |
| 22 | Hints: |
| 23 | * 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^'''. |