| 1 | = g2l_state_pdaf = |

| 2 | |

| 3 | The page document the user-supplied call-back routine `g2l_state_pdaf`. |

| 4 | |

| 5 | The routine `g2l_state_pdaf` (called `U_g2l_state` inside the PDAF core routines) is a call-back routine that has to be provided by the user. |

| 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. It has to provide the local state vector that corresponds to the specified local analysis domain. Provided to the routine is the state vector `state_p`. With a domain decomposed model, this is the state for the process-local model sub-domain. |

| 8 | |

| 9 | |

| 10 | The interface is the following: |

| 11 | {{{ |

| 12 | SUBROUTINE g2l_state_pdaf(step, domain_p, dim_p, state_p, dim_l, state_l) |

| 13 | }}} |

| 14 | with |

| 15 | * `step` : `integer, intent(in)`[[BR]] Current time step |

| 16 | * `domain_p` : `integer, intent(in)`[[BR]] Index of current local analysis domain |

| 17 | * `dim_p` : `integer, intent(in)`[[BR]] Dimension of state vector for parallel model sub-domain |

| 18 | * `dim_l` : `integer, intent(in)`[[BR]] Dimension of state vector in local analysis domain |

| 19 | * `state_p` : `integer, intent(in), dimension(dim_p)`[[BR] State vector for parallel model sub-domain |

| 20 | * `state_l` : `integer, intent(in), dimension(dim_l)`[[BR] State vector on local analysis domain |

| 21 | |

| 22 | Hints: |

| 23 | * 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 take out of `state_p` the data (i.e. the different model fields) for the grid point corresponding to the index `domain_p`. |