CDO NEWS
--------
Version 1.5.8 (?? October 2012):

   Changed operators:
     * Sinfo: changed output format


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. 
