aboutsummaryrefslogtreecommitdiff
path: root/src/driver/BH_diagnostics.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/driver/BH_diagnostics.cc')
-rw-r--r--src/driver/BH_diagnostics.cc22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/driver/BH_diagnostics.cc b/src/driver/BH_diagnostics.cc
index 0a8b8e1..733d2f3 100644
--- a/src/driver/BH_diagnostics.cc
+++ b/src/driver/BH_diagnostics.cc
@@ -333,12 +333,24 @@ FILE* BH_diagnostics::setup_output_file(const struct IO_info& IO_info,
int N_horizons, int hn)
const
{
-const int N_file_name_buffer = 200;
-char file_name_buffer[N_file_name_buffer];
+char file_name_buffer[IO_info::file_name_buffer_size];
-snprintf(file_name_buffer, N_file_name_buffer,
- "%s.ah%d.%s",
- IO_info.BH_diagnostics_base_file_name,
+const char* directory = IO_info.BH_diagnostics_directory;
+const int status = CCTK_CreateDirectory(IO_info.default_directory_permission,
+ directory);
+if (status < 0)
+ then CCTK_VWarn(FATAL_ERROR, __LINE__, __FILE__, CCTK_THORNSTRING,
+"\n"
+" BH_diagnostics::setup_output_file():\n"
+" error %d trying to create output directory\n"
+" \"%s\"!"
+ ,
+ status,
+ directory); /*NOTREACHED*/
+
+snprintf(file_name_buffer, IO_info::file_name_buffer_size,
+ "%s/%s.ah%d.%s",
+ directory, IO_info.BH_diagnostics_base_file_name,
hn, IO_info.BH_diagnostics_file_name_extension);
FILE *fileptr = fopen(file_name_buffer, "w");
if (fileptr == NULL)