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
New features:
- 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