| 1 | = `U_init_dim_obs` = |
| 2 | |
| 3 | The page document the user-supplied call-back routine `U_init_dim_obs`. |
| 4 | |
| 5 | The routine `U_init_dim_obs` is a call-back routine that has to be provided by the user. In the simplified interface the predefined name of the routine is `init_dim_obs_pdaf`, but in the full interface, the user can choose the name of the routine. |
| 6 | The routine is used with all global filters. The purpose of the routine is to determine the size of the vector of observations. |
| 7 | The routine is called at the beginning of each analysis step. |
| 8 | |
| 9 | The interface is the following: |
| 10 | {{{ |
| 11 | SUBROUTINE U_init_dim_obs(step, dim_obs_p) |
| 12 | }}} |
| 13 | with |
| 14 | * `step` : `integer, intent(in)`[[BR]] Current time step |
| 15 | * `dim_obs_p` : `integer, intent(out)[[BR]] Size of the observation vector |
| 16 | |
| 17 | Notes: |
| 18 | * Without parallelization `dim_obs_p` will be the number of observations for the full model domain. When a domain-decomposed model is used, `dim_obs_p` will be the size of the observation vector for the sub-domain of the calling process. |
| 19 | |
| 20 | Some hints: |
| 21 | * It can be useful to not only determine the size of the observation vector at this point. One can also already gather information about the locations of the observations, which will be used later, e.g. to implement the observation operator. An array for the locations can be defined in a module like `mod_assimilation` of the example implementation. |