operator_help.h 279 KB
Newer Older
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1
/* Automatically created with makedoc, don't edit! */
Uwe Schulzweida's avatar
Uwe Schulzweida committed
2

3
std::vector<std::string> InfoHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
4
    "NAME",
5
    "    info, infon, map - Information and simple statistics",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
6
7
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
8
    "    <operator>  infiles",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
9
10
    "",
    "DESCRIPTION",
11
    "    This module writes information about the structure and contents ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
12
    "    of all input files to standard output.  All input files need to have ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
13
    "    the same structure with the same variables on different timesteps.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
14
    "    The information displayed depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
15
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
16
    "OPERATORS",
17
    "    info   Dataset information listed by parameter identifier",
18
    "           Prints information and simple statistics for each field of all",
19
20
    "           input datasets. For each field the operator prints one line with ",
    "           the following elements:",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
21
    "           - Date and Time",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
22
    "           - Level, Gridsize and number of Missing values",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
23
24
    "           - Minimum, Mean and Maximum \\",
    "           The mean value is computed without the use of area weights!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
25
    "           - Parameter identifier",
26
27
28
    "    infon  Dataset information listed by parameter name",
    "           The same as operator info but using the name instead of the",
    "           identifier to label the parameter.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
29
    "    map    Dataset information and simple map",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
30
    "           Prints information, simple statistics and a map for each field of all input",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
31
    "           datasets. The map will be printed only for fields on a regular lon/lat grid.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
32
33
};

34
std::vector<std::string> SinfoHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
35
    "NAME",
36
    "    sinfo, sinfon - Short information",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
37
38
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
39
    "    <operator>  infiles",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
40
41
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
42
43
    "    This module writes information about the structure of infiles to standard output.",
    "    infiles is an arbitrary number of input files. All input files need to have ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
44
    "    the same structure with the same variables on different timesteps.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
45
    "    The information displayed depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
46
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
47
    "OPERATORS",
48
    "    sinfo   Short information listed by parameter identifier",
49
    "            Prints short information of a dataset. The information is divided into",
50
51
    "            4 sections. Section 1 prints one line per parameter with the following ",
    "            information:",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
52
    "            - institute and source",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
53
    "            - timestep type",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
54
    "            - number of levels and z-axis number",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
55
    "            - horizontal grid size and number",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
56
57
    "            - data type",
    "            - parameter identifier",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
58
59
    "            Section 2 and 3 gives a short overview of all grid and vertical coordinates.",
    "            And the last section contains short information of the time coordinate.",
60
    "    sinfon  Short information listed by parameter name",
61
62
    "            The same as operator sinfo but using the name instead of the ",
    "            identifier to label the parameter.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
63
64
};

65
std::vector<std::string> DiffHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
66
    "NAME",
67
    "    diff, diffn - Compare two datasets field by field",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
68
69
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
70
    "    <operator>  infile1 infile2",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
71
72
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
73
74
    "    Compares the contents of two datasets field by field. The input datasets need to have the",
    "    same structure and its fields need to have the same header information and dimensions.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
75
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
76
    "OPERATORS",
77
    "    diff   Compare two datasets listed by parameter id",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
78
79
    "           Provides statistics on differences between two datasets.",
    "           For each pair of fields the operator prints one line with the following information:",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
80
    "           - Date and Time",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
81
    "           - Level, Gridsize and number of Missing values",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
82
    "           - Number of different values",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
83
84
85
86
    "           - Occurrence of coefficient pairs with different signs (S)",
    "           - Occurrence of zero values (Z)",
    "           - Maxima of absolute difference of coefficient pairs",
    "           - Maxima of relative difference of non-zero coefficient pairs with equal signs",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
87
    "           - Parameter identifier",
88
89
90
    "    diffn  Compare two datasets listed by parameter name",
    "           The same as operator diff. Using the name instead of the",
    "           identifier to label the parameter.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
91
92
};

93
std::vector<std::string> NinfoHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
94
    "NAME",
95
    "    npar, nlevel, nyear, nmon, ndate, ntime, ngridpoints, ngrids - ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
96
    "    Print the number of parameters, levels or times",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
97
98
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
99
    "    <operator>  infile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
100
101
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
102
103
    "    This module prints the number of variables, levels or times of the ",
    "    input dataset.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
104
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
105
    "OPERATORS",
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
    "    npar         Number of parameters",
    "                 Prints the number of parameters (variables).",
    "    nlevel       Number of levels",
    "                 Prints the number of levels for each variable.",
    "    nyear        Number of years",
    "                 Prints the number of different years.",
    "    nmon         Number of months",
    "                 Prints the number of different combinations of years and months.",
    "    ndate        Number of dates",
    "                 Prints the number of different dates.",
    "    ntime        Number of timesteps",
    "                 Prints the number of timesteps.",
    "    ngridpoints  Number of gridpoints",
    "                 Prints the number of gridpoints for each variable.",
    "    ngrids       Number of horizontal grids",
    "                 Prints the number of horizontal grids.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
122
123
};

124
std::vector<std::string> ShowinfoHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
125
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
126
    "    showformat, showcode, showname, showstdname, showlevel, showltype, showyear, ",
127
    "    showmon, showdate, showtime, showtimestamp - Show variables, levels or times",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
128
129
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
130
    "    <operator>  infile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
131
132
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
133
    "    This module prints the format, variables, levels or times of the input dataset.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
134
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
135
    "OPERATORS",
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
    "    showformat     Show file format",
    "                   Prints the file format of the input dataset.",
    "    showcode       Show code numbers",
    "                   Prints the code number of all variables.",
    "    showname       Show variable names",
    "                   Prints the name of all variables.",
    "    showstdname    Show standard names",
    "                   Prints the standard name of all variables.",
    "    showlevel      Show levels",
    "                   Prints all levels for each variable.",
    "    showltype      Show GRIB level types",
    "                   Prints the GRIB level type for all z-axes.",
    "    showyear       Show years",
    "                   Prints all years.",
    "    showmon        Show months",
    "                   Prints all months.",
    "    showdate       Show date information",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
