operator_help.h 284 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
static const char *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
    NULL
};

35
static const char *SinfoHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
36
    "NAME",
37
    "    sinfo, sinfon - Short information",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
38
39
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
40
    "    <operator>  infiles",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
41
42
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
43
44
    "    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
45
    "    the same structure with the same variables on different timesteps.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
46
    "    The information displayed depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
47
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
48
    "OPERATORS",
49
    "    sinfo   Short information listed by parameter identifier",
50
    "            Prints short information of a dataset. The information is divided into",
51
52
    "            4 sections. Section 1 prints one line per parameter with the following ",
    "            information:",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
53
    "            - institute and source",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
54
    "            - timestep type",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
55
    "            - number of levels and z-axis number",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
56
    "            - horizontal grid size and number",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
57
58
    "            - data type",
    "            - parameter identifier",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
59
60
    "            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.",
61
    "    sinfon  Short information listed by parameter name",
62
63
    "            The same as operator sinfo but using the name instead of the ",
    "            identifier to label the parameter.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
64
65
66
    NULL
};

67
static const char *DiffHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
68
    "NAME",
69
    "    diff, diffn - Compare two datasets field by field",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
70
71
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
72
    "    <operator>  infile1 infile2",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
73
74
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
75
76
    "    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
77
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
78
    "OPERATORS",
79
    "    diff   Compare two datasets listed by parameter id",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
80
81
    "           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
82
    "           - Date and Time",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
83
    "           - Level, Gridsize and number of Missing values",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
84
    "           - Number of different values",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
85
86
87
88
    "           - 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
89
    "           - Parameter identifier",
90
91
92
    "    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
93
94
95
    NULL
};

96
static const char *NinfoHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
97
    "NAME",
98
    "    npar, nlevel, nyear, nmon, ndate, ntime, ngridpoints, ngrids - ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
99
    "    Print the number of parameters, levels or times",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
100
101
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
102
    "    <operator>  infile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
103
104
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
105
106
    "    This module prints the number of variables, levels or times of the ",
    "    input dataset.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
107
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
108
    "OPERATORS",
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
    "    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
125
126
127
    NULL
};

128
static const char *ShowinfoHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
129
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
130
    "    showformat, showcode, showname, showstdname, showlevel, showltype, showyear, ",
131
    "    showmon, showdate, showtime, showtimestamp - Show variables, levels or times",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
132
133
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
134
    "    <operator>  infile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
135
136
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
137
    "    This module prints the format, variables, levels or times of the input dataset.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
138
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
139
    "OPERATORS",
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
    "    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
157
    "                   Prints date information of all timesteps (format YYYY-MM-DD).",
158
    "    showtime       Show time information",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
159
    "                   Prints time information of all timesteps (format hh:mm:ss).",
160
    "    showtimestamp  Show timestamp",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
161
    "                   Prints timestamp of all timesteps (format YYYY-MM-DDThh:mm:ss).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
162
163
164
    NULL
};

165
static const char *FiledesHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
166
    "NAME",
167
    "    partab, codetab, griddes, zaxisdes, vct - Dataset description",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
168
169
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
170
    "    <operator>  infile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
171
172
    "",
    "DESCRIPTION",
173
174
    "    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
175
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
176
    "OPERATORS",
177
178
    "    partab    Parameter table",
    "              Prints all available meta information of the variables.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
179
180
    "    codetab   Parameter code table",
    "              Prints a code table with a description of all variables.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
181
182
183
184
    "              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
185
186
    "    zaxisdes  Z-axis description",
    "              Prints the description of all z-axes.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
187
188
    "    vct       Vertical coordinate table",
    "              Prints the vertical coordinate table.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
189
190
191
    NULL
};

192
static const char *CopyHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
193
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
194
    "    copy, cat - Copy datasets",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
195
196
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
197
    "    <operator>  infiles outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
198
199
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
200
    "    This module contains operators to copy or concatenate datasets.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
