aboutsummaryrefslogtreecommitdiff
path: root/src/utils.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils.cc')
-rw-r--r--src/utils.cc26
1 files changed, 11 insertions, 15 deletions
diff --git a/src/utils.cc b/src/utils.cc
index 746c599..01a6b15 100644
--- a/src/utils.cc
+++ b/src/utils.cc
@@ -1,6 +1,8 @@
#include <stdio.h>
#include <string.h>
#include <math.h>
+#include <string>
+#include <iostream>
#include "cctk.h"
#include "cctk_Arguments.h"
@@ -9,19 +11,19 @@
#include "utils.hh"
#include "integrate.hh"
+using namespace std;
+
////////////////////////////////////////////////////////////////////////
// File manipulation
////////////////////////////////////////////////////////////////////////
-FILE *Multipole_OpenOutputFile(CCTK_ARGUMENTS, char const *name)
+FILE *Multipole_OpenOutputFile(CCTK_ARGUMENTS, const string &name)
{
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
- const int buf_size = 1024;
bool first_time = cctk_iteration == 0;
const char *mode = first_time ? "w" : "a";
- char output_name[buf_size];
CCTK_STRING *out_dir = (CCTK_STRING *) CCTK_ParameterGet("out_dir", "IOUtil", NULL);
if (*out_dir == 0)
@@ -30,19 +32,13 @@ FILE *Multipole_OpenOutputFile(CCTK_ARGUMENTS, char const *name)
return 0;
}
- if ((int)strlen(*out_dir)+1 > buf_size)
- {
- CCTK_WARN(1,"Parameter IOUtil::out_dir is too long");
- return 0;
- }
-
- sprintf(output_name, "%s/%s", *out_dir, name);
+ string output_name(string(*out_dir) + "/" + name);
- FILE *fp = fopen(output_name, mode);
+ FILE *fp = fopen(output_name.c_str(), mode);
if (fp == 0)
{
- CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, "Could not open output file %s", output_name);
+ CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, (string("Could not open output file ") + output_name).c_str());
}
return fp;
@@ -72,7 +68,7 @@ void Multipole_OutputArray(CCTK_ARGUMENTS, FILE *f, int array_size,
}
-void Multipole_OutputArrayToFile(CCTK_ARGUMENTS, char *name, int array_size,
+void Multipole_OutputArrayToFile(CCTK_ARGUMENTS, const string &name, int array_size,
CCTK_REAL const th[], CCTK_REAL const ph[],
CCTK_REAL const xs[], CCTK_REAL const ys[], CCTK_REAL const zs[],
CCTK_REAL const data[])
@@ -90,7 +86,7 @@ void Multipole_OutputArrayToFile(CCTK_ARGUMENTS, char *name, int array_size,
// Misc
////////////////////////////////////////////////////////////////////////
-void Multipole_Output1D(CCTK_ARGUMENTS, char const *name, int array_size,
+void Multipole_Output1D(CCTK_ARGUMENTS, const string &name, int array_size,
CCTK_REAL const th[], CCTK_REAL const ph[], mp_coord coord,
CCTK_REAL const data[])
{
@@ -133,7 +129,7 @@ void Multipole_OutputComplex(CCTK_ARGUMENTS, FILE *fp, CCTK_REAL redata, CCTK_RE
fprintf(fp, "%f %.19g %.19g\n", cctk_time, redata, imdata);
}
-void Multipole_OutputComplexToFile(CCTK_ARGUMENTS, char const *name, CCTK_REAL redata, CCTK_REAL imdata)
+void Multipole_OutputComplexToFile(CCTK_ARGUMENTS, const string &name, CCTK_REAL redata, CCTK_REAL imdata)
{
DECLARE_CCTK_ARGUMENTS;