From a665cf5aa6f067c2f1b475d9f9aa537bc367ac6d Mon Sep 17 00:00:00 2001 From: cott <> Date: Wed, 10 Dec 2003 13:50:00 +0000 Subject: Fixed problems with zero sized scalars/arrays. darcs-hash:20031210135006-19929-c71ad141ef8be15da9a14d4b84414ad703e0719e.gz --- .../CarpetIOFlexIOCheckpoint/src/ioflexioUtil.cc | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'CarpetAttic') diff --git a/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexioUtil.cc b/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexioUtil.cc index 0dfb0f7cb..08719a3e2 100644 --- a/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexioUtil.cc +++ b/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexioUtil.cc @@ -93,7 +93,7 @@ IObase::DataType FlexIODataType (int cctk_type){ void DumpCommonAttributes (const cGH *cgh, IObase* writer, ioRequest* request) { int dim, vdim; - CCTK_INT attr_int; + CCTK_INT attr_int,dimscalar; CCTK_REAL *attr_real; char coord_system_name[20]; DECLARE_CCTK_PARAMETERS @@ -107,7 +107,7 @@ void DumpCommonAttributes (const cGH *cgh, IObase* writer, ioRequest* request) writer->writeAttribute("name",IObase::Char,strlen(name)+1,name); free(name); - //CCTK_VInfo (CCTK_THORNSTRING, "DUMPATTRIB"); + //fprintf(stderr,"\nattrib %s\n",groupname); writer->writeAttribute("groupname",IObase::String,strlen(groupname)+1,groupname); free (groupname); @@ -119,12 +119,24 @@ void DumpCommonAttributes (const cGH *cgh, IObase* writer, ioRequest* request) writer->writeAttribute("component",FlexIODataType(CCTK_VARIABLE_INT),1,&component); writer->writeAttribute("mglevel",FlexIODataType(CCTK_VARIABLE_INT),1,&mglevel); + attr_int = CCTK_MaxTimeLevelsVI (request->vindex); writer->writeAttribute("ntimelevels",FlexIODataType(CCTK_VARIABLE_INT),1,&attr_int); writer->writeAttribute("timelevel",FlexIODataType(CCTK_VARIABLE_INT),1,&request->timelevel); - writer->writeAttribute("global_size",FlexIODataType(CCTK_VARIABLE_INT),request->hdim,request->hsize); + /* we have to do below since cactus believes scalars have dimension 0, but + flexio likes them to be of dimension 1 + */ + + if(CCTK_GroupTypeFromVarI(request->vindex) == CCTK_SCALAR) { + dimscalar=1; + writer->writeAttribute("global_size",FlexIODataType(CCTK_VARIABLE_INT),1,&dimscalar); + } + else + writer->writeAttribute("global_size",FlexIODataType(CCTK_VARIABLE_INT),request->hdim,request->hsize); + + #if 0 -- cgit v1.2.3