201
    "    infiles is an arbitrary number of input files. All input files need to have ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
202
    "    the same structure with the same variables on different timesteps.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
203
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
204
205
    "OPERATORS",
    "    copy  Copy datasets",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
206
    "          Copies all input datasets to outfile. ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
207
    "    cat   Concatenate datasets",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
208
    "          Concatenates all input datasets and appends the result to the end ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
209
    "          of outfile. If outfile does not exist it will be created.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
210
211
212
    NULL
};

213
static const char *ReplaceHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
214
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
215
    "    replace - Replace variables",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
216
217
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
218
    "    replace  infile1 infile2 outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
219
220
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
221
222
    "    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
223
224
225
    NULL
};

226
static const char *DuplicateHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
227
228
229
230
    "NAME",
    "    duplicate - Duplicates a dataset",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
231
    "    duplicate[,ndup]  infile outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
232
233
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
234
    "    This operator duplicates the contents of infile and writes the result to outfile.",
235
    "    The optional parameter sets the number of duplicates, the default is 2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
236
237
    "",
    "PARAMETER",
238
    "    ndup  INTEGER  Number of duplicates, default is 2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
239
240
241
    NULL
};

242
static const char *MergegridHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
243
244
245
246
    "NAME",
    "    mergegrid - Merge grid",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
247
    "    mergegrid  infile1 infile2 outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
248
249
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
250
251
252
    "    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
253
    "    Only rectilinear grids are supported. Both input files need to have the same variables ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
254
255
256
257
    "    and the same number of timesteps.",
    NULL
};

258
static const char *MergeHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
259
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
260
    "    merge, mergetime - Merge datasets",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
261
262
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
263
    "    <operator>  infiles outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
264
265
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
266
    "    This module reads datasets from several input files, merges them and writes the resulting dataset to outfile.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
267
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
268
269
    "OPERATORS",
    "    merge      Merge datasets with different fields",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
270
    "               Merges time series of different fields from several input datasets. The number ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
271
    "               of fields per timestep written to outfile is the sum of the field numbers ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
272
273
    "               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
274
275
276
    "               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
277
    "    mergetime  Merge datasets sorted by date and time",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
278
    "               Merges all timesteps of all input files sorted by date and time.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
279
    "               All input files need to have the same structure with the same variables on ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
280
    "               different timesteps. After this operation every input timestep is in outfile ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
281
    "               and all timesteps are sorted by date and time.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
282
283
284
    "",
    "ENVIRONMENT",
    "    SKIP_SAME_TIME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
285
    "        If set to 1, skips all consecutive timesteps with a double entry of the same timestamp.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
286
287
288
289
    "",
    "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
290
291
292
    NULL
};

293
static const char *SplitHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
294
    "NAME",
295
296
    "    splitcode, splitparam, splitname, splitlevel, splitgrid, splitzaxis, ",
    "    splittabnum - Split a dataset",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
297
298
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
299
    "    <operator>[,params]  infile obase",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
300
301
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
302
    "    This module splits infile into pieces. The output files will be named <obase><xxx><suffix>",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
303
304
    "    where suffix is the filename extension derived from the file format. xxx and the contents ",
    "    of the output files depends on the chosen operator. ",
305
    "    params is a comma separated list of processing parameters.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
306
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
307
    "OPERATORS",
308
309
    "    splitcode    Split code numbers",
    "                 Splits a dataset into pieces, one for each different code number.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
310
    "                 xxx will have three digits with the code number.",
311
312
313
    "    splitparam   Split parameter identifiers",
    "                 Splits a dataset into pieces, one for each different parameter identifier.",
    "                 xxx will be a string with the parameter identifier.",
314
315
    "    splitname    Split variable names",
    "                 Splits a dataset into pieces, one for each variable name.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
316
    "                 xxx will be a string with the variable name.",
317
318
    "    splitlevel   Split levels",
    "                 Splits a dataset into pieces, one for each different level.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
319
    "                 xxx will have six digits with the level.",
