void ex_err(const char *module_name, const char *message, int err_num) { EX_FUNC_ENTER_INT(); if (err_num == 0) { /* zero is no error, ignore and return */ exerrval = err_num; EX_FUNC_VOID(); } /* save the error message for replays */ if (message != NULL) { strncpy(EX_ERRMSG, message, MAX_ERR_LENGTH); EX_ERRMSG[MAX_ERR_LENGTH - 1] = '\0'; } if (module_name != NULL) { strncpy(EX_PNAME, module_name, MAX_ERR_LENGTH); EX_PNAME[MAX_ERR_LENGTH - 1] = '\0'; } if (err_num == EX_PRTLASTMSG) { fprintf(stderr, "\n[%s] %s\n", EX_PNAME, EX_ERRMSG); fprintf(stderr, " exerrval = %d\n", EX_ERR_NUM); EX_FUNC_VOID(); } if (err_num == EX_LASTERR) { err_num = EX_ERR_NUM; } else { exerrval = err_num; EX_ERR_NUM = err_num; } if (err_num == EX_NULLENTITY) { if (exoptval & EX_NULLVERBOSE) { fprintf(stderr, "\nExodus Library Warning: [%s]\n\t%s\n", module_name, message); } } else if (exoptval & EX_VERBOSE) { /* check see if we really want to hear this */ fprintf(stderr, "\nExodus Library Warning/Error: [%s]\n\t%s\n", module_name, message); if (err_num < 0) { fprintf(stderr, "\t%s\n", ex_strerror(err_num)); } } fflush(stderr); /* with netCDF 3.4, (fatal) system error codes are > 0; so all EXODUS fatal error codes are > 0 */ if ((err_num > 0) && (exoptval & EX_ABORT)) { exit(err_num); } EX_FUNC_VOID(); }
void ex_err(const char *module_name, const char *message, int err_num) { if (err_num == 0) { /* zero is no error, ignore and return */ return; } else if (err_num == EX_PRTLASTMSG) { fprintf(stderr, "[%s] %s\n", last_pname, last_errmsg); fprintf(stderr, " exerrval = %d\n", last_err_num); return; } else if (err_num == EX_NULLENTITY) { if (exoptval & EX_NULLVERBOSE) { fprintf(stderr, "Exodus Library Warning: [%s]\n\t%s\n", module_name, message); } } else if (exoptval & EX_VERBOSE) { /* check see if we really want to hear this */ fprintf(stderr, "Exodus Library Warning/Error: [%s]\n\t%s\n", module_name, message); if (err_num < 0) { fprintf(stderr, "\t%s\n", ex_strerror(err_num)); } } /* save the error message for replays */ strcpy(last_errmsg, message); strcpy(last_pname, module_name); last_err_num = err_num; fflush(stderr); /* with netCDF 3.4, (fatal) system error codes are > 0; so all EXODUS fatal error codes are > 0 */ if ((err_num > 0) && (exoptval & EX_ABORT)) { exit(err_num); } }