From 0501f0070e400ac19dcd8628f6a63af3cf3eaba3 Mon Sep 17 00:00:00 2001 From: tradke Date: Mon, 17 Nov 2003 16:56:39 +0000 Subject: 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 --- src/DumpUtils.c | 6 ++++-- src/DumpVar.c | 20 ++++++++++++++++++-- 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 #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); -- cgit v1.2.3