153
    "                   Prints date information of all timesteps (format YYYY-MM-DD).",
154
    "    showtime       Show time information",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
155
    "                   Prints time information of all timesteps (format hh:mm:ss).",
156
    "    showtimestamp  Show timestamp",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
157
    "                   Prints timestamp of all timesteps (format YYYY-MM-DDThh:mm:ss).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
158
159
};

160
std::vector<std::string> FiledesHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
161
    "NAME",
162
    "    partab, codetab, griddes, zaxisdes, vct - Dataset description",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
163
164
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
165
    "    <operator>  infile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
166
167
    "",
    "DESCRIPTION",
168
169
    "    This module provides operators to print meta information about a dataset.",
    "    The printed meta-data depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
170
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
171
    "OPERATORS",
172
173
    "    partab    Parameter table",
    "              Prints all available meta information of the variables.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
174
175
    "    codetab   Parameter code table",
    "              Prints a code table with a description of all variables.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
176
177
178
179
    "              For each variable the operator prints one line listing the",
    "              code, name, description and units.",
    "    griddes   Grid description",
    "              Prints the description of all grids.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
180
181
    "    zaxisdes  Z-axis description",
    "              Prints the description of all z-axes.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
182
183
    "    vct       Vertical coordinate table",
    "              Prints the vertical coordinate table.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
184
185
};

186
std::vector<std::string> CopyHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
187
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
188
    "    copy, cat - Copy datasets",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
189
190
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
191
    "    <operator>  infiles outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
192
193
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
194
    "    This module contains operators to copy or concatenate datasets.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
195
    "    infiles is an arbitrary number of input files. All input files need to have ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
196
    "    the same structure with the same variables on different timesteps.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
197
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
198
199
    "OPERATORS",
    "    copy  Copy datasets",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
200
    "          Copies all input datasets to outfile. ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
201
    "    cat   Concatenate datasets",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
202
    "          Concatenates all input datasets and appends the result to the end ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
203
    "          of outfile. If outfile does not exist it will be created.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
204
205
};

206
std::vector<std::string> ReplaceHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
207
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
208
    "    replace - Replace variables",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
209
210
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
211
    "    replace  infile1 infile2 outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
212
213
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
214
215
    "    The replace operator replaces variables in infile1 by variables from infile2 and write",
    "    the result to outfile. Both input datasets need to have the same number of timesteps.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
216
217
};

218
std::vector<std::string> DuplicateHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
219
220
221
222
    "NAME",
    "    duplicate - Duplicates a dataset",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
223
    "    duplicate[,ndup]  infile outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
224
225
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
226
    "    This operator duplicates the contents of infile and writes the result to outfile.",
227
    "    The optional parameter sets the number of duplicates, the default is 2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
228
229
    "",
    "PARAMETER",
230
    "    ndup  INTEGER  Number of duplicates, default is 2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
231
232
};

233
std::vector<std::string> MergegridHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
234
235
236
237
    "NAME",
    "    mergegrid - Merge grid",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
238
    "    mergegrid  infile1 infile2 outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
239
240
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
241
242
243
    "    Merges grid points of all variables from infile2 to infile1 and write the result to outfile.",
    "    Only the non missing values of infile2 will be used. The horizontal grid of infile2 should ",
    "    be smaller or equal to the grid of infile1 and the resolution must be the same.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
244
    "    Only rectilinear grids are supported. Both input files need to have the same variables ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
245
246
247
    "    and the same number of timesteps.",
};

248
std::vector<std::string> MergeHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
249
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
250
    "    merge, mergetime - Merge datasets",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
251
252
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
253
    "    <operator>  infiles outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
254
255
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
256
    "    This module reads datasets from several input files, merges them and writes the resulting dataset to outfile.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
257
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
258
259
    "OPERATORS",
    "    merge      Merge datasets with different fields",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
260
    "               Merges time series of different fields from several input datasets. The number ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
261
    "               of fields per timestep written to outfile is the sum of the field numbers ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
262
263
    "               per timestep in all input datasets. The time series on all input datasets are ",
    "               required to have different fields and the same number of timesteps.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
264
265
266
    "               The fields in each different input file either have to be different variables",
    "               or different levels of the same variable. A mixture of different variables on",
    "               different levels in different input files is not allowed.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
267
    "    mergetime  Merge datasets sorted by date and time",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
268
    "               Merges all timesteps of all input files sorted by date and time.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
269
    "               All input files need to have the same structure with the same variables on ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
270
    "               different timesteps. After this operation every input timestep is in outfile ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
271
    "               and all timesteps are sorted by date and time.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
272
273
274
    "",
    "ENVIRONMENT",
    "    SKIP_SAME_TIME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
275
    "        If set to 1, skips all consecutive timesteps with a double entry of the same timestamp.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
276
277
278
279
    "",
    "NOTE",
    "    The operators in this module need to open all input files simultaneously.",
    "    The maximum number of open files depends on the operating system!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
280
281
};

282
std::vector<std::string> SplitHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
283
    "NAME",
284
285
    "    splitcode, splitparam, splitname, splitlevel, splitgrid, splitzaxis, ",
    "    splittabnum - Split a dataset",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
286
287
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
288
    "    <operator>[,params]  infile obase",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
289
290
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
291
    "    This module splits infile into pieces. The output files will be named <obase><xxx><suffix>",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
292
293
    "    where suffix is the filename extension derived from the file format. xxx and the contents ",
    "    of the output files depends on the chosen operator. ",
294
    "    params is a comma separated list of processing parameters.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
295
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
296
    "OPERATORS",
297
298
    "    splitcode    Split code numbers",
    "                 Splits a dataset into pieces, one for each different code number.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
299
    "                 xxx will have three digits with the code number.",
300
301
302
    "    splitparam   Split parameter identifiers",
    "                 Splits a dataset into pieces, one for each different parameter identifier.",
    "                 xxx will be a string with the parameter identifier.",
