/[escript]/trunk/esysUtils/src/error.c
ViewVC logotype

Diff of /trunk/esysUtils/src/error.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

branches/domexper/paso/src/Paso.c revision 3079 by jfenwick, Tue Aug 3 04:04:51 2010 UTC branches/domexper/esysUtils/src/error.c revision 3227 by jfenwick, Thu Sep 30 06:07:08 2010 UTC
# Line 1  Line 1 
1    
2  /*******************************************************  /*******************************************************
3  *  *
4  * Copyright (c) 2003-2010 by University of Queensland  * Copyright (c) 2010 by University of Queensland
5  * Earth Systems Science Computational Center (ESSCC)  * Earth Systems Science Computational Center (ESSCC)
6  * http://www.uq.edu.au/esscc  * http://www.uq.edu.au/esscc
7  *  *
# Line 12  Line 12 
12  *******************************************************/  *******************************************************/
13    
14    
15  /**************************************************************/  #include <string.h>
16    #include "error.h"
 /*    Paso finite element solver */  
   
 /**************************************************************/  
   
 /*   Copyrights by ACcESS Australia, 2003 */  
 /*   Version: $Id$ */  
   
 /**************************************************************/  
   
 #include "Paso.h"  
17    
18  #ifdef _OPENMP  #ifdef _OPENMP
19  #include <omp.h>  #include <omp.h>
# Line 35  Line 25 
25  #include <time.h>  #include <time.h>
26  #endif  #endif
27    
28  Paso_ErrorCodeType Paso_ErrorCode_=NO_ERROR;  
29  char Paso_ErrorMsg_[LenErrorMsg_MAX]={'\0'};  
30    #define MIN(X,Y) ((X)<(Y)?(X):(Y))
31    
32    
33    
34    Esys_ErrorCodeType Esys_ErrorCode_=NO_ERROR;
35    char Esys_ErrorMsg_[LenErrorMsg_MAX]={'\0'};
36    
37  /* reset the error to NO_ERROR */  /* reset the error to NO_ERROR */
38  void Paso_resetError(void) {  void Esys_resetError(void) {
39    Paso_ErrorCode_=NO_ERROR;    Esys_ErrorCode_=NO_ERROR;
40  }  }
41                                                                                                                                                                                                                                                                                                                                                                                                            
42  /* sets an error */  /* sets an error */
43  void Paso_setError(Paso_ErrorCodeType err,__const char* msg) {  void Esys_setError(Esys_ErrorCodeType err,__const char* msg) {
44    size_t lenMsg=strlen(msg);    size_t lenMsg=strlen(msg);
45    if (Paso_noError()) {    if (Esys_noError()) {
46  /* printf("error set = %d %s\n",err,msg); */  /* printf("error set = %d %s\n",err,msg); */
47       Paso_ErrorCode_=err;       Esys_ErrorCode_=err;
48       strncpy(Paso_ErrorMsg_,msg,MIN(LenErrorMsg_MAX,lenMsg));       strncpy(Esys_ErrorMsg_,msg,MIN(LenErrorMsg_MAX,lenMsg));
49       Paso_ErrorMsg_[MIN(LenErrorMsg_MAX,lenMsg)]='\0';       Esys_ErrorMsg_[MIN(LenErrorMsg_MAX,lenMsg)]='\0';
50    }    }
51  }  }
52                                                                                                                                                                                                                                                                                                                                                                                                            
53  /* checks if there is no error */  /* checks if there is no error */
54  bool_t Paso_noError(void) {  bool_t Esys_noError(void) {
55     Paso_ErrorCodeType err=Paso_getErrorType();     Esys_ErrorCodeType err=Esys_getErrorType();
56     /* return (err==NO_ERROR ||  err==WARNING);*/     /* return (err==NO_ERROR ||  err==WARNING);*/
57     return (err==NO_ERROR);     return (err==NO_ERROR);
58  }  }
59  /* This function checks if the pointer ptr has a target. If not an  /* This function checks if the pointer ptr has a target. If not an
60     error is raised and TRUE is returned. */     error is raised and TRUE is returned. */
61    
62  bool_t Paso_checkPtr(void* ptr) {  bool_t Esys_checkPtr(void* ptr) {
63     if (ptr==NULL) {     if (ptr==NULL) {
64        Paso_setError(MEMORY_ERROR,"Out of memory.");        Esys_setError(MEMORY_ERROR,"Out of memory.");
65        return TRUE;        return TRUE;
66     } else {     } else {
67        return FALSE;        return FALSE;
# Line 73  bool_t Paso_checkPtr(void* ptr) { Line 69  bool_t Paso_checkPtr(void* ptr) {
69  }  }
70    
71  /* This function returns a timer */  /* This function returns a timer */
72  double Paso_timer(void) {  double Esys_timer(void) {
73    double out;    double out;
74    
75  #ifdef PASO_MPI  #ifdef PASO_MPI
# Line 95  int omp_get_max_threads(void) { Line 91  int omp_get_max_threads(void) {
91    
92    
93  /* return the error code */  /* return the error code */
94  Paso_ErrorCodeType Paso_getErrorType(void) {  Esys_ErrorCodeType Esys_getErrorType(void) {
95     return Paso_ErrorCode_;     return Esys_ErrorCode_;
96  }  }
97    
98  /* return the error message */  /* return the error message */
99  char* Paso_getErrorMessage(void) {  char* Esys_getErrorMessage(void) {
100     return Paso_ErrorMsg_;     return Esys_ErrorMsg_;
101  }  }
102  /**************************************************************/  /**************************************************************/

Legend:
Removed from v.3079  
changed lines
  Added in v.3227

  ViewVC Help
Powered by ViewVC 1.1.26