--- trunk/mdtools/interface_implementation/simError.c 2002/10/24 20:40:52 156 +++ trunk/mdtools/interface_implementation/simError.c 2002/11/05 22:04:46 164 @@ -3,6 +3,8 @@ #ifdef IS_MPI #include + +int nChecks; #endif // IS_MPI #include "simError.h" @@ -13,23 +15,22 @@ void initSimError( void ){ painCave.isFatal = 0; #ifdef IS_MPI painCave.isEventLoop = 0; + nChecks = 0; + MPI_Comm_rank( MPI_COMM_WORLD, &WorldRank ); #endif } int simError( void ) { #ifdef IS_MPI - int myRank; int myError = 1; int isError; int isFatal; - MPI_Comm_rank( MPI_COMM_WORLD, &myRank ); - - if( painCave.isEventLoop ){ + if( painCave.isEventLoop ){ fprintf( stderr, - "MPI Error on node %d: %s\n", - myRank, + "MPI Event Error on node %d: %s\n", + worldRank, painCave.errMsg ); return 1; } @@ -37,7 +38,7 @@ int simError( void ) { if( painCave.isFatal ){ fprintf( stderr, "MPI Fatal Error on node %d: %s\n", - myRank, + worldRank, painCave.errMsg ); MPI_Allreduce( &myError, &isError, 1, MPI_INT, MPI_LOR, MPI_COMM_WORLD ); @@ -47,7 +48,7 @@ int simError( void ) { else{ fprintf( stderr, "MPI Non-Fatal Error on node %d: %s\n", - myRank, + worldRank, painCave.errMsg ); } return 1; @@ -77,7 +78,7 @@ void checkMPIError( void ){ #ifdef IS_MPI -void checkMPIError( void ){ +void MPIcheckPoint( void ){ int myError = 0; int isError; @@ -87,6 +88,17 @@ void checkMPIError( void ){ MPI_Finalize(); exit(0); } + +#ifdef CHECKPOINT_VERBOSE + nChecks++; + if( worldRank == 0 ){ + fprintf(stderr, + "Checkpoint #%d reached: %s\n", + nChecks, + checkPointMsg ); + } +#endif // CHECKPOINT_VERBOSE + } #endif // IS_MPI