From 1ffefcb67c44fc7f86d25d037e6d68e3a43fe490 Mon Sep 17 00:00:00 2001 From: tradke Date: Thu, 3 Jan 2002 10:58:37 +0000 Subject: *** empty log message *** git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/IOASCII/trunk@95 94b1c47f-dcfd-45ef-a468-0854c0e9e350 --- src/Write1D.c | 81 ++++++++++++++++++++++++++++++----------------------------- 1 file 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; -- cgit v1.2.3