@@ -102,30 +102,71 @@ For flexible time stepping, `delt_obs` must be one.
102102- 2: 1 plus timing output
103103- 3: 2 plus debug output
104104
105+ ## type_forget ##
106+
107+ ` type_forget ` (integer) Type of forgetting factor. Default: ` 0 ` .
108+
109+ For SEIK / LSEIK / ETKF / LETKF / ESTKF / LESTKF:
110+ - ` 0 ` : fixed forgetting factor (value given by ` forget ` )
111+ - ` 1 ` : global adaptive forgetting factor (computed from ensemble
112+ spread and observation error variance; ` forget ` acts as lower bound)
113+ - ` 2 ` : local adaptive forgetting factor, for LSEIK / LETKF / LESTKF
114+ only (same adaptive logic applied per local analysis domain; ` forget `
115+ acts as lower bound)
116+
117+ For NETF / LNETF / PF:
118+ - ` 0 ` : apply inflation on forecast ensemble
119+ - ` 2 ` : apply inflation on analysis ensemble
120+
105121## forget ##
106122
107- ` forget ` (real) forgetting factor for filter analysis
123+ ` forget ` (real) forgetting factor for filter analysis. Default: ` 1.0 ` .
108124
109- Example: ` -forget 0.98 ` .
125+ ** Fixed mode (` type_forget = 0 ` ):** ` forget ` is applied directly as the
126+ forgetting factor. Example: ` -forget 0.98 ` .
110127
111- General advise: Choose forgetting factor close to one. For values
112- smaller than 0.95, effects like a splitting of the ensemble have been
113- observed (compare Amezcua et al., Tellus A 2012, 64, 18039,
128+ General advice: choose ` forget ` close to one. For values smaller than
129+ 0.95, effects like a splitting of the ensemble have been observed
130+ (compare Amezcua et al., Tellus A 2012, 64, 18039,
114131< http://dx.doi.org/10.3402/tellusa.v64i0.18039 > )
115132
116133For EnKF / LEnKF, the forgetting factor leads to a spreading of the
117- ensemble through manipulating ensemble member by
134+ ensemble through manipulating each ensemble member by
118135
119- \begin{align * }
120- x^{f}_ {i} & = \bar{x} + (x_ {i}-\bar{x}) \cdot \frac{1}{\mathtt{forget}^2},
121- \end{align * }
136+ $$
137+ x^{f}_{i} = \bar{x} + (x_{i}-\bar{x}) \cdot \frac{1}{\mathtt{forget}^2},
138+ $$
122139
123140where $x_ {i}$ is the state vector ensemble member $i$ and $\bar{x}$ is
124141the ensemble mean of the state vector.
125142
126143For ETKF, see
127144e.g. < https://github.com/PDAF/PDAF/blob/ae9545227bd4804469dff389a9baadcc9e31906e/src/PDAF_etkf_analysis.F90#L441-L444 >
128145
146+ ** Adaptive mode (` type_forget = 1 ` or ` 2 ` ):** ` forget ` is used as a
147+ lower bound on the computed forgetting factor. The adaptive algorithm
148+ inflates the ensemble only when its spread in observation space falls
149+ below the observation error standard deviation.
150+
151+ Concretely, the forgetting factor is computed as
152+
153+ $$
154+ \mathtt{forget_adaptive} = \begin{cases}
155+ \mathtt{forget} & \text{if } \sigma^2_{\mathrm{ens}} < \mathtt{forget} \cdot \sigma^2_{\mathrm{obs}}, \\[5pt]
156+ \sigma^2_{\mathrm{ens}} / \sigma^2_{\mathrm{obs}} & \text{if } \mathtt{forget} \cdot \sigma^2_{\mathrm{obs}} \leq \sigma^2_{\mathrm{ens}} \leq \sigma^2_{\mathrm{obs}}, \\[5pt]
157+ 1 & \text{otherwise.}
158+ \end{cases}
159+ $$
160+
161+ Note that the result is clipped to $[ {\mathtt{forget}},\, 1] $, so
162+ ` forget ` provides a lower bound (maximum inflation).
163+
164+ The resulting ` forget ` factor is then used in the same way as the
165+ global one.
166+
167+ A typical choice is ` -forget 0.95 ` to allow moderate inflation while
168+ preventing excessive spread.
169+
129170## locweight ##
130171
131172Only for localization.
0 commit comments