ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/mdtools/interface_implementation/simError.c
(Generate patch)

Comparing trunk/mdtools/interface_implementation/simError.c (file contents):
Revision 155 by mmeineke, Tue Oct 22 22:12:44 2002 UTC vs.
Revision 156 by mmeineke, Thu Oct 24 20:40:52 2002 UTC

# Line 8 | Line 8
8   #include "simError.h"
9  
10  
11 + void initSimError( void ){
12 +  painCave.errMsg[0] = '\0';
13 +  painCave.isFatal = 0;
14 + #ifdef IS_MPI
15 +  painCave.isEventLoop = 0;
16 + #endif
17 + }
18 +
19   int simError( void ) {
20    
21   #ifdef IS_MPI
# Line 18 | Line 26 | int simError( void ) {
26  
27    MPI_Comm_rank( MPI_COMM_WORLD, &myRank );
28  
29 <  if( isEventLoop ){
29 >  if( painCave.isEventLoop ){
30      fprintf( stderr,
31 <             "Error on node %d: %s\n",
31 >             "MPI Error on node %d: %s\n",
32               myRank,
33               painCave.errMsg );
34      return 1;
35    }
36    else{
37 <    fprintf( stderr,
38 <             "Error on node %d: %s\n",
39 <             myRank,
40 <             painCave.errMsg );
41 <    MPI_Allreduce( &myError, &isError, 1, MPI_INT, MPI_LOR, MPI_COMM_WORLD );
42 <    MPI_Allreduce( &painCave.isFatal, &isFatal, 1, MPI_INT, MPI_LOR,
43 <                   MPI_COMM_WORLD );
36 <    if( isFatal ){
37 >    if( painCave.isFatal ){
38 >      fprintf( stderr,
39 >               "MPI Fatal Error on node %d: %s\n",
40 >               myRank,
41 >               painCave.errMsg );
42 >      MPI_Allreduce( &myError, &isError, 1, MPI_INT, MPI_LOR, MPI_COMM_WORLD );
43 >      
44        MPI_Finalize();
45        exit(0);
46      }
47 +    else{
48 +      fprintf( stderr,
49 +               "MPI Non-Fatal Error on node %d: %s\n",
50 +               myRank,
51 +               painCave.errMsg );
52 +    }
53      return 1;
54    }
55  
56   #else
57  
45  fprintf( stderr,
46           "simError: %s\n",
47           painCave.errMsg );
48  
58    if( painCave.isFatal ){
59 +    fprintf( stderr,
60 +             "Fatal Error: %s\n",
61 +             painCave.errMsg );
62      exit(0);
63    }
64 <  
64 >  else{
65 >    fprintf( stderr,
66 >             "Warning: %s\n",
67 >             painCave.errMsg );
68 >  }
69    return 1;
70    
71   #endif // IS_MPI
# Line 59 | Line 75 | int simError( void ) {
75   }
76  
77    
78 + #ifdef IS_MPI
79 +
80 + void checkMPIError( void ){
81 +  
82 +  int myError = 0;
83 +  int isError;
84 +
85 +  MPI_Allreduce( &myError, &isError, 1, MPI_INT, MPI_LOR, MPI_COMM_WORLD );
86 +  if( isError ){
87 +    MPI_Finalize();
88 +    exit(0);
89 +  }
90 + }
91 +
92 + #endif // IS_MPI

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines