= PDAFomi_init_dim_obs_l = This page documents the routine `PDAFomi_init_dim_obs_l`` of PDAF-OMI. The routine has to be called in `init_dim_obs_l_OBTYPE` in each observation module if a domain-localized filter (LESTKF/LETKF/LNETF/LSEIK)is used. It initializes the local observation information for PDAF-OMI for a single local analysis domain || See the [wiki:OMI_observation_modules page describing PDAF-OMI observation modules] for the full documentation of OMI observation modules.|| The interface is: {{{ SUBROUTINE PDAFomi_init_dim_obs_l(thisobs_l, thisobs, coords_l, locweight, lradius, & sradius, dim_obs_l) TYPE(obs_f), INTENT(inout) :: thisobs ! Data type with full observation TYPE(obs_l), INTENT(inout) :: thisobs_l ! Data type with local observation REAL, INTENT(in) :: coords_l(:) ! Coordinates of current local analysis domain INTEGER, INTENT(in) :: locweight ! Type of localization function [scalar or vector, see below] REAL, INTENT(in) :: cradius ! Localization cut-off radius [scalar or vector, see below] REAL, INTENT(in) :: sradius ! Support radius of localization function [scalar or vector, see below] INTEGER, INTENT(inout) :: dim_obs_l ! Local dimension of current observation vector }}} '''Notes:''' * The output value `dim_obs_l` of the routine is the number of local observations for the local analysis domain for which the routine is called. * The coordinate vector `coords_l` has be set consistently with the observation coordinates specified in `init_dim_obs_OBSTYPE`. * a convenient place to initialize `coords_l` is in `init_dim_l`. The templates and tutorial codes show this approach. (see the [wiki:ImplementAnalysisLocal page on implementing the local analysis step]) * `locweight`, `cradius` and `sradius` can be set to the same values for all local analysis domains. However, the interface allows the user to specify different localization radii and weight functions for each single local analysis domain depending on the index `domain_p` or the coordinates `coords_l`. == Settings for non-isotropic localization == Introduced with PDAF V2.2 a non-isotropic localization is possible for this use vectors for `cradius` and `lradius`. This in the interface of `PDAFomi_init_dim_obs_l` one can use {{{ REAL, INTENT(in) :: cradius(:) ! Localization radius REAL, INTENT(in) :: sradius(:) ! Support radius of localization function }}} Here, the size `cradius` and `sradius` has to be equal to `thisobs%ncoords`. == Setting different weight functs for horizontal and vertical directions == In case of the non-isotropic localization and can specify different weight functions for the vertical and horizontal directions. This should be particularly useful when using the 2D+1D factorized localization (see exaplanation of [wiki:OMI_observation_modules#thisobsdisttype possible choices of thisobs%disttype >]). The interface accepting separate weight functions is {{{ INTEGER, INTENT(in) :: locweight(2) ! Type of localization function [scalar or vector, see below] REAL, INTENT(in) :: cradius(:) ! Localization radius REAL, INTENT(in) :: sradius(:) ! Support radius of localization function }}} Now, `locweight(1)` specifies the localization function in the horizontal direction, while `locweight(2)` specifies the localization function in the vertical direction (see the [wiki:OMI_observation_modules#init_dim_obs_l_OBSTYPE the table of choices of localization functions]).