aboutsummaryrefslogtreecommitdiff
path: root/CarpetAttic
diff options
context:
space:
mode:
authorcott <>2003-12-10 13:50:00 +0000
committercott <>2003-12-10 13:50:00 +0000
commita665cf5aa6f067c2f1b475d9f9aa537bc367ac6d (patch)
treef92b00b0926c18098dbd62475624ab2659aa60ba /CarpetAttic
parentcc69118d5dca78409888934cb9296ac57f3dd859 (diff)
Fixed problems with zero sized scalars/arrays.
darcs-hash:20031210135006-19929-c71ad141ef8be15da9a14d4b84414ad703e0719e.gz
Diffstat (limited to 'CarpetAttic')
-rw-r--r--CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexioUtil.cc18
1 files changed, 15 insertions, 3 deletions
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