wiki:PDAFomi_store_obs_l_index_vdist

PDAFomi_store_obs_l_index_vdist

This page documents the routine PDAFomi_store_obs_l_index_vdist of PDAF-OMI. This routine has been added with PDAF V2.3.

This routine is used for the case that a user implements a user-provided alternative for the routine PDAFomi_init_dim_obs_l, which initializes the local observation information for PDAF-OMI in thisobs_l for a single local analysis domain. This variant is only used for 2+1D factorized localization. For usualy localization the routine PDAFomi_store_obs_l_index is used.

The routine can to be called in init_dim_obs_l_OBSTYPE in each observation module if a domain-localized filter (LESTKF/LETKF/LNETF/LSEIK/LKNETF) is used.

See the page on user-provided initialization of local observations for the full description of a user-provided routine to intialize local observations.

The interface is:

  SUBROUTINE PDAFomi_store_obs_l_index_vdist(thisobs_l, idx, id_obs_l, distance, &
       cradius_l, sradius_l, vdist)

    TYPE(obs_l), INTENT(inout) :: thisobs_l  ! Data type with local observation
    INTEGER, INTENT(in) :: idx               ! Element of local observation array to be filled
    INTEGER, INTENT(in) :: id_obs_l          ! Index of local observation in full observation array
    REAL, INTENT(in) :: distance             ! Distance between local analysis domain and observation
    REAL, INTENT(in) :: cradius_l            ! cut-off radius for this local observation 
                                             !  (directional radius in case of non-isotropic localization)
    REAL, INTENT(in) :: sradius_l            ! support radius for this local observation
                                             !  (directional radius in case of non-isotropic localization)
    REAL, INTENT(in) :: vdist                ! support radius in vertical direction for 2+1D factorized

Notes:

  • idx is usually the counte over the valid local observation of the observation type in the observation module
  • cradius_l and sradius_l are directional radii, i.e. they are computed depending the direction between local analysis domain and observation, if a non-isotropic horizontal localization is used
  • While using this routine can be more convenient than doing the initialization of the variables in thisobs_l in the user code, in our tests the code ran faster when we did not use this routine, but did this initialization in the user code.
Last modified 11 days ago Last modified on Sep 8, 2024, 7:35:34 PM