File: NEWS

package info (click to toggle)
cdo 2.5.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 49,964 kB
  • sloc: cpp: 180,221; ansic: 95,352; sh: 7,292; f90: 6,089; makefile: 1,975; ruby: 1,078; csh: 1,020; python: 995; fortran: 319; pascal: 219; perl: 9
file content (1355 lines) | stat: -rw-r--r-- 57,801 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
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
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
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
CDO NEWS
--------

Version 2.6.0 (20 Feb 2026):

   New features:
     * option --async_read <true|false> to read input data asynchronously.
       Available for the operators: diff, info, trend, detrend, Timstat

Version 2.5.4 (20 Nov 2025):

   New features:
     * expr: added function trimrel(x,kb) and trimabs(x,err)
     * distgrid/collgrid: added support for datasets with multiple different grids
     * added support for blanks in filenames
     * added support for NetCDF CF-conform HEALPix grids
   Fixed bugs:
     * include of cstdlib missing (compiler error with clang-21)

Version 2.5.3 (16 Jul 2025):

   New features:
     * fldmin/fldmax: added parameter verbose=true to print lon/lat coordinates of min/max value
   New operators:
     * New operator setstdname -  Set standard name
   Fixed bugs:
     * ensmin/ensmax: incorrect result for 64-bit NetCDF output with missing values, since release 2.4.2
     * mergetime: failed in combination with other operators if the first input has only one timestep
     * select: dead lock with constant fields and multiple files
     * distgrid: openMP loop failed

