Actual source code: ex1f.F
1: !
2: ! Simple PETSc Program to test setting error handlers from Fortran
3: !
4: subroutine GenerateErr(ierr)
5: #include include/finclude/petsc.h
6: PetscErrorCode ierr
8: call PetscError(1,1,'Error message',ierr)
10: return
11: end
13: subroutine MyErrHandler(line,fun,file,dir,n,p,mess,ctx,ierr)
14: #include include/finclude/petsc.h
15: integer line,n,p
16: PetscInt ctx
17: PetscErrorCode ierr
18: character*(*) fun,file,dir,mess
20: print*,'My error handler ',mess
21: return
22: end
24: program main
25: #include include/finclude/petsc.h
26: PetscErrorCode ierr
27: external MyErrHandler
29: call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
31: call PetscPushErrorHandler(PetscTraceBackErrorHandler, &
32: & PETSC_NULL_INTEGER,ierr)
34: call GenerateErr(ierr)
36: call PetscPushErrorHandler(MyErrHandler, &
37: & PETSC_NULL_INTEGER,ierr)
39: call GenerateErr(ierr)
41: call PetscPushErrorHandler(PetscAbortErrorHandler, &
42: & PETSC_NULL_INTEGER,ierr)
44: call GenerateErr(ierr)
46: call PetscFinalize(ierr)
47: end