| 1 | = init_obs_f_pdaf = |

| 2 | |

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

| 4 | |

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

| 6 | This routine is used by all filter algorithms with domain-localization (LSEIK, LETKF, LESTKF) and is independent of the particular algorithm. |

| 7 | The routine is called during the analysis step before the loop over the local analysis domains is entered. It has to provide the full vector of observations for the current time step. The caller is the routine that computes an adaptive forgetting factor (PDAF_set_forget). |

| 8 | |

| 9 | The routine is only called if the globally adaptive forgetting factor is used (`type_forget=1` in the example implementation). For the local filters there is also the alternative to use locally adaptive forgetting factors (`type_forget=2` in the example implementation). |

| 10 | |

| 11 | The interface is the following: |

| 12 | {{{ |

| 13 | SUBROUTINE init_obs_f_pdaf(step, dim_obs_f, observation_f) |

| 14 | }}} |

| 15 | with |

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

| 17 | * `dim_obs_f` : `integer, intent(in)`[[BR]] Size of the full observation vector |

| 18 | * `observation_f` : `real, intent(out), dimension(dim_obs_p)`[[BR]] Full vector of observations |

| 19 | |

| 20 | Hints: |

| 21 | * As for the other 'full' routines: While the global counterpart of this routine (`init_obs_pdaf`) has to initialize the observation vector only for the local model sub-domain, the 'full' routine has to include observations that spatially belong to neighboring model sub-domains. As an easy choice one can simply initialize a vector of all globally available observations. |

| 22 | * If the adaptive forgetting factor is not used, this routine only has to exist. However, no functionality is required. |