diff options
author | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2004-04-27 16:38:56 +0000 |
---|---|---|
committer | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2004-04-27 16:38:56 +0000 |
commit | e89f09029a07b707428a2d286fd0531448d10b26 (patch) | |
tree | 6ba640f5dd05ec64ff5cc0dfd8fb7a78ce9e1c04 /src | |
parent | f9a8ae7d783a2c2b53a3bfe076d9a4892f3712e5 (diff) |
refactor some code so file naming conventions are more explicit
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@1313 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'src')
-rw-r--r-- | src/driver/io.cc | 68 |
1 files changed, 60 insertions, 8 deletions
diff --git a/src/driver/io.cc b/src/driver/io.cc index 6f7fd71..b763761 100644 --- a/src/driver/io.cc +++ b/src/driver/io.cc @@ -10,6 +10,7 @@ // output_Jacobians - write a Jacobian matrix or matrices to an output file // /// io_file_name - compute file name for angular-gridfn I/O file +/// OpenDX_control_file_name - compute file name for OpenDX control file // #include <stdio.h> @@ -64,9 +65,13 @@ namespace { void output_OpenDX_control_file(const patch_system& ps, const struct IO_info& IO_info, int hn); + const char* io_file_name(const struct IO_info& IO_info, const char base_file_name[], int hn, int AHF_iteration = 0); +const char* OpenDX_control_file_name(const struct IO_info& IO_info, + const char base_file_name[], + int hn); } //****************************************************************************** @@ -174,17 +179,14 @@ void output_OpenDX_control_file(const patch_system& ps, const struct IO_info& IO_info, int hn) { -static char file_name_buffer[IO_info::file_name_buffer_size]; -snprintf(file_name_buffer, IO_info::file_name_buffer_size, - "%s/%s.ah%d.%s", - IO_info.h_directory, IO_info.h_base_file_name, hn, - IO_info.OpenDX_control_file_name_extension); - -FILE *fileptr = fopen(file_name_buffer, "w"); +const char* file_name = OpenDX_control_file_name(IO_info, + IO_info.h_base_file_name, + hn); +FILE *fileptr = fopen(file_name, "w"); if (fileptr == NULL) then CCTK_VWarn(FATAL_ERROR, __LINE__, __FILE__, CCTK_THORNSTRING, "output_OpenDX_control_file(): can't open output file \"%s\"!", - file_name_buffer); /*NOTREACHED*/ + file_name); /*NOTREACHED*/ fprintf(fileptr, "# list the size of each patch (N_rho x N_sigma)\n"); for (int pn = 0 ; pn < ps.N_patches() ; ++pn) @@ -468,4 +470,54 @@ return file_name_buffer; //****************************************************************************** +// +// This function encapsulates our file-naming conventions for OpenDX +// control files for our regular angular-gridfn output files. +// +// Arguments: +// base_file_name[] = from the parameter file +// hn = the horizon number +// +// Results: +// This function returns (a pointer to) the file name. The returned +// result points into a private static buffer; the usual caveats apply. +// +namespace { +const char* OpenDX_control_file_name(const struct IO_info& IO_info, + const char base_file_name[], + int hn) +{ +const char* file_name_extension; + +switch (IO_info.horizon_file_format) + { +case horizon_file_format__ASCII_gnuplot: + file_name_extension = IO_info.OpenDX_control_file_name_extension; + break; +case horizon_file_format__HDF5: + CCTK_VWarn(FATAL_ERROR, __LINE__, __FILE__, CCTK_THORNSTRING, +"\n" +" OpenDX_control_file_name(): don't know how to form OpenDX control file\n" +" name for HDF output files!"); /*NOTREACHED*/ +default: + CCTK_VWarn(FATAL_ERROR, __LINE__, __FILE__, CCTK_THORNSTRING, +"\n" +" OpenDX_control_file_name(): unknown IO_info.horizon_file_format=(int)%d!\n" +" (this should never happen!)" + , + int(IO_info.horizon_file_format)); /*NOTREACHED*/ + } + +static char file_name_buffer[IO_info::file_name_buffer_size]; +snprintf(file_name_buffer, IO_info::file_name_buffer_size, + "%s/%s.ah%d.%s", + IO_info.h_directory, base_file_name, hn, + file_name_extension); + +return file_name_buffer; +} + } + +//****************************************************************************** + } // namespace AHFinderDirect |