From c00c3115284691e98d724e630aca7a41087502eb Mon Sep 17 00:00:00 2001 From: Ian Jauslin Date: Wed, 12 Apr 2023 19:05:01 -0400 Subject: Write restart command to savefile --- src/main.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 059755f..6ccb9f4 100644 --- a/src/main.c +++ b/src/main.c @@ -13,6 +13,8 @@ #include "init.h" #include "int_tools.h" +#include "io.h" + // structure to store parameters, to make it easier to pass parameters to CLI functions typedef struct nstrophy_parameters { double init_en; // initial value for the energy for ins and enstrophy for rns @@ -135,6 +137,11 @@ int main ( print_params(parameters, initfile_str, stderr); print_params(parameters, initfile_str, stdout); + // free initfile_str + if(initfile_str!=NULL){ + free(initfile_str); + } + // run command if (command==COMMAND_UK){ uk(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, parameters.irreversible, parameters.print_freq, parameters.starting_time, nthreads, savefile); @@ -142,7 +149,7 @@ int main ( else if(command==COMMAND_EEA){ // register signal handler to handle aborts signal(SIGINT, sig_handler); - eea(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, parameters.irreversible, parameters.print_freq, parameters.avg_window, parameters.starting_time, nthreads, savefile); + eea(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, parameters.irreversible, parameters.print_freq, parameters.avg_window, parameters.starting_time, nthreads, savefile, (char*)argv[0], param_str, savefile_str); } else if(command==COMMAND_QUIET){ quiet(parameters.K1, parameters.K2, parameters.N1, parameters.N2, parameters.nsteps, parameters.nu, parameters.delta, parameters.L, u0, g, parameters.irreversible, nthreads, savefile); @@ -217,6 +224,7 @@ int print_params( return 0; } + // read command line arguments #define CP_FLAG_PARAMS 1 #define CP_FLAG_NTHREADS 2 @@ -570,7 +578,8 @@ int set_parameter( // matches any argument that starts with 'file:' else if (strncmp(rhs,"file:",5)==0){ parameters->init=INIT_FILE; - *initfile_str=(char*)rhs+5; + *initfile_str=calloc(sizeof(char), strlen(rhs)-5); + strcpy(*initfile_str, rhs+5); } else{ fprintf(stderr, "error: unrecognized initial condition '%s'\n",rhs); -- cgit v1.2.3-70-g09d2