Skip to content

Commit 3e9061a

Browse files
committed
doc: refactor command line input
1 parent c7673ab commit 3e9061a

File tree

1 file changed

+150
-89
lines changed

1 file changed

+150
-89
lines changed

doc/content/setup_tsmp/input_cmd.md

Lines changed: 150 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -105,19 +105,66 @@ the ensemble mean of the state vector.
105105
For ETKF, see
106106
e.g. <https://github.com/PDAF/PDAF/blob/ae9545227bd4804469dff389a9baadcc9e31906e/src/PDAF_etkf_analysis.F90#L441-L444>
107107

108+
## locweight ##
108109

110+
Only for localization.
109111

110-
## Command Line Examples ##
112+
Usage depends on interface routines.
111113

112-
### Command Line Example: EnKF ###
114+
`locweight` (integer): set weight function for localization,
115+
- default=0
116+
- for constant weight of 1
117+
- possible are integer values 0 to 4.(see `init_pdaf`)
113118

114-
`subtype` (integer) Parameter subtype for Ensemble Kalman Filter (EnKF).
119+
``` text
120+
locweight == 0 ! Uniform (unit) weighting
121+
locweight == 1 ! Exponential weighting
122+
locweight == 2 ! 5th-order polynomial (Gaspari&Cohn, 1999)
123+
```
124+
## cradius ##
115125

116-
- Full ensemble integration; analysis for $2\cdot \mathtt{dim\_obs} > \mathtt{dim\_ens}$
126+
Only for localization.
117127

118-
- Full ensemble integration; analysis for $2\cdot \mathtt{dim\_obs} \leq \mathtt{dim\_ens}$
128+
Usage depends on interface routines.
119129

120-
- Offline mode
130+
`cradius` (old name: `local_range`) (real) set cut-off radius
131+
- 0.0 by default
132+
- any positive value should work.
133+
134+
## sradius ##
135+
136+
Only for localization.
137+
138+
Usage depends on interface routines.
139+
140+
`sradius` (old name `srange`) (real): the support radius of the
141+
localization, default: equal to `cradius`.
142+
143+
`sradius` has different meanings depending on the value of
144+
`locweight`.
145+
146+
- `locweight == 0`: `sradius` is not used
147+
- `locweight == 1`: `sradius` is distance with weight `1/e`, for
148+
avoiding sharp cut-off, `cradius` should be significantly larger
149+
than `sradius`
150+
- `locweight == 2`: `sradius` is the support radius for 5th-order
151+
polynomial, can safely be chosen the same as `cradius`,
152+
parametrization change of the 5th-order polynomial is at `sradius/2`,
153+
see
154+
<https://github.com/PDAF/PDAF/blob/ed631034956dece8e91e8b588c4cf3aaa7916f49/src/PDAF_local_weight.F90#L147-L176>.
155+
156+
More detail in PDAF documentation:
157+
<https://pdaf.awi.de/trac/wiki/PDAF_local_weight>
158+
159+
160+
## Command Line Examples ##
161+
162+
### Command Line Example: EnKF ###
163+
164+
Main option: `-filtertype 2`
165+
166+
Additional options:
167+
- `-subtype`
121168

122169
Example of the model execution using EnKF analysis:
123170

@@ -128,20 +175,27 @@ With this command, the TSMP-PDAF executable `tsmp-pdaf` will be run with
128175
will be performed every assimilation cycle with an observation error of
129176
0.1 and observations read from the files `myobs.xxxxx`.
130177

131-
### Command Line Example: ETKF ###
178+
#### EnKF: subtype ####
132179

133-
`subtype` (integer) Parameter subtype for Ensemble Transform Kalman
134-
Filter (ETKF).
180+
`subtype` (integer) Parameter subtype for Ensemble Kalman Filter (EnKF).
181+
182+
``` fortran
183+
IF (subtype == 0) THEN
184+
WRITE (*, '(a, 14x, a)') 'PDAF', '--> EnKF with analysis for large observation dimension'
185+
ELSE IF (subtype == 1) THEN
186+
WRITE (*, '(a, 14x, a)') 'PDAF', '--> EnKF with analysis for small observation dimension'
187+
ELSE IF (subtype == 5) THEN
188+
WRITE (*, '(a, 14x, a)') 'PDAF', '--> offline mode'
135189
136-
- full ensemble integration; apply T-matrix analogously to SEIK
190+
```
137191

138-
- full ensemble integration; formulation without T matrix
139192

