1e04113cfSBarry Smith 226bd1501SBarry Smith #if !defined(PETSCVIEWERSAWS_H) 326bd1501SBarry Smith #define PETSCVIEWERSAWS_H 4e04113cfSBarry Smith 5e04113cfSBarry Smith #include <petscviewer.h> 6e04113cfSBarry Smith #include <SAWs.h> 792081c13SBarry Smith PETSC_EXTERN PetscErrorCode PetscViewerSAWsOpen(MPI_Comm, PetscViewer *); 8e04113cfSBarry Smith PETSC_EXTERN PetscViewer PETSC_VIEWER_SAWS_(MPI_Comm); 9e04113cfSBarry Smith #define PETSC_VIEWER_SAWS_WORLD PETSC_VIEWER_SAWS_(PETSC_COMM_WORLD) 10e04113cfSBarry Smith #define PETSC_VIEWER_SAWS_SELF PETSC_VIEWER_SAWS_(PETSC_COMM_SELF) 11e04113cfSBarry Smith 12*9371c9d4SSatish Balay #define PetscCallSAWs(func, args) \ 13*9371c9d4SSatish Balay do { \ 14*9371c9d4SSatish Balay PetscErrorCode _ierr; \ 15*9371c9d4SSatish Balay PetscStackPushExternal(#func); \ 16*9371c9d4SSatish Balay _ierr = func args; \ 17*9371c9d4SSatish Balay PetscStackPop; \ 18*9371c9d4SSatish Balay PetscCheck(!_ierr, PETSC_COMM_SELF, PETSC_ERR_LIB, "Error in %s() %d", #func, _ierr); \ 19e04113cfSBarry Smith } while (0) 20e04113cfSBarry Smith 21e04113cfSBarry Smith #endif 22