303
304
    "    splitname    Split variable names",
    "                 Splits a dataset into pieces, one for each variable name.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
305
    "                 xxx will be a string with the variable name.",
306
307
    "    splitlevel   Split levels",
    "                 Splits a dataset into pieces, one for each different level.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
308
    "                 xxx will have six digits with the level.",
309
310
    "    splitgrid    Split grids",
    "                 Splits a dataset into pieces, one for each different grid.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
311
    "                 xxx will have two digits with the grid number.",
312
313
    "    splitzaxis   Split z-axes",
    "                 Splits a dataset into pieces, one for each different z-axis.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
314
    "                 xxx will have two digits with the z-axis number.",
315
316
    "    splittabnum  Split parameter table numbers",
    "                 Splits a dataset into pieces, one for each GRIB1 parameter table number.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
317
318
    "                 xxx will have three digits with the GRIB1 parameter table number.",
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
319
    "PARAMETER",
320
321
    "    swap            STRING  Swap the position of obase and xxx in the output filename",
    "    uuid=<attname>  STRING  Add a UUID as global attribute <attname> to each output file",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
322
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
323
324
    "ENVIRONMENT",
    "    CDO_FILE_SUFFIX",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
325
326
    "        Set the default file suffix. This suffix will be added to the output file ",
    "        names instead of the filename extension derived from the file format. ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
327
    "        Set this variable to NULL to disable the adding of a file suffix.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
328
329
330
331
    "",
    "NOTE",
    "    The operators in this module need to open all output files simultaneously.",
    "    The maximum number of open files depends on the operating system!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
332
333
};

334
std::vector<std::string> SplittimeHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
335
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
336
    "    splithour, splitday, splitseas, splityear, splityearmon, splitmon - ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
337
    "    Split timesteps of a dataset",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
338
339
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
340
341
    "    <operator>  infile obase",
    "    splitmon[,format]  infile obase",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
342
343
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
344
    "    This module splits infile into  timesteps pieces. The output files will be named",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
345
346
    "    <obase><xxx><suffix> where suffix is the filename extension derived from the file format. ",
    "    xxx and the contents of the output files depends on the chosen operator. ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
347
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
348
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
    "    splithour     Split hours",
    "                  Splits a file into pieces, one for each different hour.",
    "                  xxx will have two digits with the hour.",
    "    splitday      Split days",
    "                  Splits a file into pieces, one for each different day.",
    "                  xxx will have two digits with the day.",
    "    splitseas     Split seasons",
    "                  Splits a file into pieces, one for each different season.",
    "                  xxx will have three characters with the season.",
    "    splityear     Split years",
    "                  Splits a file into pieces, one for each different year.",
    "                  xxx will have four digits with the year (YYYY).",
    "    splityearmon  Split in years and months",
    "                  Splits a file into pieces, one for each different year and month.",
    "                  xxx will have six digits with the year and month (YYYYMM).",
    "    splitmon      Split months",
    "                  Splits a file into pieces, one for each different month.",
    "                  xxx will have two digits with the month.",
367
368
369
    "",
    "PARAMETER",
    "    format  STRING  C-style format for strftime() (e.g. %B for the full month name)",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
370
371
372
    "",
    "ENVIRONMENT",
    "    CDO_FILE_SUFFIX",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
373
374
    "        Set the default file suffix. This suffix will be added to the output file ",
    "        names instead of the filename extension derived from the file format. ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
375
    "        Set this variable to NULL to disable the adding of a file suffix.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
376
377
378
379
    "",
    "NOTE",
    "    The operators in this module need to open all output files simultaneously.",
    "    The maximum number of open files depends on the operating system!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
380
381
};

382
std::vector<std::string> SplitselHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
383
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
384
    "    splitsel - Split selected timesteps",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
385
386
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
387
    "    splitsel,nsets[,noffset[,nskip]]  infile obase",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
388
389
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
390
    "    This operator splits infile into pieces, one for each adjacent",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
391
    "    sequence t_1, ...., t_n of timesteps of the same selected time range.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
392
393
    "    The output files will be named <obase><nnnnnn><suffix> where nnnnnn is the ",
    "    sequence number and suffix is the filename extension derived from the file format.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
394
395
    "",
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
396
397
398
    "    nsets    INTEGER  Number of input timesteps for each output file",
    "    noffset  INTEGER  Number of input timesteps skipped before the first timestep range (optional)",
    "    nskip    INTEGER  Number of input timesteps skipped between timestep ranges (optional)",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
399
400
401
    "",
    "ENVIRONMENT",
    "    CDO_FILE_SUFFIX",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
402
403
    "        Set the default file suffix. This suffix will be added to the output file ",
    "        names instead of the filename extension derived from the file format. ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
404
    "        Set this variable to NULL to disable the adding of a file suffix.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
405
406
};

407
std::vector<std::string> DistgridHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
408
409
410
411
    "NAME",
    "    distgrid - Distribute horizontal grid",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
412
    "    distgrid,nx[,ny]  infile obase",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
413
414
    "",
    "DESCRIPTION",
415
416
417
    "    This operator distributes a dataset into smaller pieces. Each output file contains a different region of the",
    "    horizontal source grid. A target grid region contains a structured longitude/latitude box of the source grid.",
    "    Only rectilinear and curvilinear source grids are supported by this operator.",
418
419
420
    "    The number of different regions can be specified with the parameter nx and ny. The output files will be named ",
    "    <obase><xxx><suffix> where suffix is the filename extension derived from the file format. xxx will have five digits with ",
    "    the number of the target region.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
421
422
423
424
425
426
427
    "",
    "PARAMETER",
    "    nx  INTEGER  Number of regions in x direction",
    "    ny  INTEGER  Number of regions in y direction [default: 1]",
    "",
    "NOTE",
    "    This operator needs to open all output files simultaneously.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
428
    "    The maximum number of open files depends on the operating system!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
429
430
};

