# PDAF_local_weights

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 filters LESTKF, LETKF, and LSEIK. Also, the routine can be used for the LEnKF in the routine [localize_l_pdaf localize_l_pdaf].

The interface is the following:

SUBROUTINE PDAF_local_weights(wtype, local_range, srange, distance, & weights, verbose)

with the following arguments:

`wtype`

:`integer, intent(in)`

Type of weight function:

(0) unit weight (=1 up to radius`local_range`

)

(1) exponential decrease (1/e at distance=srange; 0 for distance>local_range)

(2) 5th order polynomial with support radius srange (Gaspari&Cohn 1999; 0 for distance>srange)`local_range`

:`real, intent(in)`

Cut-off radius (weight is always =0 for distance>local_range)`srange`

:`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

Notes:

`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 `PDAF_local_weight`

can be found in the files `prodrinva_l_pdaf.F90`

in the tutorial cases. Another example is, e.g. provided in the Lorenz-96 test case (see /testsuite/src/lorenz96/prodrinva_local.F90).