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
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]
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
Fixed bugs:
- collgrid: process coordinates of generic grids
- read grid description file with x/y bounds failed for GRID_PROJECTION
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
Fixed bugs:
- Arith: Filling up stream2 by copying the first timestep failed
Fixed bugs:
- ECA indices: doesn't work correctly since 1.9.10
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
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
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]