15#define Terminate(...) \
18 char termbuf1__[8000], termbuf2__[8000]; \
20 MPI_Comm_rank(MPI_COMM_WORLD, &thistask); \
21 sprintf(termbuf1__, "Code termination on task=%d, function %s(), file %s, line %d", thistask, __FUNCTION__, __FILE__, \
23 sprintf(termbuf2__, __VA_ARGS__); \
24 printf("%s: %s\n", termbuf1__, termbuf2__); \
26 MPI_Abort(MPI_COMM_WORLD, 1); \
32 char termbuf1__[8000], termbuf2__[8000]; \
34 MPI_Comm_rank(MPI_COMM_WORLD, &thistask); \
35 sprintf(termbuf1__, "Code warning on task=%d, function %s(), file %s, line %d", thistask, __FUNCTION__, __FILE__, __LINE__); \
36 sprintf(termbuf2__, __VA_ARGS__); \
37 printf("%s: %s\n", termbuf1__, termbuf2__); \
39 FILE *fd__ = fopen("WARNINGS", "w"); \