:orphan: # PETSCABORT Call `MPI_Abort()` with an informative error code ## Synopsis ``` #include PETSCABORT(MPI_Comm comm, PetscErrorCode ierr) ``` Collective; No Fortran Support ## Input Parameters - ***comm -*** A communicator, so that the error can be collective - ***ierr -*** nonzero error code, see the list of standard error codes in include/petscerror.h ## Notes If the option `-start_in_debugger` was used then this calls `abort()` to stop the program in the debugger. if `PetscCIEnabledPortableErrorOutput` is set, which means the code is running in the PETSc test harness (make test), and `comm` is `MPI_COMM_WORLD` it strives to exit cleanly without calling `MPI_Abort()` and instead calling `MPI_Finalize()`. This is currently only used when an error propagates up to the C `main()` program and is detected by a `PetscCall()`, `PetscCallMPI()`, or is set in `main()` with `SETERRQ()`. Abort calls such as `SETERRABORT()`, `PetscCheckAbort()`, `PetscCallMPIAbort()`, and `PetscCallAbort()` always call `MPI_Abort()` and do not have any special handling for the test harness. ## Developer Note Should the other abort calls also pass through this call instead of calling `MPI_Abort()` directly? ## See Also `PetscError()`, `PetscCall()`, `SETERRABORT()`, `PetscCheckAbort()`, `PetscCallMPIAbort()`, `PetscCall()`, `PetscCallMPI()`, `PetscCallAbort()`, `MPI_Abort()` ## Level advanced ## Location include/petscerror.h --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscerror.h) [Index of all Sys routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)