320
321
    "    splitgrid    Split grids",
    "                 Splits a dataset into pieces, one for each different grid.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
322
    "                 xxx will have two digits with the grid number.",
323
324
    "    splitzaxis   Split z-axes",
    "                 Splits a dataset into pieces, one for each different z-axis.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
325
    "                 xxx will have two digits with the z-axis number.",
326
327
    "    splittabnum  Split parameter table numbers",
    "                 Splits a dataset into pieces, one for each GRIB1 parameter table number.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
328
329
    "                 xxx will have three digits with the GRIB1 parameter table number.",
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
330
    "PARAMETER",
331
332
    "    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
333
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
334
335
    "ENVIRONMENT",
    "    CDO_FILE_SUFFIX",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
336
337
    "        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
338
    "        Set this variable to NULL to disable the adding of a file suffix.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
339
340
341
342
    "",
    "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
343
344
345
    NULL
};

346
static const char *SplittimeHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
347
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
348
    "    splithour, splitday, splitseas, splityear, splityearmon, splitmon - ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
349
    "    Split timesteps of a dataset",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
350
351
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
352
353
    "    <operator>  infile obase",
    "    splitmon[,format]  infile obase",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
354
355
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
356
    "    This module splits infile into  timesteps pieces. The output files will be named",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
357
358
    "    <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
359
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
360
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
    "    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.",
379
380
381
    "",
    "PARAMETER",
    "    format  STRING  C-style format for strftime() (e.g. %B for the full month name)",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
382
383
384
    "",
    "ENVIRONMENT",
    "    CDO_FILE_SUFFIX",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
385
386
    "        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
387
    "        Set this variable to NULL to disable the adding of a file suffix.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
388
389
390
391
    "",
    "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
392
393
394
    NULL
};

395
static const char *SplitselHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
396
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
397
    "    splitsel - Split selected timesteps",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
398
399
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
400
    "    splitsel,nsets[,noffset[,nskip]]  infile obase",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
401
402
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
403
    "    This operator splits infile into pieces, one for each adjacent",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
404
    "    sequence t_1, ...., t_n of timesteps of the same selected time range.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
405
406
    "    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
407
408
    "",
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
409
410
411
    "    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
412
413
414
    "",
    "ENVIRONMENT",
    "    CDO_FILE_SUFFIX",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
415
416
    "        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
417
    "        Set this variable to NULL to disable the adding of a file suffix.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
418
419
420
    NULL
};

421
static const char *DistgridHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
422
423
424
425
    "NAME",
    "    distgrid - Distribute horizontal grid",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
426
    "    distgrid,nx[,ny]  infile obase",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
427
428
    "",
    "DESCRIPTION",
429
430
431
    "    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.",
432
433
434
    "    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
435
436
437
438
439
440
441
    "",
    "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
442
    "    The maximum number of open files depends on the operating system!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
443
444
445
    NULL
};

446
static const char *CollgridHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
447
448
449
450
    "NAME",
    "    collgrid - Collect horizontal grid",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
451
    "    collgrid[,nx[,names]]  infiles outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
452
453
454
455
    "",
    "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",
456
    "    horizonal grid region. A source region must be a structured longitude/latitude grid box.",
457
    "    The parameter nx needs to be specified only for non regular lon/lat grids.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
458
459
    "",
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
460
    "    nx     INTEGER  Number of regions in x direction [default: number of input files]",
461
    "    names  STRING   Comma separated list of variable names [default: all variables]",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
462
463
464
    "",
    "NOTE",
    "    This operator needs to open all input files simultaneously.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
465
    "    The maximum number of open files depends on the operating system!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
466
467
468
    NULL
};