431
std::vector<std::string> CollgridHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
432
433
434
435
    "NAME",
    "    collgrid - Collect horizontal grid",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
436
    "    collgrid[,nx[,names]]  infiles outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
437
438
439
440
    "",
    "DESCRIPTION",
    "    This operator collects the data of the input files to one output file. ",
    "    All input files need to have the same variables and the same number of timesteps on a different",
441
    "    horizonal grid region. A source region must be a structured longitude/latitude grid box.",
442
    "    The parameter nx needs to be specified only for non regular lon/lat grids.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
443
444
    "",
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
445
    "    nx     INTEGER  Number of regions in x direction [default: number of input files]",
446
    "    names  STRING   Comma separated list of variable names [default: all variables]",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
447
448
449
    "",
    "NOTE",
    "    This operator needs to open all input files simultaneously.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
450
    "    The maximum number of open files depends on the operating system!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
451
452
};

453
std::vector<std::string> SelectHelp = {
454
455
456
457
    "NAME",
    "    select, delete - Select fields",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
458
    "    <operator>,params  infiles outfile",
459
460
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
461
462
    "    This module selects some fields from infiles and writes them to outfile.",
    "    infiles is an arbitrary number of input files. All input files need to have ",
463
464
    "    the same structure with the same variables on different timesteps.",
    "    The fields selected depends on the chosen parameters. Parameter is a comma",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
465
    "    separated list of \"key=value\" pairs. Wildcards can be used for string parameter.",
466
467
468
469
470
471
472
473
    "",
    "OPERATORS",
    "    select  Select fields",
    "            Selects all fields with parameters in a user given list.",
    "    delete  Delete fields",
    "            Deletes all fields with parameters in a user given list.",
    "",
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
474
475
476
477
    "    name              STRING  Comma separated list of variable names.",
    "    param             STRING  Comma separated list of parameter identifiers.",
    "    code              INTEGER Comma separated list of code numbers.",
    "    level             FLOAT   Comma separated list of vertical levels.",
478
    "    levidx            INTEGER Comma separated list of index of levels.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
479
    "    zaxisname         STRING  Comma separated list of zaxis names.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
480
    "    zaxisnum          INTEGER Comma separated list of zaxis numbers.",
481
    "    ltype             INTEGER Comma separated list of GRIB level types.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
482
    "    gridname          STRING  Comma separated list of grid names.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
483
    "    gridnum           INTEGER Comma separated list of grid numbers.",
484
    "    steptype          STRING  Comma separated list of timestep types.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
485
    "    date              STRING  Comma separated list of dates (format YYYY-MM-DDThh:mm:ss).",
486
487
    "    startdate         STRING  Start date (format YYYY-MM-DDThh:mm:ss).",
    "    enddate           STRING  End date (format YYYY-MM-DDThh:mm:ss).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
488
489
490
491
    "    minute            INTEGER Comma separated list of minutes.",
    "    hour              INTEGER Comma separated list of hours.",
    "    day               INTEGER Comma separated list of days.",
    "    month             INTEGER Comma separated list of months.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
492
    "    season            STRING  Comma separated list of seasons (substring of DJFMAMJJASOND or ANN).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
493
    "    year              INTEGER Comma separated list of years.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
494
    "    timestep          INTEGER Comma separated list of timesteps. Negative values selects timesteps from the end (NetCDF only).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
495
    "    timestep_of_year  INTEGER Comma separated list of timesteps of year.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
496
    "    timestepmask      STRING  Read timesteps from a mask file.",
497
498
};

499
std::vector<std::string> SelmultiHelp = {
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
    "NAME",
    "    selmulti, delmulti, changemulti - Select multiple fields via GRIB1 parameters",
    "",
    "SYNOPSIS",
    "    <operator>,selection-specification  infile outfile",
    "",
    "DESCRIPTION",
    "    This module selects multiple fields from infile and writes them to outfile.",
    "    selection-specification is a filename or in-place string with the selection specification.",
    "    Each selection-specification has the following compact notation format: ",
    "    ",
    "       <type>(parameters; leveltype(s); levels)",
    "    ",
    "    type      "    "    sel for select or del for delete (optional)",
    "    parameters"    "    GRIB1 parameter code number",
    "    leveltype "    "    GRIB1 level type",
    "    levels    "    "    value of each level",
    "    ",
    "    Examples:",
    "    ",
    "       (1; 103; 0) ",
    "       (33,34; 105; 10) ",
    "       (11,17; 105; 2) ",
    "       (71,73,74,75,61,62,65,117,67,122,121,11,131,66,84,111,112; 105; 0) ",
    "    ",
    "    The following descriptive notation can also be used for selection specification from a file:",
    "    ",
    "       SELECT/DELETE, PARAMETER=parameters, LEVTYPE=leveltye(s), LEVEL=levels",
    "    ",
    "    Examples:",
    "    ",
    "       SELECT, PARAMETER=1, LEVTYPE=103, LEVEL=0 ",
    "       SELECT, PARAMETER=33/34, LEVTYPE=105, LEVEL=10 ",
    "       SELECT, PARAMETER=11/17, LEVTYPE=105, LEVEL=2 ",
    "       SELECT, PARAMETER=71/73/74/75/61/62/65/117/67/122, LEVTYPE=105, LEVEL=0 ",
    "       DELETE, PARAMETER=128, LEVTYPE=109, LEVEL=* ",
    "    ",
    "    The following will convert Pressure from Pa into hPa; Temp from Kelvin to Celsius: ",
    "       SELECT, PARAMETER=1, LEVTYPE= 103, LEVEL=0, SCALE=0.01 ",
    "       SELECT, PARAMETER=11, LEVTYPE=105, LEVEL=2, OFFSET=273.15 ",
    "    If SCALE and/or OFFSET are defined, then the data values are scaled as SCALE*(VALUE-OFFSET).",
    "",
    "OPERATORS",
    "    selmulti     Select multiple fields",
    "    delmulti     Delete multiple fields",
    "    changemulti  Change identication of multiple fields",
};

