diff --git a/cf/__init__.py b/cf/__init__.py
index c83099f9d1..6d77ab8900 100644
--- a/cf/__init__.py
+++ b/cf/__init__.py
@@ -193,7 +193,7 @@
)
# Check the version of cfdm
-_minimum_vn = "1.10.1.0"
+_minimum_vn = "1.10.1.1"
_maximum_vn = "1.10.2.0"
_cfdm_version = Version(cfdm.__version__)
if not Version(_minimum_vn) <= _cfdm_version < Version(_maximum_vn):
diff --git a/cf/read_write/netcdf/netcdfread.py b/cf/read_write/netcdf/netcdfread.py
index b0adcf46aa..f8437349c6 100644
--- a/cf/read_write/netcdf/netcdfread.py
+++ b/cf/read_write/netcdf/netcdfread.py
@@ -154,6 +154,7 @@ def _create_data(
parent_ncvar=None,
coord_ncvar=None,
cfa_term=None,
+ compression_index=False,
):
"""Create data for a netCDF or CFA-netCDF variable.
@@ -181,6 +182,12 @@ def _create_data(
.. versionadded:: 3.15.0
+ compression_index: `bool`, optional
+ True if the data being created are compression
+ indices.
+
+ .. versionadded:: 3.15.2
+
:Returns:
`Data`
@@ -201,12 +208,19 @@ def _create_data(
# one dask chunk
if data.npartitions == 1:
data._cfa_set_write(True)
-
- if self.implementation.get_construct_type(construct) != "field":
- # Only cache values from non-field data, on the
- # assumption that field data is, in general, so large
- # that finding the cached values takes too long. See
- # method `_cache_data_elements` for details.
+ if (
+ not compression_index
+ and self.implementation.get_construct_type(construct)
+ != "field"
+ ):
+ # Only cache values from non-field data and
+ # non-compression-index data, on the assumptions that:
+ #
+ # a) Field data is, in general, so large that finding
+ # the cached values takes too long.
+ #
+ # b) Cached values are never really required for
+ # compression index data.
self._cache_data_elements(data, ncvar)
return data
diff --git a/docs/source/installation.rst b/docs/source/installation.rst
index 53215e8dda..ceef730908 100644
--- a/docs/source/installation.rst
+++ b/docs/source/installation.rst
@@ -201,7 +201,7 @@ Required
* `cftime `_, version 1.6.2 or newer
(note that this package may be installed with netCDF4).
-* `cfdm `_, version 1.10.1.0 or up to,
+* `cfdm `_, version 1.10.1.1 or up to,
but not including, 1.10.2.0.
* `cfunits `_, version 3.3.6 or newer.
diff --git a/requirements.txt b/requirements.txt
index 1a69e67d3f..6a3d10b0e0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,7 +1,7 @@
netCDF4>=1.5.4
cftime>=1.6.2
numpy>=1.22
-cfdm>=1.10.1.0, <1.10.2.0
+cfdm>=1.10.1.1, <1.10.2.0
psutil>=0.6.0
cfunits>=3.3.6
dask>=2022.12.1