469
static const char *SelectHelp[] = {
470
471
472
473
    "NAME",
    "    select, delete - Select fields",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
474
    "    <operator>,params  infiles outfile",
475
476
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
477
478
    "    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 ",
479
480
    "    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
481
    "    separated list of \"key=value\" pairs. Wildcards can be used for string parameter.",
482
483
484
485
486
487
488
489
    "",
    "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
490
491
492
493
    "    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.",
494
    "    levidx            INTEGER Comma separated list of index of levels.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
495
    "    zaxisname         STRING  Comma separated list of zaxis names.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
496
    "    zaxisnum          INTEGER Comma separated list of zaxis numbers.",
497
    "    ltype             INTEGER Comma separated list of GRIB level types.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
498
    "    gridname          STRING  Comma separated list of grid names.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
499
    "    gridnum           INTEGER Comma separated list of grid numbers.",
500
    "    steptype          STRING  Comma separated list of timestep types.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
501
    "    date              STRING  Comma separated list of dates (format YYYY-MM-DDThh:mm:ss).",
502
503
    "    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
504
505
506
507
    "    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
508
    "    season            STRING  Comma separated list of seasons (substring of DJFMAMJJASOND or ANN).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
509
    "    year              INTEGER Comma separated list of years.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
510
    "    timestep          INTEGER Comma separated list of timesteps. Negative values selects timesteps from the end (NetCDF only).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
511
    "    timestep_of_year  INTEGER Comma separated list of timesteps of year.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
512
    "    timestepmask      STRING  Read timesteps from a mask file.",
513
514
515
    NULL
};

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
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
static const char *SelmultiHelp[] = {
    "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",
    NULL
};

566
static const char *SelvarHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
567
    "NAME",
568
    "    selparam, delparam, selcode, delcode, selname, delname, selstdname, sellevel, ",
569
    "    sellevidx, selgrid, selzaxis, selzaxisname, selltype, seltabnum - Select fields",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
570
571
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
572
573
574
575
576
577
578
579
580
581
582
583
584
    "    <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
585
586
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
587
    "    This module selects some fields from infile and writes them to outfile.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
588
    "    The fields selected depends on the chosen operator and the parameters.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
589
590
    "",
    "OPERATORS",
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
    "    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
619
620
    "",
    "PARAMETER",
621
622
623
624
625
626
627
628
629
630
631
    "    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
632
633
634
    NULL
};

635
static const char *SeltimeHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
636
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
637
    "    seltimestep, seltime, selhour, selday, selmonth, selyear, selseason, seldate, ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
638
    "    selsmon - Select timesteps",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
639
640
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
641
642
643
644
645
646
647
648
649
    "    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
650
651
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
652
    "    This module selects user specified timesteps from infile and writes them to outfile.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
653
    "    The timesteps selected depends on the chosen operator and the parameters.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
654
655
    "",
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
656
657
    "    seltimestep  Select timesteps",
    "                 Selects all timesteps with a timestep in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
658
    "    seltime      Select times",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
659
    "                 Selects all timesteps with a time in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
660
    "    selhour      Select hours",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
661
    "                 Selects all timesteps with a hour in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
662
    "    selday       Select days",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
663
    "                 Selects all timesteps with a day in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
664
    "    selmonth     Select months",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
665
    "                 Selects all timesteps with a month in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
666
    "    selyear      Select years",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
667
    "                 Selects all timesteps with a year in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
668
    "    selseason    Select seasons",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
669
    "                 Selects all timesteps with a month of a season in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
670
    "    seldate      Select dates",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
671
    "                 Selects all timesteps with a date in a user given range.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
672
    "    selsmon      Select single month",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
673
    "                 Selects a month and optional an arbitrary number of timesteps before and after this month.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
674
675
    "",
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
676
    "    timesteps  INTEGER  Comma separated list of timesteps. Negative values selects timesteps from the end (NetCDF only).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
677
678
679
680
681
    "    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
682
    "    seasons    STRING   Comma separated list of seasons (substring of DJFMAMJJASOND or ANN).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
683
684
685
686
    "    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
687
688
689
    NULL
};

690
static const char *SelboxHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
691
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
692
    "    sellonlatbox, selindexbox - Select a box of a field",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