548
std::vector<std::string> SelvarHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
549
    "NAME",
550
    "    selparam, delparam, selcode, delcode, selname, delname, selstdname, sellevel, ",
551
    "    sellevidx, selgrid, selzaxis, selzaxisname, selltype, seltabnum - Select fields",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
552
553
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
554
555
556
557
558
559
560
561
562
563
564
565
566
    "    <operator>,params  infile outfile",
    "    selcode,codes  infile outfile",
    "    delcode,codes  infile outfile",
    "    selname,names  infile outfile",
    "    delname,names  infile outfile",
    "    selstdname,stdnames  infile outfile",
    "    sellevel,levels  infile outfile",
    "    sellevidx,levidx  infile outfile",
    "    selgrid,grids  infile outfile",
    "    selzaxis,zaxes  infile outfile",
    "    selzaxisname,zaxisnames  infile outfile",
    "    selltype,ltypes  infile outfile",
    "    seltabnum,tabnums  infile outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
567
568
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
569
    "    This module selects some fields from infile and writes them to outfile.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
570
    "    The fields selected depends on the chosen operator and the parameters.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
571
572
    "",
    "OPERATORS",
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
    "    selparam      Select parameters by identifier",
    "                  Selects all fields with parameter identifiers in a user given list.",
    "    delparam      Delete parameters by identifier",
    "                  Deletes all fields with parameter identifiers in a user given list.",
    "    selcode       Select parameters by code number",
    "                  Selects all fields with code numbers in a user given list.",
    "    delcode       Delete parameters by code number",
    "                  Deletes all fields with code numbers in a user given list.",
    "    selname       Select parameters by name",
    "                  Selects all fields with parameter names in a user given list.",
    "    delname       Delete parameters by name",
    "                  Deletes all fields with parameter names in a user given list.",
    "    selstdname    Select parameters by standard name",
    "                  Selects all fields with standard names in a user given list.",
    "    sellevel      Select levels",
    "                  Selects all fields with levels in a user given list.",
    "    sellevidx     Select levels by index",
    "                  Selects all fields with index of levels in a user given list.",
    "    selgrid       Select grids",
    "                  Selects all fields with grids in a user given list.",
    "    selzaxis      Select z-axes",
    "                  Selects all fields with z-axes in a user given list.",
    "    selzaxisname  Select z-axes by name",
    "                  Selects all fields with z-axis names in a user given list.",
    "    selltype      Select GRIB level types",
    "                  Selects all fields with GRIB level type in a user given list.",
    "    seltabnum     Select parameter table numbers",
    "                  Selects all fields with parameter table numbers in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
601
602
    "",
    "PARAMETER",
603
604
605
606
607
608
609
610
611
612
613
    "    params      INTEGER  Comma separated list of parameter identifiers",
    "    codes       INTEGER  Comma separated list of code numbers",
    "    names       STRING   Comma separated list of variable names",
    "    stdnames    STRING   Comma separated list of standard names",
    "    levels      FLOAT    Comma separated list of vertical levels",
    "    levidx      INTEGER  Comma separated list of index of levels",
    "    ltypes      INTEGER  Comma separated list of GRIB level types",
    "    grids       STRING   Comma separated list of grid names or numbers",
    "    zaxes       STRING   Comma separated list of z-axis types or numbers",
    "    zaxisnames  STRING   Comma separated list of z-axis names",
    "    tabnums     INTEGER  Comma separated list of parameter table numbers",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
614
615
};

616
std::vector<std::string> SeltimeHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
617
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
618
    "    seltimestep, seltime, selhour, selday, selmonth, selyear, selseason, seldate, ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
619
    "    selsmon - Select timesteps",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
620
621
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
622
623
624
625
626
627
628
629
630
    "    seltimestep,timesteps  infile outfile",
    "    seltime,times  infile outfile",
    "    selhour,hours  infile outfile",
    "    selday,days  infile outfile",
    "    selmonth,months  infile outfile",
    "    selyear,years  infile outfile",
    "    selseason,seasons  infile outfile",
    "    seldate,date1[,date2]  infile outfile",
    "    selsmon,month[,nts1[,nts2]]  infile outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
631
632
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
633
    "    This module selects user specified timesteps from infile and writes them to outfile.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
634
    "    The timesteps selected depends on the chosen operator and the parameters.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
635
636
    "",
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
637
638
    "    seltimestep  Select timesteps",
    "                 Selects all timesteps with a timestep in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
639
    "    seltime      Select times",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
640
    "                 Selects all timesteps with a time in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
641
    "    selhour      Select hours",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
642
    "                 Selects all timesteps with a hour in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
643
    "    selday       Select days",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
644
    "                 Selects all timesteps with a day in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
645
    "    selmonth     Select months",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
646
    "                 Selects all timesteps with a month in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
647
    "    selyear      Select years",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
648
    "                 Selects all timesteps with a year in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
649
    "    selseason    Select seasons",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
650
    "                 Selects all timesteps with a month of a season in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
651
    "    seldate      Select dates",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
652
    "                 Selects all timesteps with a date in a user given range.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
653
    "    selsmon      Select single month",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
654
    "                 Selects a month and optional an arbitrary number of timesteps before and after this month.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
655
656
    "",
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
657
    "    timesteps  INTEGER  Comma separated list of timesteps. Negative values selects timesteps from the end (NetCDF only).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
658
659
660
661
662
    "    times      STRING   Comma separated list of times (format hh:mm:ss).",
    "    hours      INTEGER  Comma separated list of hours.",
    "    days       INTEGER  Comma separated list of days.",
    "    months     INTEGER  Comma separated list of months.",
    "    years      INTEGER  Comma separated list of years.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
663
    "    seasons    STRING   Comma separated list of seasons (substring of DJFMAMJJASOND or ANN).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
