check_mpi Subroutine

public subroutine check_mpi(ierr, operation)

Abort the run if an MPI call did not succeed.

operation says what was being done, for example 'MPI_Waitall in sendrecv_fields', and appears in the message with MPI's own description of the error.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ierr
character(len=*), intent(in) :: operation

Calls

proc~~check_mpi~~CallsGraph proc~check_mpi m_logger::check_mpi interface~str m_logger::str proc~check_mpi->interface~str mpi_error_string mpi_error_string proc~check_mpi->mpi_error_string proc~abort_run m_logger::abort_run proc~check_mpi->proc~abort_run proc~abort_run->interface~str mpi_abort mpi_abort proc~abort_run->mpi_abort mpi_barrier mpi_barrier proc~abort_run->mpi_barrier mpi_comm_rank mpi_comm_rank proc~abort_run->mpi_comm_rank mpi_comm_size mpi_comm_size proc~abort_run->mpi_comm_size mpi_finalized mpi_finalized proc~abort_run->mpi_finalized mpi_initialized mpi_initialized proc~abort_run->mpi_initialized

Called by

proc~~check_mpi~~CalledByGraph proc~check_mpi m_logger::check_mpi proc~exchange_dim2_mirror m_cuda_poisson_fft::cuda_poisson_fft_t%exchange_dim2_mirror proc~exchange_dim2_mirror->proc~check_mpi proc~redistribute_110_to_yslab m_cuda_poisson_fft::cuda_poisson_fft_t%redistribute_110_to_yslab proc~redistribute_110_to_yslab->proc~check_mpi proc~redistribute_110_to_zslab m_cuda_poisson_fft::cuda_poisson_fft_t%redistribute_110_to_zslab proc~redistribute_110_to_zslab->proc~check_mpi proc~sendrecv_3fields~2 m_cuda_sendrecv::sendrecv_3fields proc~sendrecv_3fields~2->proc~check_mpi proc~sendrecv_fields~2 m_omp_sendrecv::sendrecv_fields proc~sendrecv_fields~2->proc~check_mpi proc~sendrecv_fields~3 m_cuda_sendrecv::sendrecv_fields proc~sendrecv_fields~3->proc~check_mpi proc~exec_dist_tds_compact~2 m_cuda_exec_dist::exec_dist_tds_compact proc~exec_dist_tds_compact~2->proc~sendrecv_fields~3 proc~exec_dist_tds_compact~3 m_omp_exec_dist::exec_dist_tds_compact proc~exec_dist_tds_compact~3->proc~sendrecv_fields~2 proc~exec_dist_transeq_3fused~2 m_cuda_exec_dist::exec_dist_transeq_3fused proc~exec_dist_transeq_3fused~2->proc~sendrecv_3fields~2 proc~exec_dist_transeq_compact m_omp_exec_dist::exec_dist_transeq_compact proc~exec_dist_transeq_compact->proc~sendrecv_fields~2 proc~fft_backward_110_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_backward_110_cuda proc~fft_backward_110_cuda->proc~redistribute_110_to_zslab proc~fft_forward_110_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_forward_110_cuda proc~fft_forward_110_cuda->proc~redistribute_110_to_yslab proc~fft_postprocess_100_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_postprocess_100_cuda proc~fft_postprocess_100_cuda->proc~exchange_dim2_mirror proc~fft_postprocess_110_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_postprocess_110_cuda proc~fft_postprocess_110_cuda->proc~exchange_dim2_mirror proc~tds_solve_dist m_omp_backend::tds_solve_dist proc~tds_solve_dist->proc~sendrecv_fields~2 proc~tds_solve_dist->proc~exec_dist_tds_compact~3 proc~tds_solve_dist~3 m_cuda_backend::cuda_backend_t%tds_solve_dist proc~tds_solve_dist~3->proc~sendrecv_fields~3 proc~tds_solve_dist~3->proc~exec_dist_tds_compact~2 proc~transeq_cuda_dist m_cuda_backend::cuda_backend_t%transeq_cuda_dist proc~transeq_cuda_dist->proc~sendrecv_3fields~2 proc~transeq_cuda_dist->proc~exec_dist_transeq_3fused~2 proc~transeq_omp_dist m_omp_backend::omp_backend_t%transeq_omp_dist proc~transeq_omp_dist->proc~sendrecv_fields~2 proc~transeq_omp_dist->proc~exec_dist_transeq_compact proc~transeq_species_cuda m_cuda_backend::cuda_backend_t%transeq_species_cuda proc~transeq_species_cuda->proc~sendrecv_fields~3 proc~transeq_species_cuda->proc~exec_dist_transeq_3fused~2 proc~transeq_species_omp m_omp_backend::omp_backend_t%transeq_species_omp proc~transeq_species_omp->proc~sendrecv_fields~2 proc~transeq_species_omp->proc~exec_dist_transeq_compact proc~tds_solve_cuda m_cuda_backend::cuda_backend_t%tds_solve_cuda proc~tds_solve_cuda->proc~tds_solve_dist~3 proc~tds_solve_omp m_omp_backend::omp_backend_t%tds_solve_omp proc~tds_solve_omp->proc~tds_solve_dist proc~transeq_x_cuda m_cuda_backend::cuda_backend_t%transeq_x_cuda proc~transeq_x_cuda->proc~transeq_cuda_dist proc~transeq_x_omp m_omp_backend::omp_backend_t%transeq_x_omp proc~transeq_x_omp->proc~transeq_omp_dist proc~transeq_y_cuda m_cuda_backend::cuda_backend_t%transeq_y_cuda proc~transeq_y_cuda->proc~transeq_cuda_dist proc~transeq_y_omp m_omp_backend::omp_backend_t%transeq_y_omp proc~transeq_y_omp->proc~transeq_omp_dist proc~transeq_z_cuda m_cuda_backend::cuda_backend_t%transeq_z_cuda proc~transeq_z_cuda->proc~transeq_cuda_dist proc~transeq_z_omp m_omp_backend::omp_backend_t%transeq_z_omp proc~transeq_z_omp->proc~transeq_omp_dist