NEWS 40.4 KB
Newer Older
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1
2
CDO NEWS
--------
3

Uwe Schulzweida's avatar
Uwe Schulzweida committed
4
5
Improvement

Uwe Schulzweida's avatar
Uwe Schulzweida committed
6
Version 1.9.6 (7 February 2019):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
7
8
9
10

   New features:
     * Added support for polar stereographic projection
     * Download ICON grids if necessary (http://icon-downloads.mpimet.mpg.de)
Uwe Schulzweida's avatar
Uwe Schulzweida committed
11
12
13
14
15
     * Added global option --eccodes:  Use ecCodes to decode/encode GRIB1 messages
     * Operator chname: Added support to change coordinate names [Feature #8746]
     * Operator diff: set exit status to 1 if inputs differ
     * Renamed remapcon/gencon to remapscon/genscon
     * Replaced remapcon/gencon by remapycon/genycon
Uwe Schulzweida's avatar
Uwe Schulzweida committed
16
   New operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
17
     * vars<stat> - Statistical values over all variables
Uwe Schulzweida's avatar
Uwe Schulzweida committed
18
19
20
21
22
     * minc - Minimum of a field and a constant
     * maxc - Maximum of a field and a constant
   Fixed bugs:
     * Gradsdes.test fails [Bug #8614]
     * Option --reduce_dim gives wrong result on time dimension [Bug #8615]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
23
     * Module Selbox: added support for grid cell area
24
     * Operator setgridtype,regular: set nx=4*N+16 for octahedral reduced Gaussian grids
Uwe Schulzweida's avatar
Uwe Schulzweida committed
25
26
27
28
     * Operator distgrid: seg. fault if last segment is larger than first segment
     * Operator sellonlatbox: abort if grid coordinates missing
     * Operator masklonlatbox: wrong result if lon1 > first lon || lon2 < last lon (bug introduce in 1.9.4) [Bug #8695]
     * Operator maskindexbox: wrong result if idx1 > 1 || idx2 < nlon (bug introduce in 1.9.4) [Bug #8695]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
29
     * Absolute time axis (-a) returns wrong units in operator chain for NetCDF [Bug #8777]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
30
     * Relative time axis (-r) returns wrong first timestep in operator chain for NetCDF
31
     * Wrong result with fldmean on zonal mean data (bug introduce in 1.9.6) [Bug #8834]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
32
33

Version 1.9.5 (9 August 2018):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
34
35
36

   New features:
     * Changed type of date from 32 to 64-bit integer to support years > 214748
Uwe Schulzweida's avatar
Uwe Schulzweida committed
37
     * remapycon: optimized by changing cell search method
Uwe Schulzweida's avatar
Uwe Schulzweida committed
38
39
40
41
42
43
44
     * expr: added support for zon<STAT> functions
     * expr: added function sellevelrange() and sellevidxrange()
     * expr: added support for constants
     * gridfile: added extension ":N" to select grid number N from data file
   New operators:
     * dhour<stat> - Multi-day hourly statistics
   Fixed bugs:
45
     * seldate: segmentation fault (bug introduce in 1.9.4) [Bug #8499]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
46
47
     * select: wrong timestamp when combining select with selyear (bug introduce in 1.8.1) [Bug #8576]
     * gradsdes: bug fix for rotated lon/lat grids
Uwe Schulzweida's avatar
Uwe Schulzweida committed
48
49
50
     * silent option produces newlines [Bug #8538]
     * remapnn/remapdis: wrong result with regular 2D source grids if nlat > nlon  [Bug #8498]

Uwe Schulzweida's avatar
Uwe Schulzweida committed
51
Version 1.9.4 (9 May 2018):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
52
53
54
55
56
57
58
59
60

   New features:
     * Large data support: changed type of gridsize from 32 to 64-bit integer
     * remapbil, remapbic, remapnn, remapdis: optimized by changing point search method
     * Fldstat, Vertstat: added option weight=false to disable weighting
   Fixed bugs:
     * option -r doesn't work [Bug #8334]
     * enspctl: changed parameter type from int to float [Bug #8386]
     * segfault with chained operators on timeseries data [Bug #8230]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
61
     * setattribute: added support for \n in text attributes
Uwe Schulzweida's avatar
Uwe Schulzweida committed
62
63
     * expr: removed character [LlDd] from definition of float constants
     
Uwe Schulzweida's avatar
Uwe Schulzweida committed
64
Version 1.9.3 (29 January 2018):
65
66
67
68
69
70
71
72
73

   New features:
     * expr: added time coordinate function cdate(), ctime(), cdeltat(), ctimestep() ...
   New operators:
     * not - logical NOT (1, if x equal 0; else 0)
   Fixed bugs:
     * uvDestag: target grid undefined in output
     * runpctl: fails since release 1.8.0
     * read of reduced Gaussian grid description file failed [Bug #8146]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
74
     * read error on grid description file [Bug #8099]
75

Uwe Schulzweida's avatar
Uwe Schulzweida committed
76
77
78
79
80
Version 1.9.2 (23 November 2017):

   Fixed bugs:
     * sign of grid size increment changes [Bug #7974]
     * compilation fails on OpenBSD [Bug #7961]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
81
82
     * expr: nesting of ternary operator lost in cdo-1.9.1 [Bug #7992]
     * rotuvb changed behavior in different versions [Bug #8084]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
83
84
     * select with start=end range aborts with 'Invalid character' [Bug #7976]

Uwe Schulzweida's avatar
Uwe Schulzweida committed
85
86
Version 1.9.1 (27 September 2017):

Uwe Schulzweida's avatar
Uwe Schulzweida committed
87
88
89
   New features:
     * Added support for NC_FORMAT_CDF5
     * Extend option --reduce_dim to all dimension for all operators
Uwe Schulzweida's avatar
Uwe Schulzweida committed
90
91
   New operators:
     * tee - Duplicate a data stream
Uwe Schulzweida's avatar
Uwe Schulzweida committed
92
   Changes operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
93
     * eof, eof3d: set default value of environment variable CDO_WEIGHT_MODE to off
Uwe Schulzweida's avatar
Uwe Schulzweida committed
94
95
     * sinfo: Added time type
     * ap2pl: added support for input data on half levels
Uwe Schulzweida's avatar
Uwe Schulzweida committed
96
   Fixed bugs:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
97
98
     * selindexbox: breaks uvRelativeToGrid flag [Bug #7901]
     * expr: AND fall through OR
Uwe Schulzweida's avatar
Uwe Schulzweida committed
99
     * --cmor option doesn't work for lon/lat bounds (introduced in 1.9.0)
Uwe Schulzweida's avatar
Uwe Schulzweida committed
100
     * eof3d: weight array was allocated for only one level
Uwe Schulzweida's avatar
Uwe Schulzweida committed
101

Uwe Schulzweida's avatar
Uwe Schulzweida committed
102
Version 1.9.0 (27 July 2017):
103
104

   New features:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
105
     * Code changed from ANSI C99 to ISO C++11
Uwe Schulzweida's avatar
Uwe Schulzweida committed
106
     * Added configure option for ecCodes --with-eccodes=<yes|no|directory>
107
     * Added range operator to all statistic modules (e.g. yearrange, zonrange)
108
109
110
   Fixed bugs:
     * expr: improve ternary operator, no brackets needed anymore.
     * expr: added support for clev in ternary operator.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
111
112
     * remapcon/remapycon produces wrong results for some grid combinations (introduced in 1.8.0) [Bug #7821]
     * mergetime: wrong time information if first input file does not contain the first time step (bug introduced in 1.8.1) [Bug #7760]
113
     * percentile: fix wrong result with method numpy (linear interpolation) and nist [Bug #7798]
114

Uwe Schulzweida's avatar
Uwe Schulzweida committed
115
116
117
118
119
120
121
Version 1.8.2 (15 May 2017):

   Fixed bugs:
     * setpartab: variable name does not change [Bug #7681]
     * cmorlite: skipped empty key values [Bug #7681]
     * setcalendar, settaxis memory error (bug introduce in 1.8.1) [Bug #7691]

122
Version 1.8.1 (6 April 2017):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
123

Uwe Schulzweida's avatar
Uwe Schulzweida committed
124
125
   New features:
     * selindexbox: added support for LCC grid
Uwe Schulzweida's avatar
Uwe Schulzweida committed
126
127
128
   New operators:
     * selgridcell - Select grid cells
     * delgridcell - Delete grid cells
129
130
131
132
133
   New operators (KMNI contribution):
     * selmulti - Select multiple fields
     * delmulti - Delete multiple fields
     * changemulti - Change identication of multiple fields
     * samplegrid - Resample grid
Uwe Schulzweida's avatar
Uwe Schulzweida committed
134
135
136
     * uvDestag - Destaggering of wind components
     * rotuvNorth - Rotate u/v wind to North pole
     * projuvLatLon - Cylindrical Equidistant projection
Uwe Schulzweida's avatar
Uwe Schulzweida committed
137
   Fixed bugs:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
138
     * collgrid: combination of nx and names does not work
Uwe Schulzweida's avatar
Uwe Schulzweida committed
139
140
     * Remapping bug for non global grids [Bug #7625]
     * remapdis and remapcon produces wrong results for some grid combinations [Bug #7626] (introduced in last revision)
Uwe Schulzweida's avatar
Uwe Schulzweida committed
141

Uwe Schulzweida's avatar
Uwe Schulzweida committed
142
143
144
145
146
147
Version 1.8.0 (26 October 2016):

   New features:
     * NetCDF: Improved support for horizontal and vertical grids 
     * Changed default of option -f nc to netCDF2
     * masklonlatbox: added support for unstructured grids
Uwe Schulzweida's avatar
Uwe Schulzweida committed
148
     * setpartabn: added support for user defined attributes
149
     * Reverse: adjust date/time by -1 second (introduced in last revision)
Uwe Schulzweida's avatar
Uwe Schulzweida committed
150
   New operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
151
     * setattribute: Set attributes
Uwe Schulzweida's avatar
Uwe Schulzweida committed
152
     * cmorlite: Apply variable_entry of cmor tables
Uwe Schulzweida's avatar
Uwe Schulzweida committed
153
     * timcumsum: Cumulative sum over time.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
154
     * shiftx/shifty: Shift fields on rectilinear/curvilinear grids in x/y direction
Uwe Schulzweida's avatar
Uwe Schulzweida committed
155
   Fixed bugs:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
156
     * Cond: bug fix for ntsteps1 == 1 && ntsteps2 != 1
Uwe Schulzweida's avatar
Uwe Schulzweida committed
157
158
     * ml2pl: interpolation failed for data on hybrid half levels [Bug #7225]

Uwe Schulzweida's avatar
Uwe Schulzweida committed
159
Version 1.7.2 (28 June 2016):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
160

161
162
163
   New features:
     * Adjust date/time by -1 second if the varification time is 00:00:00 and
       the verification date is equal to upper time bound
Uwe Schulzweida's avatar
Uwe Schulzweida committed
164
165
166
167
168
169
170
   New operators:
     * smooth: Smooth grid points
     * ap2hl: Air pressure to height level interpolation
     * ngrids: Show number of grids
     * ngridpoints: Show number of gridpoints per variable
     * reducegrid: Select gridpoints wrt. given mask
     * settbounds: Set time bounds
171
172
   Changed operators:
     * input: added optional zaxis parameter
Uwe Schulzweida's avatar
Uwe Schulzweida committed
173
174
     * setpartab: renamed to setcodetab
     * pardes: renamed to codetab
Uwe Schulzweida's avatar
Uwe Schulzweida committed
175
   Fixed bugs:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
176
     * Error reading Gaussian reduced GRIB files [Bug #6780 #6819]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
177
     * Installation error with OpenMP [Bug #6523]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
178
     * mul: wrong result for missval*0 (bug was introduced in 1.7.1)
179
     * nint: wrong result (replaced round() by lround())
Uwe Schulzweida's avatar
Uwe Schulzweida committed
180
     * shaded, contour, grfill: set NAN missvals to -9e33 [Bug: #6677]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
181
     * expr: fix problem with missing values in time constant mask and a timeseries
Uwe Schulzweida's avatar
Uwe Schulzweida committed
182

183
Version 1.7.1 (25 February 2016):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
184

185
   New features:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
186
     * select: added search key steptype, gridnum, gridname, zaxisnum, zaxisname
187
188
189
190
     * expr, exprf, aexpr, aexprf: added support for function clon(x), clat(x), clev(x),
       remove(x), ngp(x), nlev(x), size(x), missval(x), sellevel(x,k), sellevidx(x,k),
       fldmin(x), fldmax(x), fldsum(x), fldmean(x), fldavg(x), fldstd(x), fldstd1(x), fldvar(x), fldvar1(x),
       vertmin(x), vertmax(x), vertsum(x), vertmean(x), vertavg(x), vertstd(x), vertstd1(x), vertvar(x), vertvar1(x)
191
   New operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
192
193
194
     * contour: Contour plot
     * shaded: Shaded contour plot
     * grfill: Shaded gridfill plot
195
196
     * vector: Lat/Lon vector plot
     * graph: Line graph plot
197
198
     * gmtxyz: Output GMT xyz format to create contour plots with the GMT module pscontour.
     * gmtcells: Output GMT multiple segment format to create shaded gridfill plots with psxy.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
199
200
   Fixed bugs:
     * cdo -t table_file does not read variable name from table file [Bug #6312]
201
     * One day shift backwards when converting to relative time axis with -r [Bug #6496]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
202
     * ydaypctl: check of verification date failed (bug fix)
Uwe Schulzweida's avatar
Uwe Schulzweida committed
203
     * cat, copy, mergetime, select: remove time constant input fields for nfile>1 [Bug #6552]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
204

205
206
Version 1.7.0 (28 October 2015):

207
   New features:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
208
     * added support for netCDF Scalar Coordinate Variables
Uwe Schulzweida's avatar
Uwe Schulzweida committed
209
     * added support for hybrid sigma pressure coordinates following the CF convention
Uwe Schulzweida's avatar
Uwe Schulzweida committed
210
211
     * added option --percentile to select different percentile methods
       Available methods: nrank, nist, numpy, numpy_lower, numpy_higher, numpy_nearest
212
     * distgrid: added support for curvilinear grids
213
     * collgrid: added support for curvilinear grids
214
   New operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
215
216
     * remapycon: First order conservative remapping (new implementation of remapcon)
     * genycon: Generate 1st order conservative remap weights (new implementation of gencon)
Uwe Schulzweida's avatar
Uwe Schulzweida committed
217
     * setmisstonn: Set missing value to nearest neightbor
218
     * setmisstodis: Set missing value to the distance-weighted average of the nearest neighbors
Uwe Schulzweida's avatar
Uwe Schulzweida committed
219
     * ap2pl: Interpolate 3D variables on hybrid sigma height coordinates to pressure levels
220
221
     * vertstd1: Vertical standard deviation [Divisor is (n-1)]
     * vertvar1: Vertical variance [Divisor is (n-1)]
222
223
     * seasvar1: Seasonal variance [Divisor is (n-1)]
     * seasstd1: Seasonal standard deviation [Divisor is (n-1)]
224
225
     * yseasvar1: Multi-year seasonally variance [Divisor is (n-1)]
     * yseasstd1: Multi-year seasonally standard deviation [Divisor is (n-1)]
226
   Changed operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
227
     * remapnn, remapdis: replaced scrip search by kdtree (optimization)
228
     * vertvar, vertstd: changed to weighted var/std if layer bounds are available
229
   Fixed bugs:
230
     * cdo -t table_file does not complain if table_file is a directory [Bug #5891]
231
     * expr: operators return 0 for arithmetics on constants [Bug #5875]
232
     * env. CDO_TIMESTAT_DATE does not work [Bug #5758]
233
     * splityear*: support for constant fields is missing [Bug #5759]
234
     * yseaspctl: check of verification date failed [Bug #5810]
235
     * Converting rotated lat-lon netcdf to/from grib: flip sign of the angle of rotation [Bug #5870]
236

237
Version 1.6.9 (28 April 2015):
238
239

   New features:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
240
     * select: added parameter date, startdate, enddate 
241
     * expr: added support for operator ?:,&&,||
242
     * option --reduce_dim: reduce dimension (Timstat, Fldstat)
Uwe Schulzweida's avatar
Uwe Schulzweida committed
243
244
   New operators:
     * after: ECHAM standard post processor
Uwe Schulzweida's avatar
Uwe Schulzweida committed
245
246
247
     * aexpr: Evaluate expressions and append results
     * aexprf: Evaluate expression script and append results
     * selzaxisname: Select z-axes by name
248
     * genlevelbounds: Generate level bounds
Uwe Schulzweida's avatar
Uwe Schulzweida committed
249
   Fixed bugs:
250
     * ydrunpctl: does not work in combination with ydrunmin/ydrunmax
251
     * Ensstat: added support for different missing values
Uwe Schulzweida's avatar
Uwe Schulzweida committed
252
     * seltimestep: abort if none of the selected timesteps are found
253

254
Version 1.6.8 (26 March 2015):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
255

Uwe Schulzweida's avatar
Uwe Schulzweida committed
256
   New features:
257
     * select, delete: added wildcard support for parameter name
258
     * expr: added support for logical operators <, >, <=, >=, !=, ==, <=>
259
   New operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
260
     * splityearmon: Split in years and months
261
262
263
264
     * yseasadd: Add multi-year seasonal time series
     * yseassub: Subtract multi-year seasonal time series
     * yseasmul: Multiply multi-year seasonal time series
     * yseasdiv: Divide multi-year seasonal time series
265
   Changed operators:
266
     * vertmean, vertavg: changed to weighted means if layer bounds are available
267
268
     * setpartabp, setpartabn: added optional parameter convert to convert the units.
       Units are not converted anymore if this parameter is not set!
Uwe Schulzweida's avatar
Uwe Schulzweida committed
269
270
     * TimSTAT, Timpctl, TimselSTAT, Timselpctl, SeasSTAT, Seaspctl:
       The output time stamp of all operators from the above modules
Uwe Schulzweida's avatar
Uwe Schulzweida committed
271
       are changed from the last to the middle contributing timestep.
272
       Use the environment variable CDO_TIMESTAT_DATE=last to set
Uwe Schulzweida's avatar
Uwe Schulzweida committed
273
       the output time stamp to the last contributing timestep.
274
275
276
     * eof, eof3d: use area weights instead of no weights
       Use the environment variable CDO_WEIGHT_MODE=off to switch back to
       the non weighted version
277
   Fixed bugs:
278
     * gradsdes: grib index file is empty (introduced in 1.6.7)
Uwe Schulzweida's avatar
Uwe Schulzweida committed
279
     * grib2 output: segfaults when writing grib2 files [Bug #5351]
280
     * remapnn: Segmentation fault for extrapolation of regular 2D source grids [Bug #5448]
281

282
Version 1.6.7 (12 December 2014):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
283
284

   Fixed bugs:
285
     * intlevel3d: does not work
Uwe Schulzweida's avatar
Uwe Schulzweida committed
286
287
     * GRIB_API: segfaults when writing grib2 files [Bug #5351]

Uwe Schulzweida's avatar
Uwe Schulzweida committed
288
Version 1.6.6 (27 November 2014):
289

Uwe Schulzweida's avatar
Uwe Schulzweida committed
290
291
   New operators:
     * outputtab: table output
292
   Fixed bugs:
293
294
     * option -t table: segmentation fault if parameter table entry longname is missing
     * merge: check number of timesteps [Bug #5338]
295
     * seasmean: sets all time_bnds to the same values [Bug #5329]
296
297
298
     * histcount: doesn't recognize missing values
     * filesdes: doesn't work for GRIB2 files [Bug #5307]

299
Version 1.6.5 (23 October 2014):
300

301
302
303
   New operators:
     * distgrid: distribute horizonal grid
     * collgrid: collect horizontal grid
304
   Changed operators:
305
     * cat: added support for option -O (overwrite existing output file)
306
     * remaplaf: changed calculation of weights from SCRIP to YAC
307
308
   Fixed bugs:
     * gridarea: added support for concave grid cells
309
     * gradsdes: added support for option 365_day_calendar
310
     * import_binary: option 365_day_calendar does not work
311
312
     * select: wrong result when select only one timestep

Uwe Schulzweida's avatar
Uwe Schulzweida committed
313
Version 1.6.4 (26 June 2014):
314
315

   New features:
316
317
     * Option --history: Do not append to netCDF "history" global attribute
     * Option --netcdf_hdr_pad <nbr>: Pad netCDF output header with nbr bytes
318
   New operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
319
320
     * setpartabn: set parameter table by name
     * setpartabp: set parameter table by parameter ID
321
322
     * sealevelpressure: sea level pressure
   Changed operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
323
     * Sinfo: changed format of grid and zaxis section
Uwe Schulzweida's avatar
Uwe Schulzweida committed
324
     * Filter: disable zero-padding
325
     * diff: print number of different values
326
     * Ymonstat: sorts output by month of year
Uwe Schulzweida's avatar
Uwe Schulzweida committed
327
   Fixed bugs:
328
     * eof3d: set sum of weights to 1
Uwe Schulzweida's avatar
Uwe Schulzweida committed
329
330
     * eofcoeff: remove scaling with grid cell area weights
     * eofcoeff3d: remove scaling with grid cell area weights
331

332
Version 1.6.3 (18 February 2014):
333

334
   New features:
335
     * remapbil, remapbic, remapdis, remapnn: performance optimization for regular 2D source grids
336
     * gradsdes: added support for GRIB files >2GB
337
338
     * eca_csu: added number of csu periods with more than 5days per time period
     * eca_cfd: added number of cfd periods with more than 5days per time period
339
     * expr: select variables by name
340
341
   Changed operators:
     * gradsdes: added parameter map_version and removed specific operators gradsdes1 and gradsdes2
342
   Fixed bugs:
343
     * gradsdes: changed LCC to LCCR in PDEF definition [Bug #4344]
344
     * cat: "Segmentation fault" if the output file already exist [Bug #4291]
345
346
     * delete: parameter level does not work [Bug #4216]

Uwe Schulzweida's avatar
Uwe Schulzweida committed
347
Version 1.6.2 (12 November 2013):
348

349
350
351
   New features:
     * select: added support for key >timestep_of_year<
     * mastrfu: added missing value support
352
     * splitmon: added optional parameter to set the format string for the month
353
354
   Fixed bugs:
     * selyear: wrong result for negative years [Bug #3836]
355
     * eca_gsl: start date of growing season is wrong if the length of growing season is zero
356

357
Version 1.6.1 (27 June 2013):
358

359
360
   New features:
     * support of blanks in filenames and parameter
361
   Changed operators:
362
     * gradsdes: added support for netCDF files
363
     * Info: add chunking information of netcdf files (only with verbose output) [Feature #3489]
364
     * select: added support for key >hour<
365
366
   Fixed bugs:
     * fldcor: check missing value of 2. input file
367
     * enscrps: wrong result since CDO version 1.5.6 [Bug #3403]
368
     * selmon: month not found for negative years [Bug #3439]
369
     * shifttime: wrong result for negative hours and days [Bug #3440]
370
     * inttime: removes last time step [Bug #3611]
371

Uwe Schulzweida's avatar
Uwe Schulzweida committed
372
Version 1.6.0 (14 March 2013):
373
374

   New operators:
375
     * select: Select fields from an unlimited number of input files
Uwe Schulzweida's avatar
Uwe Schulzweida committed
376
     * mergegrid: Merge horizontal grids
Uwe Schulzweida's avatar
Uwe Schulzweida committed
377
     * yearmonmean: yearly mean from monthly data
Uwe Schulzweida's avatar
Uwe Schulzweida committed
378
     * duplicate: Duplicates a dataset
Uwe Schulzweida's avatar
Uwe Schulzweida committed
379
380
     * adisit: Potential temperature to in-situ temperature
     * rhopot: Calculates potential density
381
   Changed operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
382
383
384
     * setcalendar: changed CDO calendar names to CF calendar names (Feature #3123)
                    (standard, proleptic_gregorian, 360_day, 365_day, 366_day)
     * masklonlatbox: added support for curvilinear grids
385
     * diff: print only records that differ
386
   Fixed bugs:
387
     * sellonlatbox: wrong result with overlapped lonlatbox on curvilinear grids
Uwe Schulzweida's avatar
Uwe Schulzweida committed
388
     * ensrkhisttime: fixed memory fault
389
     * expr: wrong result for operation var1/var2 where var2 = 0
390
     * Runstat: added support for time bounds (Bug #3127)
391
     * merge: uses size of the first input file for the output buffer
392

Uwe Schulzweida's avatar
Uwe Schulzweida committed
393
Version 1.5.9 (17 December 2012):
394
395
396

   New features:
     * cdo option -z zip: added optional compression level -z zip[_1-9]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
397
     * cdo: added option -k <chunktype> to set the chunk type to auto, grid or lines
398
     * Added workaround to combine CDO operators with the result of mergetime, merge, copy, cat, ens<STAT>
Uwe Schulzweida's avatar
Uwe Schulzweida committed
399
       - use one input parameter with wildcards in single quotes, e.g.: 'ifile?_*' 
400
401
   Changed operators:
     * enlarge: added missing value support
402
   Fixed bugs:
403
     * gradsdes: failed
404
     * sellevel: loosing level bounds
405
406
407
     * wrong result for user defined lonlat grids with xfirst < 0
       (This bug was introduced in CDO version 1.5.8)

408
Version 1.5.8 (30 October 2012):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
409

410
   New features:
411
     * Added support for netCDF4(HDF5) formatted SCRIP grid description files
412
413
     * added CDO option -L to lock all I/O calls. This option is neccessary if external I/O libraries like 
       netCDF4 (HDF5) were installed without thread-safe support.
414
415
416
   New operators:
     * setunit: Set variable unit
     * chunit:  Change variable unit
Uwe Schulzweida's avatar
Uwe Schulzweida committed
417
   Changed operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
418
     * Info:  changed output format
Uwe Schulzweida's avatar
Uwe Schulzweida committed
419
     * Sinfo: changed output format
Uwe Schulzweida's avatar
Uwe Schulzweida committed
420
     * Diff:  changed output format
421
   Fixed bugs:
422
     * remaplaf: fixed bug in binary_search_int()
423
     * eca_rr1: result has wrong long name attribute
Uwe Schulzweida's avatar
Uwe Schulzweida committed
424

425
426
427
Version 1.5.6.1 (26 July 2012):

   Fixed bugs:
428
429
430
431
432
433
434
     * Wrong results with the following statistical functions:
         *mean, *avg, *sum, *var, *std
       only if all of the following conditions are complied:
         - x86_64 machine (tornado, squall, thunder, lizard)
         - dataset has no missing values
         - the horizontal grid size is > 1 and not multiple of 8
       This bug was introduced in CDO version 1.5.6.
435

436
Version 1.5.6 (23 July 2012):
437

438
439
440
441
442
   New features:
     * Runstat: OpenMP parallelization over parameter nts
     * import_binary: added support for 64-bit floats via extra OPTION keyword flt64 
   New operators:
     * showunit: show unit of a parameter
443
   Changed operators:
444
     * Arith: added support for 3D masks
445
446
     * mastrfu: use grid coordinates from input file
   Fixed bugs:
447
     * ymonsub: added support for time bounds
448
     * Wrong netCDF output for unscaled uint8, int8, int16, int32 variables [Bug #2516]
Uwe Schulzweida's avatar
Uwe Schulzweida committed
449

Uwe Schulzweida's avatar
Uwe Schulzweida committed
450
Version 1.5.5 (15 May 2012):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
451
452
453

   New operators:
     * yhouradd, yhoursub, yhourmul, yhourdiv: Multi-year hourly arithmetic
454
455
   Fixed bugs:
     * ECA operators: wrong result if missing value is not the default missing value (-9e33)
456
     * ml2pl: added support for GRIB2 parameter names
457
     * replace: removed debug output 
Uwe Schulzweida's avatar
Uwe Schulzweida committed
458

Uwe Schulzweida's avatar
Uwe Schulzweida committed
459
Version 1.5.4 (30 January 2012):
460

461
462
   New features:
     * setgridtype: added parameter lonlat to convert curvilinear to regular lon/lat grids
463
     * remapcon: added env REMAP_AREA_MIN, to set the minimum area fraction
464
465
   New operators:
     * timcovar: covariance over time
466
     * fldcovar: covariance in grid space
467
   Fixed bugs:
468
     * splitsel: added support for constant fields [Bug #1701]
469
     * combination of selection commands (e.g. selmon -selyear) do not terminate, if no result found [Bug #1640]
470

471
Version 1.5.3 (20 October 2011):
472

473
   New features:
474
     * Variable input parameter for ECA operators: eca_cdd, eca_cwd, eca_rr1, eca_sdii
475
   Fixed bugs:
476
     * deflate compression with netCDF4 doesn't work (option: -z zip)
477
     * sellonlatbox: correct lon bounds if necessary
Uwe Schulzweida's avatar
Uwe Schulzweida committed
478
     * ifthen, ifthenelse: uses only the first time step of the first input file
479
     * module Monarith (monadd, monsub, monmul, mondiv): wrong result for 3D variables
480

Uwe Schulzweida's avatar
Uwe Schulzweida committed
481
Version 1.5.2 (22 August 2011):
482
483
484

   New features:
     * replace: added support to replace single levels
485
486
487
488
   Changed operators:
     * remapeta: Changed minimum pressure level for condensation from 1000Pa to 0Pa.
                 Use the environment variable REMAPETA_PTOP to set the minimum pressure level for condensation. 
                 Above this level the humidity is set to the constant 1.E-6.
489
   Fixed bugs:
490
     * invertlat: bug fix for CURVILINEAR grids
491
     * ymon<stat>: preserve time axis attributes (type and calendar)
492
     * import_binary: added support for OPTION ZREV
493
494
     * expr/exprf: wrong result for expression 'constant-field' and 'constant/field' (e.g. 1-field)
                   This bug was introduced in CDO version 1.5.1.
495
496
497
498
499
     * eof, eoftime, eofspatial, eof3d - Empirical Orthogonal Functions: 
            There was a bug in the calculation of the Frobenius norm, which has only been triggered in some cases
            when using a low precision. The normalization has been changed thus that the eigenvectors are not weighted 
            and their absolute is 1. The default settings for convergence have been changed to be more conservative:
            CDO_SVD_MODE=jacobi    MAX_JACOBI_ITER=12   FNORM_PRECISION=1.e-12
500

Uwe Schulzweida's avatar
Uwe Schulzweida committed
501
Version 1.5.1 (12 July 2011):
502

503
504
   New features:
     * Added support for netCDF4 classic format; option -f nc4c
505
     * import_binary: Added support for 1 and 2 byte integer
506
   New operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
507
     * intlevel3d: vertical interpolation to/from 3d vertical coordinates
508
509
510
511
512
     * ensrkhistspace: Ranked Histogram averaged over time
     * ensrkhisttime:  Ranked Histogram averaged over space
     * ensroc:  Ensemble Receiver Operating characteristics
     * enscrps: Ensemble CRPS and decomposition
     * ensbrs:  Ensemble Brier score
513
   Fixed bugs:
514
     * Exprf: wrong result for missing values != (double) -9.e33
515
     * detrend: added support for time bounds
516
     * Filter: added support for time bounds
517
     * eofspatial: integer overflow; wrong result for grid size > 46340
518
     * eca_*: use the input calendar for the output streams
519

Uwe Schulzweida's avatar
Uwe Schulzweida committed
520
Version 1.5.0 (15 March 2011):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
521

Uwe Schulzweida's avatar
Uwe Schulzweida committed
522
   New features:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
523
     * GRIB2 support via ECMWF GRIB_API
Uwe Schulzweida's avatar
Uwe Schulzweida committed
524
     * Added support for netCDF level bounds
525
     * Added option -O to overwrite existing output file (only for ens<STAT>, merge, mergetime)
526
527
528
   New operators:
     * selparam: Select parameters by identifier
     * delparam: Delete parameters by identifier
529
     * splitparam: Split parameter identifiers
530
     * chparam: Change parameter identifier
531
532
   Changed operators:
     * expr: added functions abs(), int(), nint(), sqr()
533
534
535
     * sinfo: changed output of table and code number to parameter identifier
     * info:  changed output of code number to parameter identifier
     * diff:  changed output of code number to parameter identifier
Uwe Schulzweida's avatar
Uwe Schulzweida committed
536
   Fixed bugs:
537
     * sellonlatbox: does not work as expected when selecting all longitudes
538
     * sellonlatbox: initialization missing for unstructured grids
539
     * ml2pl and ml2hl: wrong result if input file contains full *and* half level data
540
     * trend and detrend: integer overflow; wrong result for ntimesteps > 46340
541
     * spcut: only correct results with continuous wave numbers starting at 1
542
     * remaplib: fixed data race in calculation of bin_addr (OpenMP)
Uwe Schulzweida's avatar
Uwe Schulzweida committed
543

544
Version 1.4.7 (06 January 2011):
545

546
547
   New features:
     * improved support for netCDF output from WRF model (import time and grid variables)
548
549
   New operators:
     * ydayadd, ydaysub, ydaymul, ydaydiv: Multi-year daily arithmetic
550
     * eca_pd: Precipitation days index per time period
551
     * dv2ps: Divergence and vorticity to velocity potential and stream function
552
553
   Changed operators:
     * import_cmsaf: added time information also for time constant fields
554
   Fixed bugs:
555
556
     * eof: fix memory access violation
     * eofcoeff: fix memory access violation
557
     * fldmean: gives wrong result for grid units [radian]
558
     * Yseasstat: bug fix for datasets with time constant fields
559
560
     * sellevel: fix problem with hybrid model levels and netCDF output
     * sellonlatbox: fix rounding error of the last lon index
561
     * Settime: bug fix for time independent variables in combination with other operators (pipes)
562

Uwe Schulzweida's avatar
Uwe Schulzweida committed
563
Version 1.4.6 (17 September 2010):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
564

565
   New features:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
566
     * Using libtool for linking (rpath)
567
     * Changed predefined gaussian grid names from t<RES>grid to n<N>
568
       Use n80 instead of t106grid to define a Gaussian N80 grid
569
     * Changed percentile parameter type from integer to float
Uwe Schulzweida's avatar
Uwe Schulzweida committed
570
571
572
573
   New operators:
     * bandpass: Bandpass filtering
     * lowpass:  Lowpass filtering
     * highpass: Highpass filtering
574
   Changed operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
575
     * eca_gsl: adjust implementation to fit definition by ECA
576
     * expr, exprf: added missing values support
577
   Fixed bugs:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
578
     * sellevel: copy zaxis meta data name and units
579
     * seldate: open output file only when time steps found
580
     * sellonlatbox: fix rounding error of the last lon index
Uwe Schulzweida's avatar
Uwe Schulzweida committed
581
582

Version 1.4.5.1 (05 July 2010):
583

Uwe Schulzweida's avatar
Uwe Schulzweida committed
584
585
   New features:
     * GRIB1 decode: Correct ZeroShiftError of simple packed spherical harmonics
586
   Fixed bugs:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
587
     * wrong result of SZIP compressed GRIB1 records with 24 bit packing and a compression ratio < 1.05 
588

Uwe Schulzweida's avatar
Uwe Schulzweida committed
589
Version 1.4.5 (28 June 2010):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
590
591
592
593
594

   New operators:
     * eof: Calculate EOFs in spatial or time space
     * eoftime: Calculate EOFs in time space
     * eofspatial: Calculate EOFs in spatial space
Uwe Schulzweida's avatar
Uwe Schulzweida committed
595
     * eofcoeff: Principal coefficients of EOFs
Uwe Schulzweida's avatar
Uwe Schulzweida committed
596
597
     * consecsum: Consecutive Sum
     * consects: Consecutive Timesteps
Uwe Schulzweida's avatar
Uwe Schulzweida committed
598
     * setvals: Set list of old values to new values
Uwe Schulzweida's avatar
Uwe Schulzweida committed
599

Uwe Schulzweida's avatar
Uwe Schulzweida committed
600
Version 1.4.4 (29 April 2010):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
601

Uwe Schulzweida's avatar
Uwe Schulzweida committed
602
603
604
   New operators:

     * fldcor: correlation in grid space
Uwe Schulzweida's avatar
Uwe Schulzweida committed
605
     * timcor: correlation over time
Uwe Schulzweida's avatar
Uwe Schulzweida committed
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
     * gridbox<stat>: computes statistical values over surrounding grid boxes

   Changed operators:

     * import_binary: added support for variables with different number of levels
     * random: added optional parameter 'seed'

   Fixed bugs:

     * standard deviation: changed the result from missval to zero, if variance is zero
     * fldsum: change result from 0 to missval, if only missing values found
     * intyear: set the interpolation result always to missval, if missing values found
     * Added support for netCDF time bounds
     * sellonlatbox: parameter lon2 was not inclusiv
     * expr: added support for calculations of const/var
     * setday: writes sometimes wrong date information with GRIB result from afterburner
     * inputsrv: added level information
     * merge: added support to merge levels with datasets in netCDF format
Uwe Schulzweida's avatar
Uwe Schulzweida committed
624

625
626
627
Version 1.4.3 (22 February 2010):

   * New features:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
628
629
      o using CDI library version 1.4.3
        improved GRIB1 support and performance
630
631
      o changed GRIB1 default packing type of spherical harmonics to complex

Uwe Schulzweida's avatar
Uwe Schulzweida committed
632
633
634
635
636
637
638
639
640
641
Version 1.4.2 (8 February 2010):

   * Changed operators:
      o remapcon, remaplaf: speed up by fast store of links
      o replace: added support for time constant fields
      o module Genweights: use netCDF2 (64bit) for large remap weights files
      o module Zonstat, Merstat: added support for generic grids
      o module Ensstat: don't overwrite existing files
      o import_cmsaf: added more corrections for wrong projection parameter

Uwe Schulzweida's avatar
Uwe Schulzweida committed
642
643
644
Version 1.4.1 (15 December 2009):

   * New features:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
645
646
      o using CDI library version 1.4.1
        improved GRIB and netCDF support and performance
Uwe Schulzweida's avatar
Uwe Schulzweida committed
647
648
649
650
651
652
653
654
655
   * New operators:
      o splittabnum - Split parameter table numbers
      o sethalo - Set the left and right bounds of a field
   * Changed operators:
      o merge, mergetime: don't overwrite existing files
      o showtime: removed output of date, only print time string hh:mm:ss
   * Fixed bugs:
      o remap: bug fix for weights from gennn (set remap_extrapolate = TRUE)

Uwe Schulzweida's avatar
Uwe Schulzweida committed
656
Version 1.4.0.1 (21 October 2009):
657
658

   * Fixed bugs:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
659
      o seltime: bug fix for scanning of input parameter
660
661
662
      o IEG format: bug fix for identification of lonlat grids
      o GRIB format: bug fix for decoding of missing values (scalar version only)

Uwe Schulzweida's avatar
Uwe Schulzweida committed
663
664
665
666
667
668
669
670
671
672
673
674
675
676
Version 1.4.0 (5 October 2009):

   * New features:
      o added support of time units 'seconds' to all operators
   * New operators:
      o Import binary data sets (via a GrADS data descriptor file) - import_binary
      o Set valid range - setvrange
   * Changed operators:
      o gridarea: added support for hexagonal GME grid and tripolar MPIOM grid
      o remapnn: added support for unstructured grids without bounds (full grid search)
      o Seasstat: added env. CDO_SEASON_START to set the start month of seasons
      o ieg format: added support for Gaussian grids
   * Fixed bugs:
      o shifttime: bug fix for negative time increments
Uwe Schulzweida's avatar
Uwe Schulzweida committed
677
      o import_cmsaf: read native float datatype
Uwe Schulzweida's avatar
Uwe Schulzweida committed
678

Uwe Schulzweida's avatar
Uwe Schulzweida committed
679
680
681
682
683
684
685
686
687
688
689
690
691
692
Version 1.3.2 (15 June 2009):

   * New features:
      o Changed compiler to ANSI C99
      o Added option -Q to sort netCDF variable names
   * Changed operators:
      o splitsel: changed the number of output digits from 3 to 6
      o remapeta: correct humidity up to highest level *nctop* where condensation is allowed
      o remapcon: change max_subseg from 1000 to 100000
   * Fixed bugs:
      o settaxis: bug fix for time increment 'months'
      o remaplaf: fixed buffer overflow
      o remapdis, remapnn: set num_srch_bins to 1 if REMAP_EXTRAPOLATE=OFF

Uwe Schulzweida's avatar
Uwe Schulzweida committed
693
Version 1.3.1 (16 April 2009):
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711

   * New features:
      o The default calendar is now set to "proleptic gregorian".
        To use a standard calendar set the environment variable CDI_CALENDAR=standard.
      o Added support for Lambert Conformal Conic projections
      o Added support for missval = NaN
   * Changed operators:
      o ml2pl: added support for Geopotential Height
      o Settime: added "seconds" support to operator "settunits", "settaxis" and "shifttime"
      o percentile: change default number of bins from 100 to 101
   * Fixed bugs:
      o import_cmsaf: bug fix for datasets with gain/offset and more than 1 timestep
      o remaplaf: bug fix for fields with missing values
      o remapnn: bug fix for distance equal zero
      o mermean: bug fix for weights from 'zonmean' (cdo mermean -zonmean)
      o chlevel: fixed bug that happens when the list of oldlev,newlev 
                 contains the same level more than once

712
Version 1.3.0 (15 January 2009):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
713
714
715
716
717
718
719

   * New features:
      o add support for Sinusoidal and Lambert Azimuthal Equal Area projections
   * New operators:
      o Second order conservative remapping - remapcon2
      o Nearest neighbor remapping - remapnn
      o Largest area fraction remapping - remaplaf
720
      o Reciprocal value - reci
Uwe Schulzweida's avatar
Uwe Schulzweida committed
721
722
723
724
   * Changed operators:
      o import_cmsaf: add support for monthly mean diurnal cycle
      o remap: set num_srch_bins to nlat/2 (speedup)
   * Fixed bugs:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
725
      o setzaxis: changed datatype from float to double
Uwe Schulzweida's avatar
Uwe Schulzweida committed
726
727
728
729
      o sellonlatbox: bug fix for curvilinear grids
      o merge: bug fix for usage in CDO pipes
      o gridarea, gridweights: bug fix for gridboxes with delta lon >= 180 degree
      o intlevel: bug fix for datasets with missing values
730
      o yseasstd, yseasvar: fixed wrong array index
Uwe Schulzweida's avatar
Uwe Schulzweida committed
731

Uwe Schulzweida's avatar
Uwe Schulzweida committed
732
Version 1.2.1 (13 November 2008):
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749

   * New features:
      o Option '-u' to determinate whether to overwrite existing files
   * New operators:
      o Import CM-SAF files - import_cmsaf
      o Mathematical function 'power' - pow
   * Changed operators:
      o sellonlatbox: add support for grid type 'CELL' and units 'radians'
      o remapdis: add support for grid type 'CELL' without bounds (full grid search)
      o Timstat: use time axis with bounds from input
      o copy, cat: concatenate time constant fields
   * Fixed bugs:
      o zonvar: activation was missing
      o ifthen:  bug fix for datasets with different missing values
      o runmean: bug fix for datasets with missing values

Version 1.2.0 (13 August 2008):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764

   * New features:
      o add support for netCDF4 classic with deflate (option -z zip)
   * New operators:
      o Linear level interpolation - intlevel
      o Invert levels - invertlev
      o Select levels by index - sellevidx
      o Import AMSR binary files - import_amsr
   * Changed operators:
      o remapeta: add missing value support
   * Fixed bugs:
      o Operator yseasmean, yhourmean and ydaymean: bug fix for datasets with missing values
      o Module Ninfo and Showinfo: bug fix for datasets with time constant parameter only
        Affected operators: ndate, nmon, nyear, showdate, showtime, showmon, showyear

Uwe Schulzweida's avatar
Uwe Schulzweida committed
765
Version 1.1.1 (8 April 2008):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
766

Uwe Schulzweida's avatar
Uwe Schulzweida committed
767
   * New features:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
768
      o Module Vertint: add support for GME data
Uwe Schulzweida's avatar
Uwe Schulzweida committed
769
770

   * New operators:
771
      o Regression - regres
772
      o Grid cell area/weights - gridarea, gridweights
Uwe Schulzweida's avatar
Uwe Schulzweida committed
773
774
775
776
777
      o Z-axis description - zaxisdes

   * Fixed bugs:
      o Module Exprf: using MT safe version of bison and flex
      o Module Vertint: bug fix for input with time constant fields
Uwe Schulzweida's avatar
Uwe Schulzweida committed
778
      o Module Arithc: recalculate number of missing values
Uwe Schulzweida's avatar
Uwe Schulzweida committed
779
780
      o Operator splitsel: bug fix for multilevel/multivar datasets

Uwe Schulzweida's avatar
Uwe Schulzweida committed
781
782
Version 1.1.0 (25 January 2008):

Uwe Schulzweida's avatar
Uwe Schulzweida committed
783
   * New features:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
784
785
      o Support for Lambert conformal grids in GRIB format
      o Improved support for netCDF attributes
786
787
788
789

   * New operators:
      o Monthly arithmetic - monadd, monsub, monmul, mondiv

Uwe Schulzweida's avatar
Uwe Schulzweida committed
790
791
792
793
794
795
   * Fixed bugs:
      o Operator setlevel and chlevel: bug fix for usage in pipes
      o Operator cat: bug fix for large existing output files (>2GB) on 32-bit machines
      o Operator gradsdes: bug fix for monthly mean data with start day > 28
      o Operator expr: change exponent precedence from left to right

Uwe Schulzweida's avatar
Uwe Schulzweida committed
796
Version 1.0.9 (22 October 2007):
797
798
799
800

   * New operators:
      o Multi-year hourly statistical values
         - yhourmin, yhourmax, yhoursum, yhourmean, yhouravg, yhourstd, yhourvar
Uwe Schulzweida's avatar
Uwe Schulzweida committed
801
802
803
   * Changed operators:
      o ymonstat: write original order of timesteps
      o gradsdes: add GRIB level type to VARS
804
805
806
807
   * Fixed bugs:
      o Operator ifthen: bug fix for masks that varies not with time


Uwe Schulzweida's avatar
Uwe Schulzweida committed
808
Version 1.0.8 (27 June 2007):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
809
810

   * New operators:
811
      o Remap vertical hybrid level - remapeta
Uwe Schulzweida's avatar
Uwe Schulzweida committed
812
      o 9 point smoothing - smooth9
Uwe Schulzweida's avatar
Uwe Schulzweida committed
813
      o Mask region - maskregion
Uwe Schulzweida's avatar
Uwe Schulzweida committed
814
815
816
      o Split selected time steps - splitsel
      o Set range to constant - setrtoc, setrtoc2
      o Histogram - histcount, histsum, histmean, histfreq
Uwe Schulzweida's avatar
Uwe Schulzweida committed
817
818
      o Show GRIB level types - showltype
      o Select GRIB level types - selltype
Uwe Schulzweida's avatar
Uwe Schulzweida committed
819
      o Set GRIB level type - setltype
Uwe Schulzweida's avatar
Uwe Schulzweida committed
820
821
822
   * Changed operators:
      o Renamed chvar, selvar, delvar, showvar, setvar and splitvar
             to chname, selname, delname, showname, setname and splitname
823
824
825
      o Renamed selmin, selmax, selsum, selmean, selavg, selvar, selstd
             to timselmin, timselmax, timselsum, timselmean, timselavg, timselvar, timselstd
      o Renamed selpctl to timselpctl
Uwe Schulzweida's avatar
Uwe Schulzweida committed
826
      o Renamed nvar to npar and vardes to pardes
827
828
829
   * Fixed bugs:
      o Module Ymonstat gave wrong results with missing values
        Affected operators: ymonmean, ymonstd, ymonvar
Uwe Schulzweida's avatar
Uwe Schulzweida committed
830
      o Library ieglib has had a memory leak for IEG output
Uwe Schulzweida's avatar
Uwe Schulzweida committed
831

Uwe Schulzweida's avatar
Uwe Schulzweida committed
832
Version 1.0.7 (8 March 2007):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
833
834

   * New operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
835
836
      o Divergence and vorticity to U and V wind (linear) - dv2uvl
      o U and V wind to divergence and vorticity (linear) - uv2dvl
Uwe Schulzweida's avatar
Uwe Schulzweida committed
837
      o Select single month - selsmon
Uwe Schulzweida's avatar
Uwe Schulzweida committed
838
839
840
841
842
843
   * Changed operators:
      o tchill is renamed to wct
      o eca_strwind is split into eca_strwin, eca_strbre, eca_strgal and eca_hurr
   * Fixed bugs:
      o fldmax has had wrong results if the field has
        missing values and all other values are less than zero.
Uwe Schulzweida's avatar
Uwe Schulzweida committed
844

Uwe Schulzweida's avatar
Uwe Schulzweida committed
845
846
847
848
849
850
851
852
Version 1.0.6 (12 December 2006):

   * New operators:
      o Variance for all statistic modules
         - vertvar, timvar, yearvar, monvar, dayvar, hourvar,
           runvar, seasvar, selvar, ydayvar, ydrunvar, ymonvar, yseasvar

Developer version 1.0.5 (30 November 2006):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
853
854

  * New operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
855
856
857
858
859
      o Show file format - showformat 
      o Windchill temperature - tchill
      o Humidity index - hi
      o ECA Indices of Daily Temperature and Precipitation Extremes
        - eca_* (37 different indices!)
Uwe Schulzweida's avatar
Uwe Schulzweida committed
860

Uwe Schulzweida's avatar
Uwe Schulzweida committed
861
Developer version 1.0.4 (7 November 2006):
Uwe Schulzweida's avatar
Uwe Schulzweida committed
862
863

  * New operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
864
865
866
867
868
869
870
871
      o Multi-year daily running statistical values
         - ydrunmin, ydrunmax, ydrunsum, ydrunmean, ydrunavg, ydrunstd
      o Percentile values for different time ranges
         - timpctl, hourpctl, daypctl, monpctl, yearpctl, selpctl, runpctl, seaspctl
      o Multi-year percentile values
         - ydaypctl, ymonpctl, yseaspctl, ydrunpctl
      o Ensemble and field percentiles
         - enspctl, fldpctl, zonpctl, merpctl
Uwe Schulzweida's avatar
Uwe Schulzweida committed
872

Uwe Schulzweida's avatar
Uwe Schulzweida committed
873
Developer version 1.0.3 (3 November 2006):
874
875

  * New operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
876
877
      o Time interpolation - intntime 
      o Backward transformation of velocity components U and V from MPIOM - mrotuvb
878

879
880
881
882
883
884
885
Version 1.0.2 (18 September 2006):

  * Rename operator gradsdes to gradsdes1 and set the alias gradsdes to gradsdes2
  * Remapping of rotated lonlat grids with remapbi* and genbi* has been changed at the bounds.
    Generated interpolation weights with older CDO versions can't be used anymore and must
    be recalculated with genbi*.
  * New operators:
Uwe Schulzweida's avatar
Uwe Schulzweida committed
886
887
888
      o ydaysum - Multi-year daily sum
      o ymonsum - Multi-year monthly sum
      o yseassum - Multi-year seasonally sum
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
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
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
      o int - Convert to integer value
      o nint - Convert to nearest integer value

Version 1.0.1 (1 August 2006):

  * New CDO option '-b' to set the number of bits for the output precision
  * New operators:
      o selstdname - Select standard names
      o showstdname - Show standard names
      o setclonlatbox - Set a longitude/latitude box to constant [Etienne Tourigny]
      o setcindexbox - Set an index box to constant

Version 1.0.0 (15 June 2006):

  * New operators:
      o dv2ps - Divergence and vorticity to velocity potential and stream function

Version 0.9.13 (4 May 2006):

  * New operators:
      o mergetime - Merge datasets sorted by date and time
      o input, inputext, inputsrv - ASCII input
      o abs - Absolute value
      o atan2 - Arc tangent of two fields

Version 0.9.12 (6 March 2006):

  * New operators:
      o uv2dv, dv2uv - Wind transformation

Version 0.9.11 (1 Februar 2006):

  * Support of GME grids
  * New operators:
      o selmin, selmax, selsum, selmean, selavg, selstd - Time range statistic
      o sp2gpl, gp2spl - Spectral transformation of TL-Model data (e.g. ERA40)
      o replace - Replace variables

Version 0.9.10 (19 December 2005):

  * Support of REMO IEG format
  * New operators:
      o ifthenelse - IF ifile1 THEN ifile2 ELSE ifile3

Version 0.9.9 (19 October 2005):

  * New operators:
      o ensmin, ensmax, enssum, ensmean, ensavg, ensstd, ensvar - Ensemble statistic
      o gradsdes2 - Creates a GrADS data descriptor file with a portable GrADS map
      o enlarge - Enlarge all fields to a user given grid
      o gencon - Generate conservative interpolation weights
      o remap - Remapping with the interpolation weights from a netCDF file 

Version 0.9.8 (19 July 2005):

  * New operators:
      o setlevel - Set level
      o chlevel - Change level 
      o chlevelc - Change level of one code
      o chlevelv - Change level of one variable

Version 0.9.7 (26 May 2005):

  * New operators:
      o setcalendar - Set calendar
      o masklonlatbox - Mask lon/lat box
      o maskindexbox - Mask index box
      o muldpm - Multiply with days per month
      o divdpm - Divide with days per month
 

Version 0.9.6 (4 April 2005):

  * Support of rotated regular grids.
  * New operator:
      o detrend - Linear detrending of time series. 

Version 0.9.4 (3 Jan 2005):
 
  * Support of PINGO grid description files. 
  * New operator: 
      o gradsdes - Creates a GrADS data descriptor file.
                   Supported file formats are GRIB, SERVICE and EXTRA.