| 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. |