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