140-
- Fixed error space basis; analysis with T-matrix
193+
### Command Line Example: ETKF ###
141194

142-
- Fixed state covariance matrix; analysis with T-matrix
195+
Main option: `-filtertype 4`
143196

144-
- Offline mode; analysis with T-matrix
197+
Additional options:
198+
- `-subtype`
145199

146200
Example of the model execution using EtKF analysis:
147201

@@ -152,18 +206,31 @@ With this command, the TSMP-PDAF executable `tsmp-pdaf` will be run with
152206
will be performed every assimilation cycle with an observation error of
153207
0.1 and observations read from the files `myobs.xxxxx`.
154208

155-
### Command Line Example: ESTKF ###
209+
#### ETKF: subtype ####
156210

157-
`subtype` (integer) Parameter subtype for Error Subspace Transform Kalman Filter
158-
(ESTKF).
211+
`subtype` (integer) Parameter subtype for Ensemble Transform Kalman
212+
Filter (ETKF).
159213

160-
- Standard implementation with ensemble integration
214+
``` fortran
215+
IF (subtype == 0) THEN
216+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> ETKF using T-matrix'
217+
ELSE IF (subtype == 1) THEN
218+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> ETKF following Hunt et al. (2007)'
219+
ELSE IF (subtype == 2) THEN
220+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> ETKF with fixed error-space basis'
221+
ELSE IF (subtype == 3) THEN
222+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> ETKF with fixed state covariance matrix'
223+
ELSE IF (subtype == 5) THEN
224+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> offline mode'
161225
162-
- Fixed error space basis
226+
```
227+
228+
### Command Line Example: ESTKF ###
163229

164-
- Fixed state covariance matrix
230+
Main option: `-filtertype 6`
165231

166-
- Offline mode
232+
Additional options:
233+
- `-subtype`
167234

168235
Example of the model execution using EstKF analysis:
169236

@@ -174,24 +241,32 @@ With this command, the TSMP-PDAF executable `tsmp-pdaf` will be run with
174241
will be performed every assimilation cycle with an observation error of
175242
0.1 and observations read from the files `myobs.xxxxx`.
176243

177-
### Command Line Example: LETKF ###
178-
179-
`cradius` (deprecated: `local_range`) (real) set cut-off radius, 0.0
180-
by default, any positive value should work.
244+
#### ESTKF: subtype ####
181245

182-
`locweight` (integer) set weight function for localization, default=0
183-
for constant weight of 1; possible are integer values 0 to 4.
246+
`subtype` (integer) Parameter subtype for Error Subspace Transform Kalman Filter
247+
(ESTKF).
184248

185-
`subtype` (integer) Parameter subtype for Local Ensemble Transform
186-
Kalman Filter (Letkf).
249+
``` fortran
250+
IF (subtype == 0) THEN
251+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> Standard ESTKF'
252+
ELSE IF (subtype == 2) THEN
253+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> ESTKF with fixed error-space basis'
254+
ELSE IF (subtype == 3) THEN
255+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> ESTKF with fixed state covariance matrix'
256+
ELSE IF (subtype == 5) THEN
257+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> offline mode'
187258
188-
- full ensemble integration; apply T-matrix analogously to SEIK
259+
```
189260

190-
- Fixed error space basis; analysis with T-matrix
261+
### Command Line Example: LETKF ###
191262

192-
- Fixed state covariance matrix; analysis with T-matrix
263+
Main option: `-filtertype 5`
193264

194-
- Offline mode; analysis with T-matrix.
265+
Additional options:
266+
- `-subtype`
267+
- `-locweight`
268+
- `-cradius`
269+
- `-sradius`
195270

196271
Example of the model execution using Letkf analysis:
197272

@@ -202,26 +277,35 @@ With this command, the TSMP-PDAF executable `tsmp-pdaf` will be run with
202277
will be performed every assimilation cycle with an observation error of
203278
0.1 and observations read from the files `myobs.xxxxx`.
204279

205-
### Command Line Example: LESTKF ###
206-
207-
`cradius` (deprecated: `local_range`) (real) set cut-off radius, 0.0 by default, any
208-
positive value should work.
280+
#### LETKF subtype
209281

