aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortradke <tradke@7842ec3a-9562-4be5-9c5b-06ba18f2b668>2003-11-17 16:56:39 +0000
committertradke <tradke@7842ec3a-9562-4be5-9c5b-06ba18f2b668>2003-11-17 16:56:39 +0000
commit0501f0070e400ac19dcd8628f6a63af3cf3eaba3 (patch)
treeff6f6b1228bb8cd9ad005ef0e240522f2affb2ad
parent4f104a5fb414910ca315024f649b8f1854d1a305 (diff)
For checkpointing: set the with_ghostzones flag in the ioRequest structure to true.
Note: you will need to update IOUtil also. git-svn-id: http://svn.cactuscode.org/arrangements/CactusPUGHIO/IOHDF5Util/trunk@102 7842ec3a-9562-4be5-9c5b-06ba18f2b668
-rw-r--r--src/DumpUtils.c6
-rw-r--r--src/DumpVar.c20
2 files changed, 22 insertions, 4 deletions
diff --git a/src/DumpUtils.c b/src/DumpUtils.c
index ee3a350..7035879 100644
--- a/src/DumpUtils.c
+++ b/src/DumpUtils.c
@@ -119,14 +119,16 @@ int IOHDF5Util_DumpGH (const cGH *GH, const int *timers, hid_t file)
/* get the default I/O request for this group */
request = IOUtil_DefaultIORequest (GH, first_vindex, 1);
- /* disable checking for old data objects, disable datatype conversion
- and downsampling */
+ /* disable checking for old data objects,
+ disable datatype conversion and downsampling,
+ request hyperslab output including ghostzones */
request->check_exist = 0;
request->hdatatype = gdata.vartype;
for (request->hdim = 0; request->hdim < request->vdim; request->hdim++)
{
request->downsample[request->hdim] = 1;
}
+ request->with_ghostzones = 1;
/* loop over all variables in this group */
for (request->vindex = first_vindex;
diff --git a/src/DumpVar.c b/src/DumpVar.c
index 6ae7532..56a50ef 100644
--- a/src/DumpVar.c
+++ b/src/DumpVar.c
@@ -14,6 +14,7 @@
#include <string.h>
#include "cctk.h"
+#include "util_Table.h"
#include "cctk_Parameters.h"
#include "CactusPUGH/PUGH/src/include/pugh.h"
#include "CactusBase/IOUtil/src/ioGH.h"
@@ -305,7 +306,7 @@ static int WriteGA (const cGH *GH, const ioRequest *request, const char *name,
hid_t file)
{
const ioGH *ioUtilGH;
- int i, myproc, mapping, hdatasize, retval;
+ int i, myproc, mapping, hdatasize, table, retval;
void *hdata;
char *fullname;
#ifdef CCTK_MPI
@@ -319,16 +320,31 @@ static int WriteGA (const cGH *GH, const ioRequest *request, const char *name,
/* define the hyperslab mapping */
+ table = -1;
+ if (request->with_ghostzones)
+ {
+ table = Util_TableCreateFromString ("with_ghostzones = 1");
+ if (table < 0)
+ {
+ CCTK_WARN (1, "Failed to hyperslab parameter create table from string");
+ }
+ }
+
mapping = Hyperslab_DefineLocalMappingByIndex (GH, request->vindex,
request->hdim,
request->direction,
request->origin,
request->extent,
request->downsample,
- -1, NULL,
+ table, NULL,
request->hsize_chunk,
request->hsize,
request->hoffset);
+ if (table >= 0)
+ {
+ Util_TableDestroy (table);
+ }
+
if (mapping < 0)
{
fullname = CCTK_FullName (request->vindex);