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