210-
`locweight` (integer) set weight function for localization, default=0
211-
for constant weight of 1; possible are integer values 0 to 4.
212-
213-
`subtype` (integer) Parameter subtype for Local Error Subspace Transform Kalman
214-
Filter (LESTKF).
215-
216-
- Standard implementation with ensemble integration
282+
`subtype` (integer) Parameter subtype for Local Ensemble Transform
283+
Kalman Filter (LETKF).
284+
285+
```f90
286+
IF (subtype == 0) THEN
287+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> LETKF using T-matrix'
288+
ELSE IF (subtype == 1) THEN
289+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> LETKF following Hunt et al. (2007)'
290+
ELSE IF (subtype == 2) THEN
291+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> LETKF with fixed error-space basis'
292+
ELSE IF (subtype == 3) THEN
293+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> LETKF with fixed state covariance matrix'
294+
ELSE IF (subtype == 5) THEN
295+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> offline mode'
296+
```
217297

218-
- Fixed error space basis
298+
### Command Line Example: LESTKF ###
219299

220-
- Fixed state covariance matrix
300+
Main option: `-filtertype 7`
221301

222-
- Offline mode
302+
Additional options:
303+
- `-subtype`
304+
- `-locweight`
305+
- `-cradius`
306+
- `-sradius`
223307

224-
Example of the model execution using Lestkf analysis:
308+
Example of the model execution using LESTKF analysis:
225309

226310
mpiexec -np 512 ./tsmp-pdaf -n_modeltasks 64 -filtertype 7 -cradius 3 -locweight 0 -subtype 0 -delt_obs 1 -rms_obs 0.1 -obs_filename myobs
227311

@@ -230,6 +314,23 @@ With this command, the TSMP-PDAF executable `tsmp-pdaf` will be run with
230314
will be performed every assimilation cycle with an observation error of
231315
0.1 and observations read from the files `myobs.xxxxx`.
232316

317+
#### LESTKF: subtype ####
318+
319+
`subtype` (integer) Parameter subtype for Local Error Subspace Transform Kalman
320+
Filter (LESTKF).
321+
322+
323+
``` fortran
324+
IF (subtype == 0) THEN
325+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> Standard LESTKF'
326+
ELSE IF (subtype == 2) THEN
327+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> LESTKF with fixed error-space basis'
328+
ELSE IF (subtype == 3) THEN
329+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> LESTKF with fixed state covariance matrix'
330+
ELSE IF (subtype == 5) THEN
331+
WRITE (*, '(a, 12x, a)') 'PDAF', '--> offline mode'
332+
```
333+
233334
### Command Line Example: LENKF ###
234335

235336
Main option: `-filtertype 8`
@@ -252,49 +353,9 @@ analysis will be performed every assimilation cycle with an
252353
observation error of 0.1 and observations read from the files
253354
`myobs.xxxxx`.
254355

255-
#### subtype
356+
#### LENKF: subtype ####
256357

257358
`subtype` (integer) Parameter subtype for Localized Ensemble Kalman
258359
Filter (Lenkf).
259360
- Full ensemble integration; analysis with covariance localization
260361
- Offline mode
261-
262-
#### locweight
263-
264-
`locweight` (integer): set weight function for localization,
265-
- default=0
266-
- for constant weight of 1
267-
- possible are integer values 0 to 4.(see `init_pdaf`)
268-
269-
``` text
270-
locweight == 0 ! Uniform (unit) weighting
271-
locweight == 1 ! Exponential weighting
272-
locweight == 2 ! 5th-order polynomial (Gaspari&Cohn, 1999)
273-
```
274-
#### cradius
275-
276-
`cradius` (old name: `local_range`) (real) set cut-off radius
277-
- 0.0 by default
278-
- any positive value should work.
279-
280-
#### sradius
281-
282-
`sradius` (old name `srange`) (real): the support radius of the
283-
localization, default: equal to `cradius`.
284-
285-
`sradius` has different meanings depending on the value of
286-
`locweight`.
287-
288-
- `locweight == 0`: `sradius` is not used
289-
- `locweight == 1`: `sradius` is distance with weight `1/e`, for
290-
avoiding sharp cut-off, `cradius` should be significantly larger
291-
than `sradius`
292-
- `locweight == 2`: `sradius` is the support radius for 5th-order
293-
polynomial, can safely be chosen the same as `cradius`,
294-
parametrization change of the 5th-order polynomial is at `sradius/2`,
295-
see
296-
<https://github.com/PDAF/PDAF/blob/ed631034956dece8e91e8b588c4cf3aaa7916f49/src/PDAF_local_weight.F90#L147-L176>.
297-
298-
More detail in PDAF documentation:
299-
<https://pdaf.awi.de/trac/wiki/PDAF_local_weight>
300-

0 commit comments

Comments
 (0)