use fatal_error to cleanly finalize MPI in case of SPI errors