-------------
**2019-05-14**
* Changed behaviour of `cfdm.Constructs.filter_by_axis`.
* New methods: `cfdm.Data.has_units`, `cfdm.Data.has_calendar`,
`cfdm.Data.has_fill_value`.
* New ``constructs`` keyword parameter to `Field.transpose`.
* Keyword parameter ``axes`` to `cfdm.Field.set_data` is now optional.
* Added the 'has_bounds' method to constructs that have data but can't
have bounds.
* New methods: `cfdm.DomainAxis.nc_is_unlimited`,
`cfdm.DomainAxis.nc_set_unlimited`.
* Made Data a virtual subclass of Array.
* Deprecated methods: `cfdm.Field.nc_unlimited`,
`cfdm.Field.nc_clear_unlimited`, `cfdm.Field.nc_clear_unlimited`.
* Fixed bug when writing new horizontal coordinate reference for the
vertical datum.
* Fixed bug in `del_data` methods.
* Fixed bug with in-place operations.
* Fixed bug with position in some `insert_dimension` methods.
* Fixed bug that sometimes made duplicate netCDF dimensions when
writing to a file.
* Added _shape keyword to `cfdm.Field.set_data_axes` to allow the data
shape to be checked prior to insertion.
* Added the '_custom' attribute to facilitate subclassing.
* New class `cfdm.mixin.NetCDFUnlimitedDimension` replaces
`cfdm.mixin.NetCDFUnlimitedDimensions`, which is deprecated.
* New method `cfdm.CFDMImplementation.nc_is_unlimited_axis` replaces
`cfdm.CFDMImplementation.nc_get_unlimited_axes`, which is
deprecated.
* New method `cfdm.CFDMImplementation.nc_set_unlimited_axis` replaces
`cfdm.CFDMImplementation.nc_set_unlimited_dimensions`, which is
deprecated.
----