Version 5 (modified by 4 weeks ago) (diff) | ,
---|
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 modulecradius_l
andsradius_l
are usually the same for all local observations of a single type if the localization is isotropic.- For non-isotropic localization
cradius_l
andsradius_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 routinePDAFomi_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.