664
665
666
667
    "    date1      STRING   Start date (format YYYY-MM-DDThh:mm:ss).",
    "    date2      STRING   End date (format YYYY-MM-DDThh:mm:ss) [default: date1].",
    "    nts1       INTEGER  Number of timesteps before the selected month [default: 0].",
    "    nts2       INTEGER  Number of timesteps after the selected month [default: nts1].",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
668
669
};

670
std::vector<std::string> SelboxHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
671
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
672
    "    sellonlatbox, selindexbox - Select a box of a field",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
673
674
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
675
676
    "    sellonlatbox,lon1,lon2,lat1,lat2  infile outfile",
    "    selindexbox,idx1,idx2,idy1,idy2  infile outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
677
678
    "",
    "DESCRIPTION",
679
    "    Selects a box of the rectangularly understood field.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
680
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
681
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
682
    "    sellonlatbox  Select a longitude/latitude box",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
683
684
    "                  Selects a regular longitude/latitude box. The user has to give the longitudes and latitudes of the ",
    "                  edges of the box. Considered are only those grid cells with the grid center inside the lon/lat box.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
685
    "                  For rotated lon/lat grids the parameter needs to be rotated coordinates.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
686
    "    selindexbox   Select an index box",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
687
688
    "                  Selects an index box. The user has to give the indexes of the edges of the box. The index of the ",
    "                  left edge may be greater then that of the right edge.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
689
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
690
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
691
692
693
694
    "    lon1  FLOAT    Western longitude",
    "    lon2  FLOAT    Eastern longitude",
    "    lat1  FLOAT    Southern or northern latitude",
    "    lat2  FLOAT    Northern or southern latitude",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
695
696
697
698
    "    idx1  INTEGER  Index of first longitude (1 - nlon)",
    "    idx2  INTEGER  Index of last longitude (1 - nlon)",
    "    idy1  INTEGER  Index of first latitude (1 - nlat)",
    "    idy2  INTEGER  Index of last latitude (1 - nlat)",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
699
700
};

701
std::vector<std::string> SelgridcellHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
    "NAME",
    "    selgridcell, delgridcell - Select grid cells",
    "",
    "SYNOPSIS",
    "    <operator>,indexes  infile outfile",
    "",
    "DESCRIPTION",
    "    Selects grid cells of all fields from infile. The user has to give the indexes of each",
    "    grid cell. The resulting grid in outfile is unstructured.",
    "",
    "OPERATORS",
    "    selgridcell  Select grid cells",
    "    delgridcell  Delete grid cells",
    "",
    "PARAMETER",
    "    indexes  INTEGER  Comma separated list of indexes",
};

720
std::vector<std::string> SamplegridHelp = {
721
722
723
724
    "NAME",
    "    samplegrid - Resample grid",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
725
    "    samplegrid,factor  infile outfile",
726
727
728
    "",
    "DESCRIPTION",
    "    This is a special operator for resampling the horizontal grid.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
729
    "    No interpolation takes place. Resample factor=2 means every second grid point is removed.",
730
731
732
    "    Only rectilinear and curvilinear source grids are supported by this operator.",
    "",
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
733
    "    factor  INTEGER  Resample factor, typically 2, which will half the resolution",
734
735
};

736
std::vector<std::string> CondHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
737
738
739
740
    "NAME",
    "    ifthen, ifnotthen - Conditional select one field",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
741
    "    <operator>  infile1 infile2 outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
742
743
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
744
745
    "    This module selects field elements from infile2 with respect to infile1 and writes them ",
    "    to outfile. The fields in infile1 are handled as a mask. A value ",
746
    "    not equal to zero is treated as \"true\", zero is treated as \"false\".",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
747
748
749
    "    The number of fields in infile1 has either to be the same as in infile2 or the",
    "    same as in one timestep of infile2 or only one.",
    "    The fields in outfile inherit the meta data from infile2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
750
751
752
    "",
    "OPERATORS",
    "    ifthen     If then",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
753
    "                        / i_2(t,x) if i_1([t,]x) NE 0  AND  i_1([t,]x) NE miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
754
    "               o(t,x) =",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
755
    "                        \\ miss     if i_1([t,]x) EQ 0  OR   i_1([t,]x) EQ miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
756
    "    ifnotthen  If not then",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
757
    "                        / i_2(t,x) if i_1([t,]x) EQ 0  AND  i_1([t,]x) NE miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
758
    "               o(t,x) = ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
759
    "                        \\ miss     if i_1([t,]x) NE 0  OR   i_1([t,]x) EQ miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
760
761
};

762
std::vector<std::string> Cond2Help = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
763
764
765
766
    "NAME",
    "    ifthenelse - Conditional select  two fields",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
767
    "    ifthenelse  infile1 infile2 infile3 outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
768
769
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
770
771
    "    This operator selects field elements from infile2 or infile3 with respect to",
    "    infile1 and writes them to outfile. The fields in infile1 are handled as a mask.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
772
    "    A value not equal to zero is treated as \"true\", zero is treated as \"false\".",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
773
774
775
776
    "    The number of fields in infile1 has either to be the same as in infile2 or the ",
    "    same as in one timestep of infile2 or only one.",
    "    infile2 and infile3 need to have the same number of fields.",
    "    The fields in outfile inherit the meta data from infile2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
777
778
779
780
    "    ",
    "              / i_2(t,x) if i_1([t,]x) NE 0  AND  i_1([t,]x) NE miss",
    "    o(t,x) = <  i_3(t,x) if i_1([t,]x) EQ 0  AND  i_1([t,]x) NE miss",
    "              \\ miss     if i_1([t,]x) EQ miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
781
782
};

783
std::vector<std::string> CondcHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
784
785
786
787
    "NAME",
    "    ifthenc, ifnotthenc - Conditional select a constant",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
788
    "    <operator>,c  infile outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
789
790
791
    "",
    "DESCRIPTION",
    "    This module creates fields with a constant value or missing value.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
792
    "    The fields in infile are handled as a mask. A value not equal ",
