ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/mdtools/interface_implementation/simError.c
Revision: 154
Committed: Tue Oct 22 22:12:44 2002 UTC (21 years, 8 months ago) by mmeineke
Content type: text/plain
File size: 951 byte(s)
Log Message:
*** empty log message ***

File Contents

# Content
1 #include <stdlib.h>
2 #include <stdio.h>
3
4 #ifdef IS_MPI
5 #include <mpi.h>
6 #endif // IS_MPI
7
8 #include "simError.h"
9
10
11 int simError( void ) {
12
13 #ifdef IS_MPI
14 int myRank;
15 int myError = 1;
16 int isError;
17 int isFatal;
18
19 MPI_Comm_rank( MPI_COMM_WORLD, &myRank );
20
21 if( isEventLoop ){
22 fprintf( stderr,
23 "Error on node %d: %s\n",
24 myRank,
25 painCave.errMsg );
26 return 1;
27 }
28 else{
29 fprintf( stderr,
30 "Error on node %d: %s\n",
31 myRank,
32 painCave.errMsg );
33 MPI_Allreduce( &myError, &isError, 1, MPI_INT, MPI_LOR, MPI_COMM_WORLD );
34 MPI_Allreduce( &painCave.isFatal, &isFatal, 1, MPI_INT, MPI_LOR,
35 MPI_COMM_WORLD );
36 if( isFatal ){
37 MPI_Finalize();
38 exit(0);
39 }
40 return 1;
41 }
42
43 #else
44
45 fprintf( stderr,
46 "simError: %s\n",
47 painCave.errMsg );
48
49 if( painCave.isFatal ){
50 exit(0);
51 }
52
53 return 1;
54
55 #endif // IS_MPI
56
57 return 0; // in case nobody caught that.
58
59 }
60
61