From 3aa3ff10f5107b540d57ae320e3b2dd89364709c Mon Sep 17 00:00:00 2001 From: "Glenn K. Lockwood" Date: Fri, 5 Oct 2018 22:20:18 -0700 Subject: [PATCH] fixes #96 Call MPI_Abort() if MPI is initialized; otherwise just exit() --- src/parse_options.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/parse_options.c b/src/parse_options.c index 7e98359..ecbd2b5 100755 --- a/src/parse_options.c +++ b/src/parse_options.c @@ -112,12 +112,17 @@ void DecodeDirective(char *line, IOR_param_t *params) char option[MAX_STR]; char value[MAX_STR]; int rc; + int initialized; rc = sscanf(line, " %[^=# \t\r\n] = %[^# \t\r\n] ", option, value); if (rc != 2 && rank == 0) { fprintf(out_logfile, "Syntax error in configuration options: %s\n", line); - MPI_CHECK(MPI_Abort(MPI_COMM_WORLD, -1), "MPI_Abort() error"); + MPI_CHECK(MPI_Initialized(&initialized), "MPI_Initialized() error"); + if (initialized) + MPI_CHECK(MPI_Abort(MPI_COMM_WORLD, -1), "MPI_Abort() error"); + else + exit(-1); } if (strcasecmp(option, "api") == 0) { params->api = strdup(value); @@ -308,7 +313,11 @@ void DecodeDirective(char *line, IOR_param_t *params) if (rank == 0) fprintf(out_logfile, "Unrecognized parameter \"%s\"\n", option); - MPI_CHECK(MPI_Abort(MPI_COMM_WORLD, -1), "MPI_Abort() error"); + MPI_CHECK(MPI_Initialized(&initialized), "MPI_Initialized() error"); + if (initialized) + MPI_CHECK(MPI_Abort(MPI_COMM_WORLD, -1), "MPI_Abort() error"); + else + exit(-1); } }