wiki:PDAFomi_store_obs_l_index

PDAFomi_store_obs_l_index

This page documents the routine PDAFomi_store_obs_l_index 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.

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(thisobs_l, idx, id_obs_l, distance, &
       cradius_l, sradius_l)

    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)

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 usually the same for all local observations of a single type if the localization is isotropic.
  • For non-isotropic localization cradius_l and sradius_l are the radii in the direction of the observation. This calculation can be complex. How this is done inside PDAF-OMI can be seen in the routine PDAFomi_check_dist2_noniso_loop in the file /src/PDAFomi_dim_obs_l.F90 of the PDAF library.
  • 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:11:44 PM