diff options
author | tradke <tradke@7842ec3a-9562-4be5-9c5b-06ba18f2b668> | 2006-11-17 13:22:50 +0000 |
---|---|---|
committer | tradke <tradke@7842ec3a-9562-4be5-9c5b-06ba18f2b668> | 2006-11-17 13:22:50 +0000 |
commit | 290d03e72f79c334c6da162d9c323252cc92cc00 (patch) | |
tree | 800cd35c747de2c2cdd7dba2db67c65ae2be3c8d /src | |
parent | cf5820aa9635b49ee1aa27e4a66d22cb9ca01950 (diff) |
Implement variable-specific output request option 'compression_level'
so that users can specify eg.
IOHDF5Util::compression_level = 1
IOHDF5::out_vars = "admbase::metric
admconstraints::hamiltonian
admbase::lapse{ compression_level = 0 }"
to request HDF5 dataset compression for every output variable except for the
lapse.
This modification also requires an update of thorn CactusBase/IOUtil.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusPUGHIO/IOHDF5Util/trunk@134 7842ec3a-9562-4be5-9c5b-06ba18f2b668
Diffstat (limited to 'src')
-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)); |