diff options
Diffstat (limited to 'Carpet/CarpetIOHDF5/src/Output.cc')
-rw-r--r-- | Carpet/CarpetIOHDF5/src/Output.cc | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/Carpet/CarpetIOHDF5/src/Output.cc b/Carpet/CarpetIOHDF5/src/Output.cc index a0367ba58..6d3da697b 100644 --- a/Carpet/CarpetIOHDF5/src/Output.cc +++ b/Carpet/CarpetIOHDF5/src/Output.cc @@ -140,9 +140,12 @@ int WriteVarUnchunked (const cGH* const cctkGH, // enable compression if requested hid_t plist; HDF5_ERROR (plist = H5Pcreate (H5P_DATASET_CREATE)); - if (compression_level) { + const int compression_lvl = request->compression_level >= 0 ? + request->compression_level : + compression_level; + if (compression_lvl) { HDF5_ERROR (H5Pset_chunk (plist, group.dim, shape)); - HDF5_ERROR (H5Pset_deflate (plist, compression_level)); + HDF5_ERROR (H5Pset_deflate (plist, compression_lvl)); } HDF5_ERROR (dataset = H5Dcreate (outfile, datasetname.str().c_str(), filedatatype, dataspace, plist)); @@ -390,9 +393,12 @@ int WriteVarChunkedSequential (const cGH* const cctkGH, hid_t plist, dataspace, dataset; HDF5_ERROR (plist = H5Pcreate (H5P_DATASET_CREATE)); // enable compression if requested - if (compression_level) { + const int compression_lvl = request->compression_level >= 0 ? + request->compression_level : + compression_level; + if (compression_lvl) { HDF5_ERROR (H5Pset_chunk (plist, group.dim, shape)); - HDF5_ERROR (H5Pset_deflate (plist, compression_level)); + HDF5_ERROR (H5Pset_deflate (plist, compression_lvl)); } HDF5_ERROR (dataspace = H5Screate_simple (group.dim, shape, NULL)); HDF5_ERROR (dataset = H5Dcreate (outfile, datasetname.str().c_str(), @@ -535,9 +541,12 @@ int WriteVarChunkedParallel (const cGH* const cctkGH, hid_t plist, dataspace, dataset; HDF5_ERROR (plist = H5Pcreate (H5P_DATASET_CREATE)); // enable compression if requested - if (compression_level) { + const int compression_lvl = request->compression_level >= 0 ? + request->compression_level : + compression_level; + if (compression_lvl) { HDF5_ERROR (H5Pset_chunk (plist, group.dim, shape)); - HDF5_ERROR (H5Pset_deflate (plist, compression_level)); + HDF5_ERROR (H5Pset_deflate (plist, compression_lvl)); } HDF5_ERROR (dataspace = H5Screate_simple (group.dim, shape, NULL)); HDF5_ERROR (dataset = H5Dcreate (outfile, datasetname.str().c_str(), |