aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortradke <tradke@94b1c47f-dcfd-45ef-a468-0854c0e9e350>2001-08-02 15:40:51 +0000
committertradke <tradke@94b1c47f-dcfd-45ef-a468-0854c0e9e350>2001-08-02 15:40:51 +0000
commitfaedd2bdc2155ed8fff843d7e79aedd14d88a0f0 (patch)
treeb6e60feb5034343d2e80a1a02908f240264d7e73 /src
parent9f559affd230ba4f8cfce60e3ee8304c4213b108 (diff)
Output the physical time in a separate column if requested via the new
parameters IOASCII::out1D_style and IOASCII::out2D_style. For 1D gnuplot-style output, timesteps are separated by only one blank line now. This allows to using the "every" modifier in gnuplot's plot commands and thus hopefully closes PR CactusPUGHIO-IOASCII/330. git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/IOASCII/trunk@71 94b1c47f-dcfd-45ef-a468-0854c0e9e350
Diffstat (limited to 'src')
-rw-r--r--src/Write1D.c136
-rw-r--r--src/Write2D.c17
2 files changed, 139 insertions, 14 deletions
diff --git a/src/Write1D.c b/src/Write1D.c
index 071f7bf..df5c73a 100644
--- a/src/Write1D.c
+++ b/src/Write1D.c
@@ -120,8 +120,9 @@ void IOASCII_Write1D (cGH *GH, int vindex, const char *alias)
char header_fmt[18]; /* header format string */
char ylabel1_fmt[13]; /* y-label format string */
char ylabel2_fmt[13]; /* y-label format string */
- char data_fmt_int[11]; /* data format string for int types */
- char data_fmt_real[14]; /* data format string for float types */
+ char time_fmt[30]; /* time format string */
+ char data_fmt_int[30]; /* data format string for int types */
+ char data_fmt_real[30]; /* data format string for float types */
const char *file_extension; /* filename extension */
char comment_char; /* character starting a comment */
FILE *file[8]; /* fds for x,y,z,d output (also COMPLEX)*/
@@ -185,22 +186,56 @@ void IOASCII_Write1D (cGH *GH, int vindex, const char *alias)
return;
}
- /* set header and data format strings */
- if (CCTK_Equals (out_style, "gnuplot"))
+ /* DEPRICATED IN BETA12 */
+ if (CCTK_ParameterQueryTimesSet ("out_style", CCTK_THORNSTRING) > 0)
{
- comment_char = '#';
- file_extension = ".asc";
+ static int user_was_warned = 0;
+
+
+ if (! user_was_warned)
+ {
+ CCTK_WARN (1, "IOASCII_Write1D: parameter 'IOASCII::out_style' is "
+ "depricated in BETA12, please use 'IOASCII::out1D_style' "
+ "instead");
+ user_was_warned = 1;
+ }
+ if (CCTK_Equals (out_style, "gnuplot"))
+ {
+ out1D_style = "gnuplot f(x)";
+ }
+ else
+ {
+ out1D_style = "xgraph";
+ }
}
- else
+
+ /* set header and data format strings */
+ if (CCTK_Equals (out1D_style, "xgraph"))
{
comment_char = '"';
file_extension = ".xg";
+ sprintf (header_fmt, "\n\n%cTime = %%%s\n", comment_char, out_format);
+ }
+ else
+ {
+ comment_char = '#';
+ file_extension = ".asc";
+ sprintf (header_fmt, "\n%cTime = %%%s\n", comment_char, out_format);
}
- sprintf (header_fmt, "\n\n%cTime = %%%s\n", comment_char, out_format);
sprintf (ylabel1_fmt, " (%%c = %%%s", out_format);
sprintf (ylabel2_fmt, ", %%c = %%%s", out_format);
- sprintf (data_fmt_int, "%%%s\t\t%%d\n", out_format);
- sprintf (data_fmt_real, "%%%s\t\t%%%s\n", out_format, out_format);
+
+ /* check whether to include physical time as separate column in the output */
+ i = 0;
+ if (CCTK_Equals (out1D_style, "gnuplot f(t,x)"))
+ {
+ sprintf (time_fmt, "%%%s\t\t", out_format);
+ sprintf (data_fmt_int, time_fmt, (double) GH->cctk_time);
+ sprintf (data_fmt_real, time_fmt, (double) GH->cctk_time);
+ i = strlen (data_fmt_int);
+ }
+ sprintf (data_fmt_int + i, "%%%s\t\t%%d\n", out_format);
+ sprintf (data_fmt_real + i, "%%%s\t\t%%%s\n", out_format,out_format);
#ifdef DEBUG_IOASCII
printf ("\nIn IOASCII Write1D\n------------------\n");
@@ -596,6 +631,87 @@ void IOASCII_Write1D (cGH *GH, int vindex, const char *alias)
data_fmt_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, NOTHING, int, data,
+ data_fmt_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, NOTHING, int, data,
+ data_fmt_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, NOTHING, int, data,
+ data_fmt_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, NOTHING, double, data,
+ data_fmt_real, file[dir]);
+ break;
+
+ case CCTK_VARIABLE_COMPLEX8:
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
+ offset, CCTK_COMPLEX8, CCTK_Cmplx8Real,
+ double, data, data_fmt_real, file[dir]);
+ /* print out header */
+ fprintf (file[dir + 4], header_fmt, GH->cctk_time);
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
+ offset, CCTK_COMPLEX8, CCTK_Cmplx8Imag,
+ double, data, data_fmt_real, file[dir + 4]);
+ break;
+#endif
+
+#ifdef CCTK_REAL8
+ case CCTK_VARIABLE_REAL8:
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
+ offset, CCTK_REAL8, NOTHING, double, data,
+ data_fmt_real, file[dir]);
+ break;
+
+ case CCTK_VARIABLE_COMPLEX16:
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
+ offset, CCTK_COMPLEX16, CCTK_Cmplx16Real,
+ double, data, data_fmt_real, file[dir]);
+ /* print out header */
+ fprintf (file[dir + 4], header_fmt, GH->cctk_time);
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
+ offset, CCTK_COMPLEX16, CCTK_Cmplx16Imag,
+ double, data, data_fmt_real, file[dir + 4]);
+ break;
+#endif
+
+#ifdef CCTK_REAL16
+ case CCTK_VARIABLE_REAL16:
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
+ offset, CCTK_REAL16, NOTHING, double, data,
+ data_fmt_real, file[dir]);
+ break;
+
+ case CCTK_VARIABLE_COMPLEX32:
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
+ offset, CCTK_COMPLEX32, CCTK_Cmplx32Real,
+ double, data, data_fmt_real, file[dir]);
+ /* print out header */
+ fprintf (file[dir + 4], header_fmt, GH->cctk_time);
+ OUTPUT_TYPED_DATA (group_static_data.grouptype, hsize, coord_data,
+ offset, CCTK_COMPLEX32, CCTK_Cmplx32Imag,
+ double, data, data_fmt_real, file[dir + 4]);
+ break;
+#endif
+
default:
CCTK_WARN (1, "Unsupported variable type");
break;
diff --git a/src/Write2D.c b/src/Write2D.c
index 6e5c987..9c6569b 100644
--- a/src/Write2D.c
+++ b/src/Write2D.c
@@ -119,6 +119,7 @@ void IOASCII_Write2D (cGH *GH, int vindex, const char *alias)
char header_fmt_string[30]; /* header format string */
char zlabel_fmt_string[30]; /* z-label format string */
char out_real_format[30]; /* data format string for a real type */
+ char time_fmt_string[30]; /* time format string */
char data_fmt_string_int[30]; /* data format string for int types */
char data_fmt_string_real[30]; /* data format string for real types */
int dir;
@@ -163,10 +164,18 @@ void IOASCII_Write2D (cGH *GH, int vindex, const char *alias)
sprintf (header_fmt_string, "\n\n#Time = %%%s\n", out_format);
sprintf (zlabel_fmt_string, "#z-label %%s (%%c = %%%s), ", out_format);
sprintf (out_real_format, "%%%s", out_format);
- sprintf (data_fmt_string_int, "%s\t\t%s\t\t%%d",
- out_real_format, out_real_format);
- sprintf (data_fmt_string_real, "%s\t\t%s\t\t%s",
- out_real_format, out_real_format, out_real_format);;
+ dir = 0;
+ if (CCTK_Equals (out2D_style, "gnuplot f(t,x,y)"))
+ {
+ sprintf (time_fmt_string, "%%%s\t\t", out_format);
+ sprintf (data_fmt_string_int, time_fmt_string, (double) GH->cctk_time);
+ sprintf (data_fmt_string_real, time_fmt_string, (double) GH->cctk_time);
+ dir = strlen (data_fmt_string_int);
+ }
+ sprintf (data_fmt_string_int + dir, "%%%s\t\t%%%s\t\t%%d",
+ out_format, out_format);
+ sprintf (data_fmt_string_real + dir, "%%%s\t\t%%%s\t\t%%%s",
+ out_format, out_format, out_format);
/* get the coordinate indices if we output a grid function */
if (groupinfo.grouptype == CCTK_GF)