aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetIOHDF5/src/Output.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Carpet/CarpetIOHDF5/src/Output.cc')
-rw-r--r--Carpet/CarpetIOHDF5/src/Output.cc21
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(),