793
    "    to zero is treated as \"true\", zero is treated as \"false\".",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
    "",
    "OPERATORS",
    "    ifthenc     If then constant",
    "                         / c      if i(t,x) NE 0  AND  i(t,x) NE miss",
    "                o(t,x) =",
    "                         \\ miss   if i(t,x) EQ 0  OR   i(t,x) EQ miss",
    "    ifnotthenc  If not then constant",
    "                         / c      if i(t,x) EQ 0  AND  i(t,x) NE miss",
    "                o(t,x) =",
    "                         \\ miss   if i(t,x) NE 0  OR   i(t,x) EQ miss",
    "",
    "PARAMETER",
    "    c  FLOAT  Constant",
};

809
std::vector<std::string> MapReduceHelp = {
810
    "NAME",
811
    "    reducegrid - Reduce fields to user-defined mask",
812
813
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
814
    "    reducegrid,mask[,limitCoordsOutput]  infile outfile",
815
816
    "",
    "DESCRIPTION",
817
    "    This module holds an operator for data reduction based on a user defined mask.",
818
    "    The output grid is unstructured and includes coordinate bounds. Bounds can be",
Ralf Mueller's avatar
Ralf Mueller committed
819
820
    "    avoided by using the additional 'nobounds' keyword. With 'nocoords' given,",
    "    coordinates a completely suppressed.",
821
822
    "",
    "PARAMETER",
823
    "    mask               STRING file which holds the mask field",
824
    "    limitCoordsOutput  STRING optional parameter to limit coordinates output: 'nobounds' disables coordinate bounds, 'nocoords' avoids all coordinate information",
825
826
};

827
std::vector<std::string> CompHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
828
829
830
831
    "NAME",
    "    eq, ne, le, lt, ge, gt - Comparison of two fields",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
832
    "    <operator>  infile1 infile2 outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
833
834
835
    "",
    "DESCRIPTION",
    "    This module compares two datasets field by field. The resulting",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
836
    "    field is a mask containing 1 if the comparison is true and 0 if not. ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
837
    "    The number of fields in infile1 should be the same as in infile2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
838
    "    One of the input files can contain only one timestep or one field.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
839
    "    The fields in outfile inherit the meta data from infile1 or infile2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
840
    "    The type of comparison depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
    "",
    "OPERATORS",
    "    eq  Equal",
    "                  /   1   if i_1(t,x) EQ i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "        o(t,x) = <    0   if i_1(t,x) NE i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "                  \\  miss if i_1(t,x) EQ miss      OR   i_2(t,x) EQ miss",
    "    ne  Not equal",
    "                  /   1   if i_1(t,x) NE i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "        o(t,x) = <    0   if i_1(t,x) EQ i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "                  \\  miss if i_1(t,x) EQ miss      OR   i_2(t,x) EQ miss",
    "    le  Less equal",
    "                  /   1   if i_1(t,x) LE i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "        o(t,x) = <    0   if i_1(t,x) GT i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "                  \\  miss if i_1(t,x) EQ miss      OR   i_2(t,x) EQ miss",
    "    lt  Less than",
    "                  /   1   if i_1(t,x) LT i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "        o(t,x) = <    0   if i_1(t,x) GE i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "                  \\  miss if i_1(t,x) EQ miss      OR   i_2(t,x) EQ miss",
    "    ge  Greater equal",
    "                  /   1   if i_1(t,x) GE i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "        o(t,x) = <    0   if i_1(t,x) LT i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "                  \\  miss if i_1(t,x) EQ miss      OR   i_2(t,x) EQ miss",
    "    gt  Greater than",
    "                  /   1   if i_1(t,x) GT i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "        o(t,x) = <    0   if i_1(t,x) LE i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "                  \\  miss if i_1(t,x) EQ miss      OR   i_2(t,x) EQ miss",
};

869
std::vector<std::string> CompcHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
870
871
872
873
    "NAME",
    "    eqc, nec, lec, ltc, gec, gtc - Comparison of a field with a constant",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
874
    "    <operator>,c  infile outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
875
876
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
877
878
    "    This module compares all fields of a dataset with a constant. The resulting",
    "    field is a mask containing 1 if the comparison is true and 0 if not.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
879
    "    The type of comparison depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
880
881
882
883
884
885
886
887
888
889
890
891
892
893
    "",
    "OPERATORS",
    "    eqc  Equal constant",
    "                   /   1   if i(t,x) EQ c     AND  i(t,x),c NE miss",
    "         o(t,x) = <    0   if i(t,x) NE c     AND  i(t,x),c NE miss",
    "                   \\  miss if i(t,x) EQ miss  OR   c EQ miss",
    "    nec  Not equal constant",
    "                   /   1   if i(t,x) NE c     AND  i(t,x),c NE miss",
    "         o(t,x) = <    0   if i(t,x) EQ c     AND  i(t,x),c NE miss",
    "                   \\  miss if i(t,x) EQ miss  OR   c EQ miss",
    "    lec  Less equal constant",
    "                   /   1   if i(t,x) LE c     AND  i(t,x),c NE miss",
    "         o(t,x) = <    0   if i(t,x) GT c     AND  i(t,x),c NE miss",
    "                   \\  miss if i(t,x) EQ miss  OR   c EQ miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
894
    "    ltc  Less than constant",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
895
896
897
898
899
900
901
    "                   /   1   if i(t,x) LT c     AND  i(t,x),c NE miss",
    "         o(t,x) = <    0   if i(t,x) GE c     AND  i(t,x),c NE miss",
    "                   \\  miss if i(t,x) EQ miss  OR   c EQ miss",
    "    gec  Greater equal constant",
    "                   /   1   if i(t,x) GE c     AND  i(t,x),c NE miss",
    "         o(t,x) = <    0   if i(t,x) LT c     AND  i(t,x),c NE miss",
    "                   \\  miss if i(t,x) EQ miss  OR   c EQ miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
902
    "    gtc  Greater than constant",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
