aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortradke <tradke@94b1c47f-dcfd-45ef-a468-0854c0e9e350>2002-01-03 10:58:37 +0000
committertradke <tradke@94b1c47f-dcfd-45ef-a468-0854c0e9e350>2002-01-03 10:58:37 +0000
commit1ffefcb67c44fc7f86d25d037e6d68e3a43fe490 (patch)
tree606bfacac7a41150df191b4f2759eae7595e7334 /src
parent2031746c9010e039c08e8b943e3b7038ed389cdf (diff)
*** empty log message ***
git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/IOASCII/trunk@95 94b1c47f-dcfd-45ef-a468-0854c0e9e350
Diffstat (limited to 'src')
-rw-r--r--src/Write1D.c81
1 files changed, 41 insertions, 40 deletions
diff --git a/src/Write1D.c b/src/Write1D.c
index 9a68a31..9c2cb77 100644
--- a/src/Write1D.c
+++ b/src/Write1D.c
@@ -36,8 +36,9 @@ CCTK_FILEVERSION(CactusBase_IOASCII_Write1D_c)
/*#define DEBUG_IOASCII 1*/
/* macro to output a 1D line (with coordinates for GFs) as typed data */
-#define OUTPUT_TYPED_DATA(grouptype, hsize, coord_data, stagger_offset, \
- cctk_type, c_type, h0, stride, data, format, file) \
+#define OUTPUT_TYPED_DATA(grouptype, hstart, hsize, hstride, coord_data, \
+ stagger_offset, cctk_type, c_type, is_complex, \
+ data, format, file) \
{ \
int h; \
cctk_type *typed_data = (cctk_type *) data; \
@@ -45,12 +46,12 @@ CCTK_FILEVERSION(CactusBase_IOASCII_Write1D_c)
\
if (grouptype == CCTK_GF) \
{ \
- for (h = h0; h < stride * hsize; h += stride) \
+ for (h = hstart; h < hstride * hsize; h += hstride) \
{ \
fprintf (file, format, \
(double) (coord_data[h] + stagger_offset), \
(c_type) typed_data[h]); \
- if (stride == 1) \
+ if (is_complex && hstride == 1) \
{ \
fprintf (file, out_real_format, (c_type) typed_data[h + 1]);\
} \
@@ -59,10 +60,10 @@ CCTK_FILEVERSION(CactusBase_IOASCII_Write1D_c)
} \
else \
{ \
- for (h = h0; h < stride * hsize; h += stride) \
+ for (h = hstart; h < hstride * hsize; h += hstride) \
{ \
fprintf (file, format, (double) h, (c_type) typed_data[h]); \
- if (stride == 1) \
+ if (is_complex && hstride == 1) \
{ \
fprintf (file, out_real_format, (c_type) typed_data[h + 1]);\
} \
@@ -647,78 +648,78 @@ int IOASCII_Write1D (const cGH *GH, int vindex, const char *alias)
switch (group_static_data.vartype)
{
case CCTK_VARIABLE_CHAR:
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_BYTE, int, 0, 1, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 0, hsize, 1,
+ coord_data, offset, CCTK_BYTE, int, 0, data,
data_fmt_string_int, file[dir]);
break;
case CCTK_VARIABLE_INT:
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_INT, int, 0, 1, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 0, hsize, 1,
+ coord_data, offset, CCTK_INT, int, 0, data,
data_fmt_string_int, file[dir]);
break;
case CCTK_VARIABLE_REAL:
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_REAL, double, 0, 1, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 0, hsize, 1,
+ coord_data, offset, CCTK_REAL, double, 0, data,
data_fmt_string_real, file[dir]);
break;
case CCTK_VARIABLE_COMPLEX:
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_REAL, double, 0, stride, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 0, hsize, stride,
+ coord_data, offset, CCTK_REAL, double, 1, data,
data_fmt_string_real, file[dir]);
if (stride == 2)
{
/* print out header */
fprintf (file[dir + 4], header_fmt_string, GH->cctk_time);
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_REAL, double, 1, stride, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 1, hsize, stride,
+ coord_data, offset, CCTK_REAL, double, 1, data,
data_fmt_string_real, file[dir + 4]);
}
break;
#ifdef CCTK_INT2
case CCTK_VARIABLE_INT2:
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_INT2, int, 0, 1, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 0, hsize, 1,
+ coord_data, offset, CCTK_INT2, int, 0, data,
data_fmt_string_int, file[dir]);
break;
#endif
#ifdef CCTK_INT4
case CCTK_VARIABLE_INT4:
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_INT4, int, 0, 1, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 0, hsize, 1,
+ coord_data, offset, CCTK_INT4, int, 0, data,
data_fmt_string_int, file[dir]);
break;
#endif
#ifdef CCTK_INT8
case CCTK_VARIABLE_INT8:
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_INT8, int, 0, 1, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 0, hsize, 1,
+ coord_data, offset, CCTK_INT8, int, 0, data,
data_fmt_string_int, file[dir]);
break;
#endif
#ifdef CCTK_REAL4
case CCTK_VARIABLE_REAL4:
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_REAL4, double, 0, 1, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 0, hsize, 1,
+ coord_data, offset, CCTK_REAL4, double, 0, data,
data_fmt_string_real, file[dir]);
break;
case CCTK_VARIABLE_COMPLEX8:
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_REAL4, double, 0, stride, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 0, hsize, stride,
+ coord_data, offset, CCTK_REAL4, double, 1, data,
data_fmt_string_real, file[dir]);
if (stride == 2)
{
/* print out header */
fprintf (file[dir + 4], header_fmt_string, GH->cctk_time);
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_REAL4, double, 1, stride, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 1, hsize, stride,
+ coord_data, offset, CCTK_REAL4, double, 1, data,
data_fmt_string_real, file[dir + 4]);
}
break;
@@ -726,21 +727,21 @@ int IOASCII_Write1D (const cGH *GH, int vindex, const char *alias)
#ifdef CCTK_REAL8
case CCTK_VARIABLE_REAL8:
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_REAL8, double, 0, 1, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 0, hsize, 1,
+ coord_data, offset, CCTK_REAL8, double, 0, data,
data_fmt_string_real, file[dir]);
break;
case CCTK_VARIABLE_COMPLEX16:
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_REAL8, double, 0, stride, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 0, hsize, stride,
+ coord_data, offset, CCTK_REAL8, double, 1, data,
data_fmt_string_real, file[dir]);
if (stride == 2)
{
/* print out header */
fprintf (file[dir + 4], header_fmt_string, GH->cctk_time);
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_REAL8, double, 1, stride, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 1, hsize, stride,
+ coord_data, offset, CCTK_REAL8, double, 1, data,
data_fmt_string_real, file[dir + 4]);
}
break;
@@ -748,21 +749,21 @@ int IOASCII_Write1D (const cGH *GH, int vindex, const char *alias)
#ifdef CCTK_REAL16
case CCTK_VARIABLE_REAL16:
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_REAL16, double, 0, 1, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 0, hsize, 1,
+ coord_data, offset, CCTK_REAL16, double, 0, data,
data_fmt_string_real, file[dir]);
break;
case CCTK_VARIABLE_COMPLEX32:
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_REAL16, double, 0, stride, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 0, hsize, stride,
+ coord_data, offset, CCTK_REAL16, 1, double, data,
data_fmt_string_real, file[dir]);
if (stride == 2)
{
/* print out header */
fprintf (file[dir + 4], header_fmt_string, GH->cctk_time);
- OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
- offset, CCTK_REAL16, double, 1, stride, data,
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, 1, hsize, stride,
+ coord_data, offset, CCTK_REAL16, double, 1, data,
data_fmt_string_real, file[dir + 4]);
}
break;