diff options
-rw-r--r-- | src/DumpVar.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/DumpVar.c b/src/DumpVar.c index 934ef10..18de0ca 100644 --- a/src/DumpVar.c +++ b/src/DumpVar.c @@ -523,6 +523,7 @@ static int WriteGA (const cGH *GH, const ioRequest *request, const char *name, static void WriteData (const cGH *GH, const ioRequest *request,const char *name, const void *data, int proc, hid_t file) { + DECLARE_CCTK_PARAMETERS int i, myproc; ioGH *ioUtilGH; ioHDF5UtilGH *myGH; @@ -536,7 +537,8 @@ static void WriteData (const cGH *GH, const ioRequest *request,const char *name, #endif hsize_t *chunk_dims, *file_dims; hsize_t buffersize; - DECLARE_CCTK_PARAMETERS + const int compression_lvl = request->compression_level >= 0 ? + request->compression_level : compression_level; /* immediately return if file handle is invalid */ @@ -581,12 +583,12 @@ static void WriteData (const cGH *GH, const ioRequest *request,const char *name, when writing its own data, otherwise the dataset is reopened */ if (proc == myproc) { - HDF5_ERROR (plist = H5Pcreate (H5P_DATASET_CREATE)); /* enable compression for chunked dataset if compression was requested */ - if (compression_level) + HDF5_ERROR (plist = H5Pcreate (H5P_DATASET_CREATE)); + if (compression_lvl) { HDF5_ERROR (H5Pset_chunk (plist, request->hdim, chunk_dims)); - HDF5_ERROR (H5Pset_deflate (plist, compression_level)); + HDF5_ERROR (H5Pset_deflate (plist, compression_lvl)); } HDF5_ERROR (dataset = H5Dcreate (file, name, hdf5type, filespace, plist)); HDF5_ERROR (H5Pclose (plist)); @@ -722,6 +724,8 @@ static void WriteDataCollective (const cGH *GH, const ioRequest *request, hsize_t *chunk_dims, *file_dims; hsize_t buffersize; const ioHDF5UtilGH *myGH; + const int compression_lvl = request->compression_level >= 0 ? + request->compression_level : compression_level; DECLARE_CCTK_PARAMETERS @@ -758,10 +762,10 @@ static void WriteDataCollective (const cGH *GH, const ioRequest *request, /* enable compression for chunked dataset if compression was requested */ HDF5_ERROR (plist = H5Pcreate (H5P_DATASET_CREATE)); - if (compression_level) + if (compression_lvl) { HDF5_ERROR (H5Pset_chunk (plist, request->hdim, chunk_dims)); - HDF5_ERROR (H5Pset_deflate (plist, compression_level)); + HDF5_ERROR (H5Pset_deflate (plist, compression_lvl)); } HDF5_ERROR (dataset = H5Dcreate (file, name, hdf5type, filespace, plist)); HDF5_ERROR (H5Pclose (plist)); |