stops after an mpi error translating the error code
this function is private to mpiwrap.F
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ierr |
an error code * returned by an mpi call * |
||
character(len=*) | :: | prg_code |
SUBROUTINE mp_stop(ierr, prg_code)
!! stops *after an mpi error* translating the error code
!! @note
!! this function is private to mpiwrap.F
INTEGER, INTENT(IN) :: ierr
!! an error code * returned by an mpi call *
CHARACTER(LEN=*) :: prg_code
#if defined(__parallel)
INTEGER :: istat, len
CHARACTER(LEN=MPI_MAX_ERROR_STRING) :: error_string
CHARACTER(LEN=MPI_MAX_ERROR_STRING + 512) :: full_error
#else
CHARACTER(LEN=512) :: full_error
#endif
#if defined(__parallel)
CALL mpi_error_string(ierr, error_string, len, istat)
WRITE (full_error, '(A,I0,A)') ' MPI error ', ierr, ' in '//TRIM(prg_code)//' : '//error_string(1:len)
#else
WRITE (full_error, '(A,I0,A)') ' MPI error (!?) ', ierr, ' in '//TRIM(prg_code)
#endif
DBCSR_ABORT(full_error)
END SUBROUTINE mp_stop