693
694
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
695
696
    "    sellonlatbox,lon1,lon2,lat1,lat2  infile outfile",
    "    selindexbox,idx1,idx2,idy1,idy2  infile outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
697
698
    "",
    "DESCRIPTION",
699
    "    Selects a box of the rectangularly understood field.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
700
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
701
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
702
    "    sellonlatbox  Select a longitude/latitude box",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
703
704
    "                  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
705
    "                  For rotated lon/lat grids the parameter needs to be rotated coordinates.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
706
    "    selindexbox   Select an index box",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
707
708
    "                  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
709
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
710
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
711
712
713
714
    "    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
715
716
717
718
    "    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
719
720
721
    NULL
};

Uwe Schulzweida's avatar
Uwe Schulzweida committed
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
static const char *SelgridcellHelp[] = {
    "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",
    NULL
};

742
743
744
745
746
static const char *SamplegridHelp[] = {
    "NAME",
    "    samplegrid - Resample grid",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
747
    "    samplegrid,factor  infile outfile",
748
749
750
    "",
    "DESCRIPTION",
    "    This is a special operator for resampling the horizontal grid.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
751
    "    No interpolation takes place. Resample factor=2 means every second grid point is removed.",
752
753
754
    "    Only rectilinear and curvilinear source grids are supported by this operator.",
    "",
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
755
    "    factor  INTEGER  Resample factor, typically 2, which will half the resolution",
756
757
758
    NULL
};

759
static const char *CondHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
760
761
762
763
    "NAME",
    "    ifthen, ifnotthen - Conditional select one field",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
764
    "    <operator>  infile1 infile2 outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
765
766
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
767
768
    "    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 ",
769
    "    not equal to zero is treated as \"true\", zero is treated as \"false\".",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
770
771
772
    "    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
773
774
775
    "",
    "OPERATORS",
    "    ifthen     If then",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
776
    "                        / 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
777
    "               o(t,x) =",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
778
    "                        \\ miss     if i_1([t,]x) EQ 0  OR   i_1([t,]x) EQ miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
779
    "    ifnotthen  If not then",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
780
    "                        / 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
781
    "               o(t,x) = ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
782
    "                        \\ miss     if i_1([t,]x) NE 0  OR   i_1([t,]x) EQ miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
783
784
785
    NULL
};

786
static const char *Cond2Help[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
787
788
789
790
    "NAME",
    "    ifthenelse - Conditional select  two fields",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
791
    "    ifthenelse  infile1 infile2 infile3 outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
792
793
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
794
795
    "    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
796
    "    A value not equal to zero is treated as \"true\", zero is treated as \"false\".",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
797
798
799
800
    "    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
801
802
803
804
    "    ",
    "              / 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
805
806
807
    NULL
};

808
static const char *CondcHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
809
810
811
812
    "NAME",
    "    ifthenc, ifnotthenc - Conditional select a constant",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
813
    "    <operator>,c  infile outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
814
815
816
    "",
    "DESCRIPTION",
    "    This module creates fields with a constant value or missing value.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
817
    "    The fields in infile are handled as a mask. A value not equal ",
818
    "    to zero is treated as \"true\", zero is treated as \"false\".",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
    "",
    "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",
    NULL
};

835
836
static const char *MapReduceHelp[] = {
    "NAME",
837
    "    reducegrid - Reduce fields to user-defined mask",
838
839
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
840
    "    reducegrid,mask[,limitCoordsOutput]  infile outfile",
841
842
    "",
    "DESCRIPTION",
843
    "    This module holds an operator for data reduction based on a user defined mask.",
844
    "    The output grid is unstructured and includes coordinate bounds. Bounds can be",
Ralf Mueller's avatar
Ralf Mueller committed
845
846
    "    avoided by using the additional 'nobounds' keyword. With 'nocoords' given,",
    "    coordinates a completely suppressed.",
847
848
    "",
    "PARAMETER",
849
    "    mask               STRING file which holds the mask field",
850
    "    limitCoordsOutput  STRING optional parameter to limit coordinates output: 'nobounds' disables coordinate bounds, 'nocoords' avoids all coordinate information",
851
852
853
    NULL
};

