:orphan:
# PETSCABORT
Call `MPI_Abort()` with an informative error code 
## Synopsis
```
#include <petscsys.h>
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
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/include/petscerror.h.html#PETSCABORT">include/petscerror.h</A>


---
[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)  