903
904
905
906
907
908
909
910
    "                   /   1   if i(t,x) GT c     AND  i(t,x),c NE miss",
    "         o(t,x) = <    0   if i(t,x) LE c     AND  i(t,x),c NE miss",
    "                   \\  miss if i(t,x) EQ miss  OR   c EQ miss",
    "",
    "PARAMETER",
    "    c  FLOAT  Constant",
};

911
std::vector<std::string> SetattributeHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
    "NAME",
    "    setattribute - Set attributes",
    "",
    "SYNOPSIS",
    "    setattribute,attributes  infile outfile",
    "",
    "DESCRIPTION",
    "    This operator sets attributes of a dataset. Each attribute has the following structure:",
    "    ",
    "      [var_nm@]att_nm=att_val",
    "    ",
    "       var_nm  Variable name (optional). Example: pressure",
    "       att_nm  Attribute name. Example: units",
    "       att_val Comma separated list of attribute values. Example: pascal",
    "    ",
    "    The value of var_nm is the name of the variable containing the attribute (named att_nm) that",
    "    you want to set. Use wildcards to set the attribute att_nm to more than one variable.",
    "    A value of var_nm of '*' will set the attribute att_nm to all data variables.",
    "    If var_nm is missing then att_nm refers to a global attribute.",
    "    ",
    "    The value of att_nm is the name of the attribute you want to set.",
    "    ",
    "    The value of att_val is the contents of the attribute att_nm. att_val may be a single value",
    "    or one-dimensional array of elements. The type of the attribute value will be detected",
    "    automaticly from the contents of the value.",
    "    ",
    "    A special meaning has the attribute name FILE. If this is the 1st attribute then all attributes",
    "    are read from a file specified in the value of att_val.",
    "",
    "PARAMETER",
    "    attributes  STRING  Comma separated list of attributes. ",
};

945
std::vector<std::string> SetpartabHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
946
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
947
    "    setpartabp, setpartabn - Set parameter table",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
948
949
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
950
    "    <operator>,table[,convert]  infile outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
951
952
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
953
    "    This module transforms data and metadata of infile via a parameter table and writes the result to outfile.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
954
955
956
957
    "    A parameter table is an ASCII formatted file with a set of parameter entries for each variable. Each new set have to",
    "    start with \"\\&parameter\" and to end with \"/\".",
    "    ",
    "    The following parameter table entries are supported:",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
958
    "    ",
959
    "     Entry           & Type        & Description      ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
960
961
    "     name            & WORD        & Name of the variable",
    "     out_name        & WORD        & New name of the variable",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
962
963
    "     param           & WORD        & Parameter identifier (GRIB1: code[.tabnum];  GRIB2: num[.cat[.dis]])",
    "     out_param       & WORD        & New parameter identifier",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
964
965
966
967
968
969
970
971
972
973
974
975
    "     type            & WORD        & Data type (real or double)",
    "     standard_name   & WORD        & As defined in the CF standard name table",
    "     long_name       & STRING      & Describing the variable",
    "     units           & STRING      & Specifying the units for the variable",
    "     comment         & STRING      & Information concerning the variable",
    "     cell_methods    & STRING      & Information concerning calculation of means or climatologies",
    "     cell_measures   & STRING      & Indicates the names of the variables containing cell areas and volumes",
    "     missing_value   & FLOAT       & Specifying how missing data will be identified",
    "     valid_min       & FLOAT       & Minimum valid value",
    "     valid_max       & FLOAT       & Maximum valid value",
    "     ok_min_mean_abs & FLOAT       & Minimum absolute mean",
    "     ok_max_mean_abs & FLOAT       & Maximum absolute mean",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
976
977
    "     factor          & FLOAT       & Scale factor",
    "     delete          & INTEGER     & Set to 1 to delete variable",
978
    "     convert         & INTEGER     & Set to 1 to convert the unit if necessary",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
979
    "    ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
980
    "    Unsupported parameter table entries are stored as variable attributes.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
981
    "    The search key for the variable depends on the operator. Use setpartabn to search variables by the name.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
982
    "    This is typically used for NetCDF datasets. The operator setpartabp searches variables by the parameter ID.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
983
984
    "",
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
985
986
    "    setpartabp  Set parameter table",
    "                Search variables by the parameter identifier.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
987
    "    setpartabn  Set parameter table",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
988
    "                Search variables by name.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
989
990
    "",
    "PARAMETER",
991
992
    "    table    STRING   Parameter table file or name",
    "    convert  STRING   Converts the units if necessary",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
993
994
};

995
std::vector<std::string> SetHelp = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
996
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
997
    "    setcodetab, setcode, setparam, setname, setunit, setlevel, setltype - ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
998
    "    Set field info",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
999
1000
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1001
1002
1003
1004
1005
1006
1007
    "    setcodetab,table  infile outfile",
    "    setcode,code  infile outfile",
    "    setparam,param  infile outfile",
    "    setname,name  infile outfile",
    "    setunit,unit  infile outfile",
    "    setlevel,level  infile outfile",
    "    setltype,ltype  infile outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1008
1009
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1010
    "    This module sets some field information. Depending on the chosen operator the ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1011
    "    parameter table, code number, parameter identifier, variable name or level is set.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1012
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1013
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
    "    setcodetab  Set parameter code table",
    "                Sets the parameter code table for all variables.",
    "    setcode     Set code number",
    "                Sets the code number for all variables to the same given value.",
    "    setparam    Set parameter identifier",
    "                Sets the parameter identifier of the first variable.",
    "    setname     Set variable name",
    "                Sets the name of the first variable.",
    "    setunit     Set variable unit",
    "                Sets the unit of the first variable.",
    "    setlevel    Set level",
    "                Sets the first level of all variables.",
    "    setltype    Set GRIB level type",
    "                Sets the GRIB level type of all variables.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1028
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1029
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1030
    "    table  STRING   Parameter table file or name",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1031
    "    code   INTEGER  Code number",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1032
    "    param  STRING   Parameter identifier (GRIB1: code[.tabnum]; GRIB2: num[.cat[.dis]])",
Uwe Schulzweida's avatar