Version 2.5.2 (16 May 2025):

   New features:
     * option --chunkspec to specify chunking for dimensions x,y,z,t
     * option --print_filename to print name of all output files
     * collgrid: Added parameter name and levidx
   New operators:
     * setchunkspec - Specify chunking per variable
     * showchunkspec - Show chunking specification
     * air_density - Air density
   Fixed bugs:
     * inttime: segfaults on Int16 data since release 2.4.1 [Bug #12138]
     * timpctl: Short integer overflow for CDO_PCTL_NBINS>32768
     * enable-hirlam-extensions failed since release 2.5.1
     * Input: failed with more than one input record

Version 2.5.1 (5 Mar 2025):

   New operators:
     * cinfo: Compact information listed by parameter name
   Fixed bugs:
     * detrend: failed if missing_value is between 0 and numSteps
     * remapcon: env.var. REMAP_AREA_MIN failed since release 2.4.0
     * consects/consecsum: wrong result since release 2.4.0 [Bug #12030]

Version 2.5.0 (28 Nov 2024):

   New features:
     * Added support for non-thread-safe NetCDF4/HDF5 library
     * Remapstat: added support for unstructured target grids
     * Timselstat: added support for parameter nskip=-1
   Fixed bugs:
     * diff: added check for NANs [Bug #11963]
     * setpartabn: convert parameter failed
     * ydrunpctl: parameter pm=r8 failed
     * remapcon: fixed problem with icon R3B9 target grids

Version 2.4.4 (18 Sep 2024):

   New features:
     * cmor: has been revised

Version 2.4.3 (14 Aug 2024):

   New features:
     * option --filter: added support of NetCDF4 filter chains
   New operators:
     * setfilter: Set NetCDF4 filter specification
     * showfilter: Print NetCDF4 filter specification
   Fixed bugs:
     * ml2pl: disable extrapolation (Incorrectly enabled in release 2.4.0)
     * Compiling failed with NetCDF < 4.8.0 in release 2.4.2 [Bug #11843]

Version 2.4.2 (21 Jun 2024):

   New operators:
     * delattribute: Delete attributes
   Fixed bugs:
     * processing of NANs failed in 2.4.1

Version 2.4.1 (21 May 2024):

   New features:
     * mergetime: added skip_same_time parameter
     * mergetime: added names parameter (union|intersect)
     * Yearstat; added complete_only parameter
     * showatttribute: changed output format
   New operators:
     * timmaxidx: Index of time maximum
     * timminidx: Index of time minimum
     * seltimeidx: Select timestep by index
     * setprojparam: Set proj_param attribute
     * dminute<stat>: Multi-day by the minute statistics
   Fixed bugs:
     * Yseasstat: failed with seasonal data since release 2.2.0
     * eca_csu/eca_cfd: fixed stack memory error which occurs with clang option -Os [Bug #11790]
     * minc/maxc: fixed wrong handling of missing values

Version 2.4.0 (22 Feb 2024):

   New features:
     * Changed to C++20
     * Add FDB (Fields DataBase) support (status: experimental)
     * Remapweights: Use environment variable REMAP_MAP3D=1 to generate all mapfiles of the first 3D field with varying masks
     * pack: add support to read pack parameters from file
     * select: allow negative numbers for parameter levidx to select level indices from the end
   New operators:
     * pressure - pressure on full-levels
     * pressure_half - pressure on half-levels
     * delta_pressure - pressure difference of half-levels
     * gheight_half - geopotential height on half-levels
   Fixed bugs:
     * after: change computation of geopotential height from full to half levels [Bug #11346]
     * expr: var statement failed
     * gradsdes: fix integer overflow in map file
     * Arith: fill mode for infile2 doesn't work with pipes [Bug #11733]
     * rotated pole mapping failed with negative north_pole_grid_longitude attribute [Bug #11661]

Version 2.3.1 (29 November 2023):

   Fixed bugs:
     * varsvar, varsstd: failed on 3D data without missing values

Version 2.3.0 (21 October 2023):

   New features:
     * Add option --shuffle - Specify shuffling of variable data bytes before compression (NetCDF)
     * packed NetCDF arrays are stored unpacked for all operators which modify the data
     * DCW regions: add support for states
     * expr: added function gridindex(x) (grid cell indices)
     * expr: add function cdoy() (day of year) and cdpy() (days_per_year)
   New operators:
     * gridcellindex - Get grid cell index from lon/lat point
     * timfillmiss: Temporal filling of missing values
     * vertfillmiss: Vertical filling of missing values
     * Add module Ymoncomp - Multi-year monthly comparison (operators: ymoneq ymonne ymonle ymonlt ymonge ymongt)
   Changed operators:
     * remapscon: obsolete operator, use remapcon instead
     * remapcon2: rename to remapscon2
     * gencon2: rename to genscon2
   Fixed bugs:
     * expr: internal functions with two constant arguments failed in release 2.2.1

Version 2.2.2 (15 August 2023):

   Fixed bugs:
     * remapping failed in release 2.2.0, if the data contains different masks
     * Module Ymonarith: failed with more than one variable in release 2.2.0
     * median: add support for missing values
     * Ymonstat: set default timestat date to LAST

Version 2.2.1 (29 June 2023):

   New features:
     * Add predefined healpix grid hpz<zoom> to create a healpix with nested index ordering via the zoom level
     * remapbil: add healpix support
     * selregion: add healpix support
     * sellonlatbox: add healpix support
     * masklonlatbox: add healpix support
     * gh2hl: add support for NextGems3 healpix/zarr data
     * gendis: add support for neighbors parameter
   Fixed bugs:
     * Reading of older remap weight files failed in release 2.2.0
     * Module splittime failed in release 2.2.0
     * Timstat: memType missmatch with option --worker

Version 2.2.0 (21 April 2023):

   New features:
     * Add support for NumPy percentile methods: midpoint, inverted_cdf, averaged_inverted_cdf, closest_observation, interpolated_inverted_cdf,
                                                 hazen, weibull, median_unbiased, normal_unbiased
     * Add predefined healpix grid hp<nside>[_<order>]
     * Add healpix grid support to Zonstat module
     * Add compression support for NetCDF4 remap weights file (-f nc4 -z <...>)
     * Add support for NetCDF4/HDF5 compression method Zstandard (cdo option -z zstd)
     * Add support for NetCDF4/HDF filter (cdo option --filter <filterId,params>)
     * Improved read performance of spatial and temporal chunked NetCDF4 data
   New operators:
     * xsinfon: Extra short information
     * hpdegrade: Degrade the resolution of a healpix grid
     * hpupgrade: Upgrade the resolution of a healpix grid
     * splitdate: Splits a file into dates
     * fldcount: Number of non-missing values of the field
     * unpack: Unpack packed data
   Changed operators:
     * sethalo: extend user interface (new parameter east/west/south/north and value)
   Fixed bugs:
     * select: Error prone evaluation of timestepmask
     * timpctl: returns missing values when input data is constant in time
     * ml2hl: Change level type to ZAXIS_ALTITUDE
     * sp2sp: Specification of the parameter fails
     * Option -t failed in release 2.1.1
     * Yseasstat: vDateTimes not initialized
     * intlevel3d: use level indices from target coordinate [Bug #11307]
     * Vertstat: wrong result for non monotonic levels in GRIB format [Bug #11323]

Version 2.1.1 (10 December 2022):

   Fixed bugs:
     * expr: Variable names with a dot followed by digits are not recognized
     * Use NetCDF4 data type NC_UINT64 for gridsize > INT_MAX
     * fldcor/fldcovar: missval=NaN not supported

Version 2.1.0 (14 October 2022):

   New features:
     * Option --chunksize: Set the chunk size of the horizonal grid
     * Option --nsb: Set number of significant bits, used for bit-rounding with NetCDF 4.9.0
     * Added support for NCZarr
     * zonmean: added support for data on unstructured grids
     * expr: replace template _ALL_ for all variable names
     * expr: renamed coordinate function cdeltaz(x) to cthickness(x)
     * expr: added function clevidx(x)
     * expr: added function sinh(x), cosh(x), tanh(x), asinh(x), acosh(x), atanh(x)
     * expr: added function mod(x,y), min(x,y), max(x,y), pow(x,y), hypot(x,y), atan2(x,y)
     * expr: added function fldrange, fldskew, fldkurt, fldmedian
     * expr: added function zonrange, zonskew, zonkurt, zonmedian
     * selindexbox: added support for negative indexing to start from the end
   New operators:
     * remap<stat> - maps source points to target cells by calculating a statistical value from the source points
     * bitrounding: Bit rounding
     * selregion: Select horizontal regions
     * Dayarith (dayadd, daysub, daymul, daydiv): Daily arithmetic
   Fixed bugs:
     * cdo 2.0.6 fails to compile with >clang12

Version 2.0.6 (11 August 2022):

   New features:
     * Changed to C++17
     * Automatic download of ICON grid files has been disabled, CDO_DOWNLOAD_PATH must be set
   Fixed bugs:
     * remabil: fix rounding errors on single precision float data [Bug #10809]
     * remapeta fails with cdo version 2.0.5 [Bug #10663]
     * Magplot: RGB parameter doesn't work
     * setcindexbox: failed for rotated_latitude_longitude grids [Bug #10639]
     * setgrid Segmentation fault [Bug #10632]

Version 2.0.5 (17 March 2022):

   Fixed bugs:
     * yseasmean calculates seasonal sum for data with missing values since release 2.0.0 [Bug #10615]
     * setattribute: delete attribute failed since release 2.0.0 [Bug #10612]
     * atan2: wrong result since release 2.0.0
     * Arith: Filling up stream2 by copying the first variable failed since release 2.0.0

Version 2.0.4 (14 February 2022):

   Fixed bugs:
     * collgrid: process coordinates of generic grids
     * read grid description file with x/y bounds failed for GRID_PROJECTION

Version 2.0.3 (12 January 2022):

   Fixed bugs:
     * after: change computation of geopotential height from half to full levels
     * gheight: change computation of geopotential height from half to full levels
     * muldpm/divdpm: wrong result since release 2.0.0

Version 2.0.2 (15 December 2021):

   Fixed bugs:
     * Arith: Filling up stream2 by copying the first timestep failed

Version 2.0.1 (18 November 2021):

   Fixed bugs:
     * ECA indices: doesn't work correctly since 1.9.10

Version 2.0.0 (29 October 2021):

   New features:
     * Changed to C++14
     * Changed to 3-clause BSD license
     * sp2gp/gp2sp: OpenMP parallelized
     * Expr: Add function cdeltaz(x)
     * Select: Add parameter levrange (level range)
     * seltimestep: Add support for negative values in range of integer parameter
     * outputtab: Add key x and y to print coordinates of the original grid
   New operators:
     * setgridcell: Set the value of a grid cell
     * selcircle: Select cells inside a circle
     * fldint: Field integral
     * bottomvalue: Select valid values at the bottom level
     * topvalue: Select valid values at the top level
     * median - ensmedian, fldmedian, mermedian, zonmedian, gridboxmedian
     * skewness - ensskew, fldskew, merskew, zonskew, gridboxskew
     * kurtosis - enskurt, fldkurt, merkurt, zonkurt, gridboxkurt
   Fixed bugs:
     * splitsel: Output sequence number starts at 0
     * import_binary: Wrong result for swap 2 byte binary data
     * import_binary: Set NetCDF reference time
     * genlaf: Gives the result of gencon
     * namelist: Add large file support

Version 1.9.10 (25 January 2021):

   New features:
     * Added option --ignore_time_bounds to ignore time bounds for time range statistics
   Fixed bugs:
     * EOF: fix wrong result with multiple OpenMP threads (data race)
     * timselmean: failed with variables on different grids [Bug #9978]
     * Ymonarith: failed with variables on different grids
     * Detrend: wrong result with parameter equal=false [Bug #9961]
     * Fldstat: optional parameter weights failed
     * Wind: check that numLPE is > 0

Version 1.9.9 (29 October 2020):

   New features:
     * New environment variable CDO_DOWNLOAD_PATH: Path where CDO stores downloads
     * New environment variable CDO_ICON_GRIDS: Root directory of the ICON grids (e.g. /pool/data/ICON)
     * splitsel: added support for negative skip values [Feature #9798]
     * showattribute: added wildcard support
     * Diff: added option maxcount=<num>: Stop after num different fields
     * Select: added parameter dom (day of month, e.g. 29feb)
     * Ymonstat: added support for option timestat_date
   New operators:
     * Yearly arithmetic: yearadd, yearsub, yearmul, yeardiv
     * apply: Apply an operator on each input file
     * gh2hl: Interpolate 3D geometric height to height levels
     * pack: Pack data (NetCDF attribute add_offset/scale_factor)
     * verifygrid: Verify grid coordinates
     * addtrend: Add trend
     * isosurface: Extract isosurface
   Changed operators:
     * intlevel3d: changed interface
   Fixed bugs:
     * Selbox: wrong result of grid cell area (if present) on curvilinear grids
     * sellonlatbox,-180,180,-90,90 "breaks" lon_bnds [Bug #9801]
     * Ensval: does not work
     * intyear: doesn't work; segmentation fault
     * intlevel3d: wrong result since v1.9.4 [Bug #9468]
     * dv2uv, uv2dv: wrong result works only on first level since v1.9.8 [Bug #9441]
     * Vertintap: process only 3D variables on hybrid sigma height coordinates with correct number of levels
     * Arith: Inconsistent missing value handling in v1.9.8 [Bug #9396]

Version 1.9.8 (29 October 2019):

   New features:
     * Proj 4 to 6 API Migration
     * smooth/smooth9: Added support for gridtype PROJECTION [Feature #9202]
     * Expr: Added function rand(x) and isMissval(x)
     * Remap: Added support for Gaussian reduced grids
     * trend, detrend: Added parameter equal=false for unequal timesteps
     * Option --no_remap_weights: Switch off generation of remap weights
   New operators:
     * deltat: Difference between timesteps
   Fixed bugs:
     * ensavg: Wrong result if data contains missing values (same result as ensmean)
     * Ydrunstat: Fix seg. fault

Version 1.9.7 (7 June 2019):

   New features:
     * added option --worker <num>: Number of worker to decode/decompress GRIB records
     * added option --pedantic: Warnings count as errors
     * Yhourstat: added time bounds support
     * expr: added support for ctimestep() in ternary conditional
   New operators:
     * yearmaxidx: Yearly maximum indices
     * yearminidx: Yearly minimum indices
   Changed operators:
     * for: renamed to seq
   Fixed bugs:
     * Build failed with GCC 9 (OpenMP data sharing) [Bug #9038]
     * compile error: EXIT_FAILURE not declared in cdoDebugOutput.h [Bug #8899]
     * eca_gsl: the 2nd input file was not closed [Bug #9033]
     * ensrkhisttime/ensrkhistspace: don't work
     * detrend: seg. fault if time series containts time constant fields
     * inttime, intntime: handling of missing values is incorrect
     * select: combination of some parameter (var, grid, zaxis) doesn't work
     * expr:zonSTAT: wrong result
     * expr::vertmean: fix wrong warning message about layer bounds
     * mergetime: SKIP_SAME_TIME doesn't work in release 1.9.6

Version 1.9.6 (7 February 2019):

   New features:
     * Added support for polar stereographic projection
     * Download ICON grids if necessary (http://icon-downloads.mpimet.mpg.de)
     * 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
   New operators:
     * vars<stat> - Statistical values over all variables
     * 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]
     * Module Selbox: added support for grid cell area
     * Operator setgridtype,regular: set nx=4*N+16 for octahedral reduced Gaussian grids
     * 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]
     * Absolute time axis (-a) returns wrong units in operator chain for NetCDF [Bug #8777]
     * Relative time axis (-r) returns wrong first timestep in operator chain for NetCDF
     * Wrong result with fldmean on zonal mean data (bug introduce in 1.9.5) [Bug #8834]
     * OPeNDAP support was broken in 1.9.5 [Bug #9761]

Version 1.9.5 (9 August 2018):

   New features:
     * Changed type of date from 32 to 64-bit integer to support years > 214748
     * remapycon: optimized by changing cell search method
     * 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:
     * seldate: segmentation fault (bug introduce in 1.9.4) [Bug #8499]
     * select: wrong timestamp when combining select with selyear (bug introduce in 1.8.1) [Bug #8576]
     * gradsdes: bug fix for rotated lon/lat grids
     * silent option produces newlines [Bug #8538]
     * remapnn/remapdis: wrong result with regular 2D source grids if nlat > nlon  [Bug #8498]

Version 1.9.4 (9 May 2018):

   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]
     * setattribute: added support for \n in text attributes
     * expr: removed character [LlDd] from definition of float constants

Version 1.9.3 (29 January 2018):

   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]
     * read error on grid description file [Bug #8099]

Version 1.9.2 (23 November 2017):

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

Version 1.9.1 (27 September 2017):

   New features:
     * Added support for NC_FORMAT_CDF5
     * Extend option --reduce_dim to all dimension for all operators
   New operators:
     * tee - Duplicate a data stream
   Changes operators:
     * eof, eof3d: set default value of environment variable CDO_WEIGHT_MODE to off
     * sinfo: Added time type
     * ap2pl: added support for input data on half levels
   Fixed bugs:
     * selindexbox: breaks uvRelativeToGrid flag [Bug #7901]
     * expr: AND fall through OR
     * --cmor option doesn't work for lon/lat bounds (introduced in 1.9.0)
     * eof3d: weight array was allocated for only one level

Version 1.9.0 (27 July 2017):

   New features:
     * Code changed from ANSI C99 to ISO C++11
     * Added configure option for ecCodes --with-eccodes=<yes|no|directory>
     * Added range operator to all statistic modules (e.g. yearrange, zonrange)
   Fixed bugs:
     * expr: improve ternary operator, no brackets needed anymore.
     * expr: added support for clev in ternary operator.
     * 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]
     * percentile: fix wrong result with method numpy (linear interpolation) and nist [Bug #7798]

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]

Version 1.8.1 (6 April 2017):

   New features:
     * selindexbox: added support for LCC grid
   New operators:
     * selgridcell - Select grid cells
     * delgridcell - Delete grid cells
   New operators (KMNI contribution):
     * selmulti - Select multiple fields
     * delmulti - Delete multiple fields
     * changemulti - Change identication of multiple fields
     * samplegrid - Resample grid
     * uvDestag - Destaggering of wind components
     * rotuvNorth - Rotate u/v wind to North pole
     * projuvLatLon - Cylindrical Equidistant projection
   Fixed bugs:
     * collgrid: combination of nx and names does not work
     * Remapping bug for non global grids [Bug #7625]
     * remapdis and remapcon produces wrong results for some grid combinations [Bug #7626] (introduced in last revision)

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
     * setpartabn: added support for user defined attributes
     * Reverse: adjust date/time by -1 second (introduced in last revision)
   New operators:
     * setattribute: Set attributes
     * cmorlite: Apply variable_entry of cmor tables
     * timcumsum: Cumulative sum over time.
     * shiftx/shifty: Shift fields on rectilinear/curvilinear grids in x/y direction
   Fixed bugs:
     * Cond: bug fix for ntsteps1 == 1 && ntsteps2 != 1
     * ml2pl: interpolation failed for data on hybrid half levels [Bug #7225]

Version 1.7.2 (28 June 2016):

   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
   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
   Changed operators:
     * input: added optional zaxis parameter
     * setpartab: renamed to setcodetab
     * pardes: renamed to codetab
   Fixed bugs:
     * Error reading Gaussian reduced GRIB files [Bug #6780 #6819]
     * Installation error with OpenMP [Bug #6523]
     * mul: wrong result for missval*0 (bug was introduced in 1.7.1)
     * nint: wrong result (replaced round() by lround())
     * shaded, contour, grfill: set NAN missvals to -9e33 [Bug: #6677]
     * expr: fix problem with missing values in time constant mask and a timeseries

Version 1.7.1 (25 February 2016):

   New features:
     * select: added search key steptype, gridnum, gridname, zaxisnum, zaxisname
     * 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)
   New operators:
     * contour: Contour plot
     * shaded: Shaded contour plot
     * grfill: Shaded gridfill plot
     * vector: Lat/Lon vector plot
     * graph: Line graph plot
     * 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.
   Fixed bugs:
     * cdo -t table_file does not read variable name from table file [Bug #6312]
     * One day shift backwards when converting to relative time axis with -r [Bug #6496]
     * ydaypctl: check of verification date failed (bug fix)
     * cat, copy, mergetime, select: remove time constant input fields for nfile>1 [Bug #6552]

Version 1.7.0 (28 October 2015):

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

Version 1.6.9 (28 April 2015):

   New features:
     * select: added parameter date, startdate, enddate
     * expr: added support for operator ?:,&&,||
     * option --reduce_dim: reduce dimension (Timstat, Fldstat)
   New operators:
     * after: ECHAM standard post processor
     * aexpr: Evaluate expressions and append results
     * aexprf: Evaluate expression script and append results
     * selzaxisname: Select z-axes by name
     * genlevelbounds: Generate level bounds
   Fixed bugs:
     * ydrunpctl: does not work in combination with ydrunmin/ydrunmax
     * Ensstat: added support for different missing values
     * seltimestep: abort if none of the selected timesteps are found

Version 1.6.8 (26 March 2015):

   New features:
     * select, delete: added wildcard support for parameter name
     * expr: added support for logical operators <, >, <=, >=, !=, ==, <=>
   New operators:
     * splityearmon: Split in years and months
     * 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
   Changed operators:
     * vertmean, vertavg: changed to weighted means if layer bounds are available
     * setpartabp, setpartabn: added optional parameter convert to convert the units.
       Units are not converted anymore if this parameter is not set!
     * TimSTAT, Timpctl, TimselSTAT, Timselpctl, SeasSTAT, Seaspctl:
       The output time stamp of all operators from the above modules
       are changed from the last to the middle contributing timestep.
       Use the environment variable CDO_TIMESTAT_DATE=last to set
       the output time stamp to the last contributing timestep.
     * 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
   Fixed bugs:
     * gradsdes: grib index file is empty (introduced in 1.6.7)
     * grib2 output: segfaults when writing grib2 files [Bug #5351]
     * remapnn: Segmentation fault for extrapolation of regular 2D source grids [Bug #5448]

Version 1.6.7 (12 December 2014):

   Fixed bugs:
     * intlevel3d: does not work
     * GRIB_API: segfaults when writing grib2 files [Bug #5351]

Version 1.6.6 (27 November 2014):

   New operators:
     * outputtab: table output
   Fixed bugs:
     * option -t table: segmentation fault if parameter table entry longname is missing
     * merge: check number of timesteps [Bug #5338]
     * seasmean: sets all time_bnds to the same values [Bug #5329]
     * histcount: doesn't recognize missing values
     * filesdes: doesn't work for GRIB2 files [Bug #5307]

Version 1.6.5 (23 October 2014):

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

Version 1.6.4 (26 June 2014):

   New features:
     * Option --history: Do not append to netCDF "history" global attribute
     * Option --netcdf_hdr_pad <nbr>: Pad netCDF output header with nbr bytes
   New operators:
     * setpartabn: set parameter table by name
     * setpartabp: set parameter table by parameter ID
     * sealevelpressure: sea level pressure
   Changed operators:
     * Sinfo: changed format of grid and zaxis section
     * Filter: disable zero-padding
     * diff: print number of different values
     * Ymonstat: sorts output by month of year
   Fixed bugs:
     * eof3d: set sum of weights to 1
     * eofcoeff: remove scaling with grid cell area weights
     * eofcoeff3d: remove scaling with grid cell area weights

Version 1.6.3 (18 February 2014):

   New features:
     * remapbil, remapbic, remapdis, remapnn: performance optimization for regular 2D source grids
     * gradsdes: added support for GRIB files >2GB
     * 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
     * expr: select variables by name
   Changed operators:
     * gradsdes: added parameter map_version and removed specific operators gradsdes1 and gradsdes2
   Fixed bugs:
     * gradsdes: changed LCC to LCCR in PDEF definition [Bug #4344]
     * cat: "Segmentation fault" if the output file already exist [Bug #4291]
     * delete: parameter level does not work [Bug #4216]

Version 1.6.2 (12 November 2013):

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

Version 1.6.1 (27 June 2013):

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

Version 1.6.0 (14 March 2013):

   New operators:
     * select: Select fields from an unlimited number of input files
     * mergegrid: Merge horizontal grids
     * yearmonmean: yearly mean from monthly data
     * duplicate: Duplicates a dataset
     * adisit: Potential temperature to in-situ temperature
     * rhopot: Calculates potential density
   Changed operators:
     * 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
     * diff: print only records that differ
   Fixed bugs:
     * sellonlatbox: wrong result with overlapped lonlatbox on curvilinear grids
     * ensrkhisttime: fixed memory fault
     * expr: wrong result for operation var1/var2 where var2 = 0
     * Runstat: added support for time bounds (Bug #3127)
     * merge: uses size of the first input file for the output buffer

Version 1.5.9 (17 December 2012):

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

Version 1.5.8 (30 October 2012):

   New features:
     * Added support for netCDF4(HDF5) formatted SCRIP grid description files
     * 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.
   New operators:
     * setunit: Set variable unit
     * chunit:  Change variable unit
   Changed operators:
     * Info:  changed output format
     * Sinfo: changed output format
     * Diff:  changed output format
   Fixed bugs:
     * remaplaf: fixed bug in binary_search_int()
     * eca_rr1: result has wrong long name attribute

Version 1.5.6.1 (26 July 2012):

   Fixed bugs:
     * 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.

Version 1.5.6 (23 July 2012):

   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
   Changed operators:
     * Arith: added support for 3D masks
     * mastrfu: use grid coordinates from input file
   Fixed bugs:
     * ymonsub: added support for time bounds
     * Wrong netCDF output for unscaled uint8, int8, int16, int32 variables [Bug #2516]

Version 1.5.5 (15 May 2012):

   New operators:
     * yhouradd, yhoursub, yhourmul, yhourdiv: Multi-year hourly arithmetic
   Fixed bugs:
     * ECA operators: wrong result if missing value is not the default missing value (-9e33)
     * ml2pl: added support for GRIB2 parameter names
     * replace: removed debug output

Version 1.5.4 (30 January 2012):

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

Version 1.5.3 (20 October 2011):

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

Version 1.5.2 (22 August 2011):

   New features:
     * replace: added support to replace single levels
   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.
   Fixed bugs:
     * invertlat: bug fix for CURVILINEAR grids
     * ymon<stat>: preserve time axis attributes (type and calendar)
     * import_binary: added support for OPTION ZREV
     * 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.
     * 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

Version 1.5.1 (12 July 2011):

   New features:
     * Added support for netCDF4 classic format; option -f nc4c
     * import_binary: Added support for 1 and 2 byte integer
   New operators:
     * intlevel3d: vertical interpolation to/from 3d vertical coordinates
     * 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
   Fixed bugs:
     * Exprf: wrong result for missing values != (double) -9.e33
     * detrend: added support for time bounds
     * Filter: added support for time bounds
     * eofspatial: integer overflow; wrong result for grid size > 46340
     * eca_*: use the input calendar for the output streams

Version 1.5.0 (15 March 2011):

   New features:
     * GRIB2 support via ECMWF GRIB_API
     * Added support for netCDF level bounds
     * Added option -O to overwrite existing output file (only for ens<STAT>, merge, mergetime)
   New operators:
     * selparam: Select parameters by identifier
     * delparam: Delete parameters by identifier
     * splitparam: Split parameter identifiers
     * chparam: Change parameter identifier
   Changed operators:
     * expr: added functions abs(), int(), nint(), sqr()
     * 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
   Fixed bugs:
     * sellonlatbox: does not work as expected when selecting all longitudes
     * sellonlatbox: initialization missing for unstructured grids
     * ml2pl and ml2hl: wrong result if input file contains full *and* half level data
     * trend and detrend: integer overflow; wrong result for ntimesteps > 46340
     * spcut: only correct results with continuous wave numbers starting at 1
     * remaplib: fixed data race in calculation of bin_addr (OpenMP)

Version 1.4.7 (06 January 2011):

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

Version 1.4.6 (17 September 2010):

   New features:
     * Using libtool for linking (rpath)
     * Changed predefined gaussian grid names from t<RES>grid to n<N>
       Use n80 instead of t106grid to define a Gaussian N80 grid
     * Changed percentile parameter type from integer to float
   New operators:
     * bandpass: Bandpass filtering
     * lowpass:  Lowpass filtering
     * highpass: Highpass filtering
   Changed operators:
     * eca_gsl: adjust implementation to fit definition by ECA
     * expr, exprf: added missing values support
   Fixed bugs:
     * sellevel: copy zaxis meta data name and units
     * seldate: open output file only when time steps found
     * sellonlatbox: fix rounding error of the last lon index

Version 1.4.5.1 (05 July 2010):

   New features:
     * GRIB1 decode: Correct ZeroShiftError of simple packed spherical harmonics
   Fixed bugs:
     * wrong result of SZIP compressed GRIB1 records with 24 bit packing and a compression ratio < 1.05

Version 1.4.5 (28 June 2010):

   New operators:
     * eof: Calculate EOFs in spatial or time space
     * eoftime: Calculate EOFs in time space
     * eofspatial: Calculate EOFs in spatial space
     * eofcoeff: Principal coefficients of EOFs
     * consecsum: Consecutive Sum
     * consects: Consecutive Timesteps
     * setvals: Set list of old values to new values

Version 1.4.4 (29 April 2010):

   New operators:

     * fldcor: correlation in grid space
     * timcor: correlation over time
     * 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

Version 1.4.3 (22 February 2010):

   * New features:
      o using CDI library version 1.4.3
        improved GRIB1 support and performance
      o changed GRIB1 default packing type of spherical harmonics to complex

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

Version 1.4.1 (15 December 2009):

   * New features:
      o using CDI library version 1.4.1
        improved GRIB and netCDF support and performance
   * 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)

Version 1.4.0.1 (21 October 2009):

   * Fixed bugs:
      o seltime: bug fix for scanning of input parameter
      o IEG format: bug fix for identification of lonlat grids
      o GRIB format: bug fix for decoding of missing values (scalar version only)

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
      o import_cmsaf: read native float datatype

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

Version 1.3.1 (16 April 2009):

   * 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

Version 1.3.0 (15 January 2009):

   * 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
      o Reciprocal value - reci
   * Changed operators:
      o import_cmsaf: add support for monthly mean diurnal cycle
      o remap: set num_srch_bins to nlat/2 (speedup)
   * Fixed bugs:
      o setzaxis: changed datatype from float to double
      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
      o yseasstd, yseasvar: fixed wrong array index

Version 1.2.1 (13 November 2008):

   * 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):

   * 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

Version 1.1.1 (8 April 2008):

   * New features:
      o Module Vertint: add support for GME data

   * New operators:
      o Regression - regres
      o Grid cell area/weights - gridarea, gridweights
      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
      o Module Arithc: recalculate number of missing values
      o Operator splitsel: bug fix for multilevel/multivar datasets

Version 1.1.0 (25 January 2008):

   * New features:
      o Support for Lambert conformal grids in GRIB format
      o Improved support for netCDF attributes

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

   * 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

Version 1.0.9 (22 October 2007):

   * New operators:
      o Multi-year hourly statistical values
         - yhourmin, yhourmax, yhoursum, yhourmean, yhouravg, yhourstd, yhourvar
   * Changed operators:
      o ymonstat: write original order of timesteps
      o gradsdes: add GRIB level type to VARS
   * Fixed bugs:
      o Operator ifthen: bug fix for masks that varies not with time


Version 1.0.8 (27 June 2007):

   * New operators:
      o Remap vertical hybrid level - remapeta
      o 9 point smoothing - smooth9
      o Mask region - maskregion
      o Split selected time steps - splitsel
      o Set range to constant - setrtoc, setrtoc2
      o Histogram - histcount, histsum, histmean, histfreq
      o Show GRIB level types - showltype
      o Select GRIB level types - selltype
      o Set GRIB level type - setltype
   * Changed operators:
      o Renamed chvar, selvar, delvar, showvar, setvar and splitvar
             to chname, selname, delname, showname, setname and splitname
      o Renamed selmin, selmax, selsum, selmean, selavg, selvar, selstd
             to timselmin, timselmax, timselsum, timselmean, timselavg, timselvar, timselstd
      o Renamed selpctl to timselpctl
      o Renamed nvar to npar and vardes to pardes
   * Fixed bugs:
      o Module Ymonstat gave wrong results with missing values
        Affected operators: ymonmean, ymonstd, ymonvar
      o Library ieglib has had a memory leak for IEG output

Version 1.0.7 (8 March 2007):

   * New operators:
      o Divergence and vorticity to U and V wind (linear) - dv2uvl
      o U and V wind to divergence and vorticity (linear) - uv2dvl
      o Select single month - selsmon
   * 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.

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):

  * New operators:
      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!)

Developer version 1.0.4 (7 November 2006):

  * New operators:
      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

Developer version 1.0.3 (3 November 2006):

  * New operators:
      o Time interpolation - intntime
      o Backward transformation of velocity components U and V from MPIOM - mrotuvb

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:
      o ydaysum - Multi-year daily sum
      o ymonsum - Multi-year monthly sum
      o yseassum - Multi-year seasonally sum
      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.