CDI NEWS
--------

Version 1.9.6 (07 February 2019):

   New features:
     * Added support for polar stereographic projection
     * grib2: Added support for variables with different perturbationNumber
     * Added check for unsupported NetCDF4/HDF5 library combination (NetCDF  <= 4.4.0 with libhdf5 >= 1.10.0)
     * NetCDF: added support for single scalar variable
   Fixed bugs:
     * ecCodes: deleteLocalDefinition for GRIB1.tmpl
     * taxisCopyTimestep: don't copy rdate/rtime (bug fix)
     * scanning of attribute associate* failed (bug fix)
     * grib1/ecCodes: set maxStep to 65000 (bug fix)
     * cdf_read: removed limitation of nmiss_ to INT_MAX [Bug #8691]
     * cgribex: make section2 length dynamic (bug fix for large Gaussian reduced grids)
     * GRIB2: correct longitudeOfFirstGridPoint if necessary (bug fix)
     * CDI_reduce_dim: wrong result when reduce time dimension (bug fix)

Version 1.8.0 (14 February 2017):

   New features:
     * Refactor horizontal and vertical grid module
     * netCDF4: added support for attribute type NC_BYTE, NC_UBYTE, NC_USHORT and NC_UINT
   Fixed bugs:
     * iegWriteVarSliceDP: does not work (bug fix)
     * streamOpenAppend: call to gribContainersNew() missing (bug fix) [Bug #6944]
        
Version 1.7.0 (27 October 2015):

   New features:
     * added support for netCDF Scalar Coordinate Variables
     * added support for hybrid sigma pressure coordinates following the CF convention
     * merge changes from branches/cdi-tiles [from Florian Prill]
   Fixed bugs:
     * GRIB rotated grids: invert angle of rotation (north to south pole) (bug fix)
     * bug fix for scanning the WRF time axis
     * cdiStreamSetupVlist: added call to vlist_unlock(vlistID) (bug fix)

Version 1.6.8 (26 March 2015):

   Fixed bugs:
     * cdfCopyRecord: incorrect checksum for freed object [Bug #5461]
     * scan netcdf time units attribute
     * fixed rounding error for negativ timevalue
     * time unit second rounding error

Version 1.6.7 (5 December 2014):

   Fixed bugs:
     * GRIB2 output does not work

Version 1.6.6 (27 November 2014):

   New features:
     * IEG: added support for coordinate scale factor
   Fixed bugs:
     * table::decodeForm1: missing longname results in Abort trap
     * transpose2dArrayXX: wrong result
     * cgribexScanTimestep1: set flag to 0 in call to cgribexVarCompare()
     * netCDF: call set_validrangeDP() in cdfReadVar()
     * netCDF: call cdfDoInputDataTransformation() if have missvals

Version 1.6.5 (23 October 2014):

   New features:
     * NetCDF: single precision input
     * netCDF4: added support for xtype NC_STRING
     * added CDI function gribapiLibraryVersion(major_version, minor_version, revision_version) [Feature #5043]
     * gribapiEncode: update additional keys defined with vlistDefVarXXXKey() [Feature #4720]
     * added vlistDefVarProductDefinitionTemplate() to define GRIB2 Product Definition Template Number [Feature #4694]
     * streamWriteVarF, streamWriteVarSliceF: added support for GRIB1 (cgribex)
     * grib2: activate jpeg support in combination with masks (missing values)
   Fixed bugs:
     * listDestroy(): set resHListSize=0 [Bug #5058]
     * NetCDF: Reading uuidOfVGrid [Bug #5046]


Version 1.6.4 (26 June 2014):

   New features:
     * Added support for SPECS forecast time axis
     * Added support for GRIB_API key cfName
   Fixed bugs:
     * netCDF4 classic: existing files are converted to netCDF4 - classic flag is lost
     * netCDF: added support for opendap files by https:
     * gribapiDefDateTimeRel: set vdate to rdate for time invariant fields [Bug #4641]
     * Loss of coordinates attribute when merging files [Bug #4880]

Version 1.6.3 (14 February 2014):

   New features:
     * streamInqGinfo: added support for GRIB files > 2GB
   Fixed bugs:
     * streamOpenA, streamOpen: parameter recordBufIsToBeCreated missing in call to cdiStreamOpenDefaultDelegate()
     * streamOpenA: removed line "streamptr->record = record"; record is allocated in cdiStreamOpenDefaultDelegate()


Version 1.6.2 (12 November 2013):

   New features:
     * Added support for netCDF CF time attribute: climatology [Feature #4092]
     * Added CDI function zaxisDefNlevRef() and zaxisInqNlevRef() [Feature #4117]
     * Made gridtype GRID_REFERENCE part of GRID_UNSTRUCTED
     * GRIB2: added support for level type Lake Bottom (grib level type 162)
     * GRIB2: added support for level type Bottom Of Sediment Layer (grib level type 163)
     * GRIB2: added support for level type Bottom Of Thermally Active Sediment Layer (grib level type 164)
     * GRIB2: added support for level type Bottom Of Sediment Layer Penetrated By Thermal Wave (grib level type 165)
     * GRIB2: added support for level type Mixing Layer (grib level type 166)
   Fixed bugs:
     * netCDF: wrong result if type of data and type of attribute valid_range differ [Bug #3727]

Version 1.6.1 (18 June 2013):

   New features:
     * GRIB2: added support for snow level (level type 114)
     * GRIB2: added support for layers with zaxis type ZAXIS_PRESSURE
   New functions:
     * cdiHaveFiletype(): Check whether a filetype is available
   Fixed bugs:
     * stream_gribapi: replaced function getLevelFactor() [Bug #3446]
     * gridXXXUUID: use cdi fortran datatype CBUF (char *) for the last argument (bug fix) [Bug #3424]
     * institutInq: check contents of name and longname (bug fix) [Bug #3419]
     * netCDF: missing_value attribute removed [Bug #3592]

Version 1.6.0 (14 March 2013):

   New features:
     * Added support for level type CLOUD_BASE, CLOUD_TOP and ISOTHERM_ZERO [Feature #3247]
     * Read arbitrary GRIB keys [Feature #3267]
   New functions:
     * vlistDefVarIntKey(): Set an arbitrary keyword/integer value pair for GRIB API
     * vlistDefVarDblKey(): Set an arbitrary keyword/double value pair for GRIB API
   Fixed bugs:
     * GRIB: added support for time step unit: seconds [Bug #3352]
     * stream_gribapi: added support for local table shortName.def [Bug #3343]
     * stream_gribapi: changed units for level type GRIB2_LTYPE_LANDDEPTH to m (internally mm) [Bug #3287]
     * netCDF: ignore the attribute valid_range, if the data type is inconsistent
     * global netCDF attribute "source" missing
     * cgribexGetTsteptype: changed default to TSTEP_INSTANT [Bug #3211]

Version 1.5.9 (17 December 2012):

   New features:
     * file.c::file_initialize: added support for env GRIB_API_IO_BUFFER_SIZE
   New functions:
     * vlistDefVarChunktype(): set chunktype to CHUNK_AUTO, CHUNK_GRID, CHUNK_LINES
     * vlistInqVarChunktype(): returns the chunktype
   Fixed bugs:
     * vlistCopyFlag: added support for level bounds
     * netCDF: added support for time axis name and long_name
     * cgribexGetGrid: bug fix for xinc/yinc recomputation
     * stream_cdf::define_all_vars: added txt attributes to vlistDefAttTxt() without trailing 0 [Bug #3004]

Version 1.5.8 (30 October 2012):

   New features:
     * grib2: added stepType support for absolute time axis
     * netCDF: set 1D arrays to coordinate variables if axis attribute is available
   Fixed bugs:
     * grib2: changed packingType from grid_jpeg to grid_simple if nmiss > 0

Version 1.5.7 (27 August 2012):

   New features:
     * Merge of branch cdo-pio into trunk cdi

Version 1.5.6 (27 July 2012):

   New features:
     * netCDF: added support for environment variable NC_CHUNKSIZEHINT
     * GRIB2: added support for level type HYBRID_HALF
     * GRIB2: added support for grib_api key stepType with TSTEP_<type> in vlistDefVar()
   Fixed bugs:
     * wrong netCDF output for unscaled uint8, int8, int16, int32 variables (bug introduced in 1.5.5)

Version 1.5.5 (15 May 2012):

   New features:
     * Added single precision support: streamWriteVarF, streamWriteVarSliceF
     * Added support for ZAXIS_DEPTH_BELOW_LAND units "mm",  "cm", "dm" and "m"

Version 1.5.4 (30 January 2012):

   New features:
     * Added support for GRIB2 packing type grid_ieee
     * Added support for GRIB2 level type 150

Version 1.5.3 (17 October 2011):

   New features:
     * Added support for level type ZAXIS_TOA, ZAXIS_SEA_BOTTOM, ZAXIS_ATMOSPHERE
   Fixed bugs:
     * deflate compression with netCDF4 doesn't work

Version 1.5.2 (22 August 2011):

   New features:
     * Added flexible XYZ dimension ordering for netCDF
     * Added support for grid type GRID_FOURIER (fourier coefficients)
     * Added interface function zaxisInqVct to read the VCT

Version 1.5.1 (12 July 2011):

   New features:
     * Added support for FILETYPE_NC4C (netcdf4 classic)

Version 1.5.0 (15 March 2011):

   New features: 
     * GRIB2 support via ECMWF GRIB_API
     * Added support for netCDF level bounds

Version 1.4.7 (3 January 2011):

   New features:
     * improved support for netCDF output from WRF model

Version 1.4.6 (17 September 2010):

   New features:
     * GRIB1: use packing only for non constant fields
     * Added support for attribute type int16 and float32
     * use libtool 2.2.10 for compiling + linking

Version 1.4.5.1 (5 July 2010):

   New features:
      * Added support for grid mask
      * GRIB1 decode: Correct ZeroShiftError of simple packed spherical harmonics

Version 1.4.5 (6 June 2010):

   Fixed bugs:
      * stream_history: added NC4 support
      * gridGenYvals: bug fix for nlat > 4096

Version 1.4.4 (29 April 2010):

   New features:
      * MAX_STREAMS: changed fixed size of 4096 to dynamic range of 1024 - 65536
      * added support for GRIB1 time units 3hours and 6hours
      * added support for non integer time units MONTH
      * vlistMerge: added support to merge levels

   Fixed bugs:
      * gauaw: bug fix for allocation of zfnlat for odd number of nlat
      * cgribexDefTime: bug fix for GRIB1 time range 3 and 10
