| 1 | = `U_add_obs_err`= |
| 2 | |
| 3 | The page document the user-supplied call-back routine `U_add_obs_err`. |
| 4 | |
| 5 | The routine `U_add_obs_err` is a call-back routine that has to be provided by the user. In the simplified interface the predefined name of the routine is `add_obs_error_pdaf`, but in the full interface, the user can choose the name of the routine. |
| 6 | The routine is used by the EnKF and called during the filter analysis step. The purpose of the routine is to add the observation error covariance matrix to the input/output matrix `C`. This matrix is the projection of the ensemble covariance matrix onto the observation space that is computed during the analysis step of the EnKF. |
| 7 | |
| 8 | The interface is the following: |
| 9 | {{{ |
| 10 | SUBROUTINE add_obs_err(step, dim_obs, C) |
| 11 | }}} |
| 12 | with |
| 13 | * `step` : `integer, intent(in)`[[BR]] Current time step |
| 14 | * `dim_obs` : `integer, intent(in)`[[BR]] Size of observation vector |
| 15 | * `C` : `real, intent(inout), dimension(dim_obs,dim_obs)`[[BR]] Matrix to which the observation error covariance matrix is added |
| 16 | |
| 17 | The routine is called during the analysis step. |
| 18 | |
| 19 | The operation is for the global observation space. Thus, it is independent of whether the filter is executed with or without parallelization. |
| 20 | |
| 21 | Hints: |
| 22 | * The routine does not require that the observation error covariance matrix is added as a full matrix. If the matrix is diagonal, only the diagonal elements have to be added. |