854
static const char *CompHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
855
856
857
858
    "NAME",
    "    eq, ne, le, lt, ge, gt - Comparison of two fields",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
859
    "    <operator>  infile1 infile2 outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
860
861
862
    "",
    "DESCRIPTION",
    "    This module compares two datasets field by field. The resulting",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
863
    "    field is a mask containing 1 if the comparison is true and 0 if not. ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
864
    "    The number of fields in infile1 should be the same as in infile2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
865
    "    One of the input files can contain only one timestep or one field.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
866
    "    The fields in outfile inherit the meta data from infile1 or infile2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
867
    "    The type of comparison depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
    "",
    "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",
    NULL
};

897
static const char *CompcHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
898
899
900
901
    "NAME",
    "    eqc, nec, lec, ltc, gec, gtc - Comparison of a field with a constant",
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
902
    "    <operator>,c  infile outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
903
904
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
905
906
    "    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
907
    "    The type of comparison depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
908
909
910
911
912
913
914
915
916
917
918
919
920
921
    "",
    "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
922
    "    ltc  Less than constant",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
923
924
925
926
927
928
929
    "                   /   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
930
    "    gtc  Greater than constant",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
931
932
933
934
935
936
937
938
939
    "                   /   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",
    NULL
};

Uwe Schulzweida's avatar
Uwe Schulzweida committed
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
static const char *SetattributeHelp[] = {
    "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. ",
    NULL
};

975
static const char *SetpartabHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
976
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
977
    "    setpartabp, setpartabn - Set parameter table",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
978
979
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
980
    "    <operator>,table[,convert]  infile outfile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
981
982
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
983
    "    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
984
985
986
987
    "    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
988
    "    ",
989
    "     Entry           & Type        & Description      ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
990
991
    "     name            & WORD        & Name of the variable",
    "     out_name        & WORD        & New name of the variable",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
992
993
    "     param           & WORD        & Parameter identifier (GRIB1: code[.tabnum];  GRIB2: num[.cat[.dis]])",
    "     out_param       & WORD        & New parameter identifier",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
    "     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
1006
1007
    "     factor          & FLOAT       & Scale factor",
    "     delete          & INTEGER     & Set to 1 to delete variable",
1008
    "     convert         & INTEGER     & Set to 1 to convert the unit if necessary",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1009
    "    ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1010
    "    Unsupported parameter table entries are stored as variable attributes.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1011
    "    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
1012
    "    This is typically used for NetCDF datasets. The operator setpartabp searches variables by the parameter ID.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1013
1014
    "",
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1015
1016
    "    setpartabp  Set parameter table",
    "                Search variables by the parameter identifier.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1017
    "    setpartabn  Set parameter table",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1018
    "                Search variables by name.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1019
1020
    "",
    "PARAMETER",
1021
1022
    "    table    STRING   Parameter table file or name",
    "    convert  STRING   Converts the units if necessary",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1023
1024
1025
    NULL
};

1026
static const char *SetHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1027
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1028
    "    setcodetab, setcode, setparam, setname, setunit, setlevel, setltype - ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1029
    "    Set field info",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1030
1031
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1032
1033
1034
1035
1036
1037
1038
    "    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
1039
1040
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1041
    "    This module sets some field information. Depending on the chosen operator the ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1042
    "    parameter table, code number, parameter identifier, variable name or level is set.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1043
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1044
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
    "    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
1059
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1060
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1061
    "    table  STRING   Parameter table file or name",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1062
    "    code   INTEGER  Code number",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1063
    "    param  STRING   Parameter identifier (GRIB1: code[.tabnum]; GRIB2: num[.cat[.dis]])",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1064
1065
    "    name   STRING   Variable name",
    "    level  FLOAT    New level",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1066