This page documents the routine PDAF_local_weights of PDAF.

The routine is used for localization in the analysis step of a filter and computes weights according to the specified distances and the settings for the localizing function. The routine can be called in prodRinvA_l_pdaf in the domain-localized filters. Also, the routine can be used for the LEnKF in the routine [localize_covar_pdaf localize_covar_pdaf].

This routine is usually only used in user-codes that do not use PDAF-OMI.

The interface is the following:

  SUBROUTINE PDAF_local_weights(wtype, cradius, sradius, distance, &
     weights, verbose)

with the following arguments:

  • wtype : integer, intent(in)
    Type of weight function:
    (0) unit weight (=1 up to radius cradius)
    (1) exponential decrease (1/e at distance=sradius; 0 for distance>cradius)
    (2) 5th order polynomial with support radius sradius (Gaspari&Cohn 1999; 0 for distance>sradius)
  • cradius : real, intent(in)
    Cut-off radius (weight is always =0 for distance>cradius)
  • sradius : real, intent(in)
    Support radius of weight function
  • dim : integer, intent(in)
    Size of arrays distance and `weights'
  • distance : real, intent(in)
    Distance to observation
  • weights : real, intent(out)
    computed localization weight
  • verbose : integer, intent(in)
    Verbosity flag


  • PDAF_local_weights does not support the regulated localization method (Nerger et al. ,Quarterly Journal of the Royal Meteorological Society, 138 (2012) 802-812; see Publications). To use the regulated localization one has to use the alternative routine PDAF_local_weight.

There are currently only examples of using PDAF_local_weight, but not PDAF_local_weights. The examples for using PDAF_local_weight can be found in the files prodrinva_l_pdaf.F90 in the tutorial cases for the 'classical' (non-OMI) implentations in tutorial/classical and in the templates in templates/classical/.

Last modified 14 months ago Last modified on Feb 22, 2023, 1:28:00 PM