Version 3 (modified by 8 years ago) (diff) | ,
---|
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, cradius, sradius, distance, & weights, verbose)
with the following arguments:
wtype
:integer, intent(in)
Type of weight function:
(0) unit weight (=1 up to radiuscradius
)
(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 radiusdim
:integer, intent(in)
Size of arraysdistance
and `weights'distance
:real, intent(in)
Distance to observationweights
:real, intent(out)
computed localization weightverbose
: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).