diff options
Diffstat (limited to 'src/driver/BH_diagnostics.cc')
-rw-r--r-- | src/driver/BH_diagnostics.cc | 22 |
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) |