From 1c00c6ce68240415d449fd8d295428ccea1c5a06 Mon Sep 17 00:00:00 2001 From: Andreas Gattringer <andreas.gattringer@univie.ac.at> Date: Wed, 21 Dec 2022 11:55:27 +0100 Subject: [PATCH] flush summary file after writing --- src/cats/configuration/configuration.c | 1 + src/cats/configuration/load_configuration.c | 5 +++-- src/cats/grids/cats_grid.c | 5 ++++- src/cats/grids/gdal_save.c | 5 ++++- src/cats/stats/global_stats.c | 5 ++++- 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/cats/configuration/configuration.c b/src/cats/configuration/configuration.c index 3417514..87dd53d 100644 --- a/src/cats/configuration/configuration.c +++ b/src/cats/configuration/configuration.c @@ -218,6 +218,7 @@ void cleanup_configuration(struct cats_configuration **conf_orig) // THIS HAS TO BE THE FIRST ENTRY cleanup_module_registry(&conf->modules); if (conf->summary_file) { + fflush(conf->summary_file); fclose(conf->summary_file); free(conf->summary_file_name); } diff --git a/src/cats/configuration/load_configuration.c b/src/cats/configuration/load_configuration.c index 8cb7da8..48ca3d7 100644 --- a/src/cats/configuration/load_configuration.c +++ b/src/cats/configuration/load_configuration.c @@ -73,8 +73,9 @@ load_configuration_from_file(const char *filename, const struct program_options if (conf->summary_file_name) { conf->summary_file = fopen(conf->summary_file_name, "w"); ENSURE_FILE_OPENED(conf->summary_file, conf->summary_file_name) - fprintf(conf->summary_file, "type,path,year\n"); - if (conf->log_file_name) fprintf(conf->summary_file, "log,%s,\n",conf->log_file_name); + fprintf(conf->summary_file, "run.name,replicate,file.type,file.name,year\n"); + if (conf->log_file_name) fprintf(conf->summary_file, "%s,%d,log,%s,NA\n", conf->run_name, conf->simulation.replicate, conf->log_file_name); + fflush(conf->summary_file); } #ifdef USEMPI mpi_setup(conf); diff --git a/src/cats/grids/cats_grid.c b/src/cats/grids/cats_grid.c index 8f71679..3960f6e 100644 --- a/src/cats/grids/cats_grid.c +++ b/src/cats/grids/cats_grid.c @@ -343,7 +343,10 @@ void initialize_grid_stats(struct cats_grid *grid, struct cats_configuration *co remove(filename); grid->stats.file = fopen(filename, "a+"); ENSURE_FILE_OPENED(grid->stats.file, filename) - if (conf->summary_file) fprintf(conf->summary_file, "grid-stats,%s,\n",filename); + if (conf->summary_file) { + fprintf(conf->summary_file, "%s,%d,grid-stats,%s,NA\n", conf->run_name, conf->simulation.replicate, filename); + fflush(conf->summary_file); + } free(filename); write_grid_stats(conf, grid, true); fflush(grid->stats.file); diff --git a/src/cats/grids/gdal_save.c b/src/cats/grids/gdal_save.c index e86cd34..3166e56 100644 --- a/src/cats/grids/gdal_save.c +++ b/src/cats/grids/gdal_save.c @@ -70,7 +70,10 @@ void *save_population_to_gdal(struct cats_grid *grid, struct cats_configuration (cats_dt_population) get_vital_rate_maximum(&grid->param.carrying_capacity)); fflush(stderr); } - if (conf->summary_file) fprintf(conf->summary_file, "population,%s,%d\n",filename, conf->time.year_current); + if (conf->summary_file){ + fprintf(conf->summary_file, "%s,%d,population,%s,%d\n",conf->run_name, conf->simulation.replicate, filename, conf->time.year_current); + fflush(conf->summary_file); + } free(filename); return 0; diff --git a/src/cats/stats/global_stats.c b/src/cats/stats/global_stats.c index 5e26d55..2bcaa50 100644 --- a/src/cats/stats/global_stats.c +++ b/src/cats/stats/global_stats.c @@ -49,7 +49,10 @@ void initialize_global_stats(struct cats_configuration *conf) conf->statsfile_global = fopen(filename, "a+"); ENSURE_FILE_OPENED(conf->statsfile_global, filename) - if (conf->summary_file) fprintf(conf->summary_file, "global-stats,%s,\n",filename); + if (conf->summary_file) { + fprintf(conf->summary_file, "%s,%d,global-stats,%s,NA\n",conf->run_name, conf->simulation.replicate,filename); + fflush(conf->summary_file); + } write_global_stats(conf, NULL, true); -- GitLab