| 1 | = U_l2g_state = |
| 2 | |
| 3 | The page document the user-supplied call-back routine `U_l2g_state`. |
| 4 | |
| 5 | The routine `U_l2g_state` is a call-back routine that has to be provided by the user. In the simplified interface the predefined name of the routine is `l2g_state_pdaf`, but in the full interface, the user can choose the name of the routine. |
| 6 | The routine is used with all filter algorithms using domain-localization (LSEIK, LETKF, LESTKF) and is independent of the particular algorithm. |
| 7 | The routine is called during the loop over the local analysis domains in the analysis step. |
| 8 | It has to initialize the part of the global state vector `state_p` that corresponds to the local analysis domain with index `domain_p`. Provided to the routine is the state vector `state_l` for the local analysis domain. |
| 9 | |
| 10 | |
| 11 | The interface is the following: |
| 12 | {{{ |
| 13 | SUBROUTINE l2g_state(step, domain_p, dim_l, state_l, dim_p, state_p) |
| 14 | }}} |
| 15 | with |
| 16 | * `step` : `integer, intent(in)`[[BR]] Current time step |
| 17 | * `domain_p` : `integer, intent(in)`[[BR]] Index of current local analysis domain |
| 18 | * `dim_p` : `integer, intent(in)`[[BR]] Dimension of state vector for parallel model sub-domain |
| 19 | * `dim_l` : `integer, intent(in)`[[BR]] Dimension of state vector in local analysis domain |
| 20 | * `state_l` : `integer, intent(in), dimension(dim_l)`[[BR]] State vector on local analysis domain |
| 21 | * `state_p` : `integer, intent(out), dimension(dim_p)`[[BR]] State vector for parallel model sub-domain |
| 22 | |
| 23 | Hints: |
| 24 | * In the simple case that a local analysis domain is a single point of the model grid, the operation in this routine would be to write into `state_p` the data (i.e. the different model fields) for the grid point corresponding to the index `domain_p`. |