Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c13
1 files changed, 11 insertions, 2 deletions
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);