finalizes the system default communicator
SUBROUTINE mp_world_finalize()
!! finalizes the system default communicator
#if defined(__parallel)
INTEGER :: ierr
CALL mpi_barrier(MPI_COMM_WORLD, ierr) ! call mpi directly to avoid 0 stack pointer
CALL rm_mp_perf_env()
IF (ierr /= 0) CALL mp_stop(ierr, "mpi_barrier @ mp_world_finalize")
debug_comm_count = debug_comm_count - 1
IF (debug_comm_count .NE. 0) THEN
! A bug, we're leaking or double-freeing communicators. Needs to be fixed where the leak happens.
! Memory leak checking might be helpful to locate the culprit
DBCSR_ABORT("mp_world_finalize: assert failed: leaking communicators")
END IF
CALL mpi_finalize(ierr)
IF (ierr /= 0) CALL mp_stop(ierr, "mpi_finalize @ mp_world_finalize")
#else
CALL rm_mp_perf_env()
#endif
END SUBROUTINE mp_world_finalize