31 use,
intrinsic :: iso_fortran_env
43 type(MPI_Comm),
parameter,
public :: MPI_COMM_UNDEFINED =
mpi_comm(-1)
46 integer,
parameter,
private :: ROOT_PROCESS = 0
51 type(MPI_Comm) :: comm = mpi_comm_undefined
61 procedure :: dmpi_grp_scatterv, zmpi_grp_scatterv, impi_grp_scatterv, lmpi_grp_scatterv, smpi_grp_scatterv, &
63 generic :: scatterv => dmpi_grp_scatterv, zmpi_grp_scatterv, impi_grp_scatterv, lmpi_grp_scatterv, smpi_grp_scatterv, &
65 procedure :: dmpi_grp_scatterv_i8, zmpi_grp_scatterv_i8, impi_grp_scatterv_i8, lmpi_grp_scatterv_i8, &
66 smpi_grp_scatterv_i8, cmpi_grp_scatterv_i8
67 generic :: scatterv => dmpi_grp_scatterv_i8, zmpi_grp_scatterv_i8, impi_grp_scatterv_i8, lmpi_grp_scatterv_i8, &
68 smpi_grp_scatterv_i8, cmpi_grp_scatterv_i8
69 procedure :: dmpi_grp_gatherv, zmpi_grp_gatherv, impi_grp_gatherv, lmpi_grp_gatherv, smpi_grp_gatherv, cmpi_grp_gatherv
70 generic :: gatherv => dmpi_grp_gatherv, zmpi_grp_gatherv, impi_grp_gatherv, lmpi_grp_gatherv, smpi_grp_gatherv, &
72 procedure :: dmpi_grp_gather_0, zmpi_grp_gather_0, impi_grp_gather_0, lmpi_grp_gather_0, smpi_grp_gather_0, &
74 generic :: gather => dmpi_grp_gather_0, zmpi_grp_gather_0, impi_grp_gather_0, lmpi_grp_gather_0, smpi_grp_gather_0, &
76 procedure :: dmpi_grp_gatherv_i8, zmpi_grp_gatherv_i8, impi_grp_gatherv_i8, lmpi_grp_gatherv_i8, smpi_grp_gatherv_i8, &
78 generic :: gatherv => dmpi_grp_gatherv_i8, zmpi_grp_gatherv_i8, impi_grp_gatherv_i8, lmpi_grp_gatherv_i8, &
79 smpi_grp_gatherv_i8, cmpi_grp_gatherv_i8
80 procedure :: dmpi_grp_alltoallv, zmpi_grp_alltoallv, impi_grp_alltoallv, lmpi_grp_alltoallv, smpi_grp_alltoallv, &
82 generic :: alltoallv => dmpi_grp_alltoallv, zmpi_grp_alltoallv, impi_grp_alltoallv, lmpi_grp_alltoallv, &
83 smpi_grp_alltoallv, cmpi_grp_alltoallv
84 procedure :: dmpi_grp_alltoallv_2, zmpi_grp_alltoallv_2, impi_grp_alltoallv_2, lmpi_grp_alltoallv_2, &
85 smpi_grp_alltoallv_2, cmpi_grp_alltoallv_2
86 generic :: alltoallv => dmpi_grp_alltoallv_2, zmpi_grp_alltoallv_2, impi_grp_alltoallv_2, lmpi_grp_alltoallv_2, &
87 smpi_grp_alltoallv_2, cmpi_grp_alltoallv_2
88 procedure :: dmpi_grp_alltoallv_3, zmpi_grp_alltoallv_3, impi_grp_alltoallv_3, lmpi_grp_alltoallv_3, &
89 smpi_grp_alltoallv_3, cmpi_grp_alltoallv_3
90 generic :: alltoallv => dmpi_grp_alltoallv_3, zmpi_grp_alltoallv_3, impi_grp_alltoallv_3, lmpi_grp_alltoallv_3, &
91 smpi_grp_alltoallv_3, cmpi_grp_alltoallv_3
92 procedure :: dmpi_grp_alltoallv_i8, zmpi_grp_alltoallv_i8, impi_grp_alltoallv_i8, lmpi_grp_alltoallv_i8, &
93 smpi_grp_alltoallv_i8, cmpi_grp_alltoallv_i8
94 generic :: alltoallv => dmpi_grp_alltoallv_i8, zmpi_grp_alltoallv_i8, impi_grp_alltoallv_i8, lmpi_grp_alltoallv_i8, &
95 smpi_grp_alltoallv_i8, cmpi_grp_alltoallv_i8
96 procedure :: dmpi_grp_alltoall, zmpi_grp_alltoall, impi_grp_alltoall, lmpi_grp_alltoall, smpi_grp_alltoall, &
98 generic :: alltoall => dmpi_grp_alltoall, zmpi_grp_alltoall, impi_grp_alltoall, lmpi_grp_alltoall, smpi_grp_alltoall, &
100 procedure :: dmpi_grp_allgatherv, zmpi_grp_allgatherv, impi_grp_allgatherv, lmpi_grp_allgatherv, smpi_grp_allgatherv, &
102 generic :: allgatherv => dmpi_grp_allgatherv, zmpi_grp_allgatherv, impi_grp_allgatherv, lmpi_grp_allgatherv, &
103 smpi_grp_allgatherv, cmpi_grp_allgatherv
104 procedure :: dmpi_grp_allgatherv_2, zmpi_grp_allgatherv_2, impi_grp_allgatherv_2, lmpi_grp_allgatherv_2, &
105 smpi_grp_allgatherv_2, cmpi_grp_allgatherv_2
106 generic :: allgatherv => dmpi_grp_allgatherv_2, zmpi_grp_allgatherv_2, impi_grp_allgatherv_2, lmpi_grp_allgatherv_2, &
107 smpi_grp_allgatherv_2, cmpi_grp_allgatherv_2
108 procedure :: dmpi_grp_allgatherv_3, zmpi_grp_allgatherv_3, impi_grp_allgatherv_3, lmpi_grp_allgatherv_3, &
109 smpi_grp_allgatherv_3, cmpi_grp_allgatherv_3
110 generic :: allgatherv => dmpi_grp_allgatherv_3, zmpi_grp_allgatherv_3, impi_grp_allgatherv_3, lmpi_grp_allgatherv_3, &
111 smpi_grp_allgatherv_3, cmpi_grp_allgatherv_3
112 procedure :: dmpi_grp_allgatherv_3_1, zmpi_grp_allgatherv_3_1, impi_grp_allgatherv_3_1, lmpi_grp_allgatherv_3_1, &
113 smpi_grp_allgatherv_3_1, cmpi_grp_allgatherv_3_1
114 generic :: allgatherv => dmpi_grp_allgatherv_3_1, zmpi_grp_allgatherv_3_1, impi_grp_allgatherv_3_1, &
115 lmpi_grp_allgatherv_3_1, smpi_grp_allgatherv_3_1, cmpi_grp_allgatherv_3_1
116 procedure :: dmpi_grp_allgatherv_i8, zmpi_grp_allgatherv_i8, impi_grp_allgatherv_i8, lmpi_grp_allgatherv_i8, &
117 smpi_grp_allgatherv_i8, cmpi_grp_allgatherv_i8
118 generic :: allgatherv => dmpi_grp_allgatherv_i8, zmpi_grp_allgatherv_i8, impi_grp_allgatherv_i8, lmpi_grp_allgatherv_i8, &
119 smpi_grp_allgatherv_i8, cmpi_grp_allgatherv_i8
120 procedure :: dmpi_grp_allgatherv_inplace, zmpi_grp_allgatherv_inplace, &
121 impi_grp_allgatherv_inplace, lmpi_grp_allgatherv_inplace, &
122 smpi_grp_allgatherv_inplace, cmpi_grp_allgatherv_inplace
123 generic :: allgatherv_inplace => dmpi_grp_allgatherv_inplace, zmpi_grp_allgatherv_inplace, &
124 impi_grp_allgatherv_inplace, lmpi_grp_allgatherv_inplace, &
125 smpi_grp_allgatherv_inplace, cmpi_grp_allgatherv_inplace
126 procedure :: dmpi_grp_bcast, zmpi_grp_bcast, impi_grp_bcast, lmpi_grp_bcast, smpi_grp_bcast, cmpi_grp_bcast
127 generic :: bcast => dmpi_grp_bcast, zmpi_grp_bcast, impi_grp_bcast, lmpi_grp_bcast, smpi_grp_bcast, cmpi_grp_bcast
128 procedure :: dmpi_grp_bcast_0, zmpi_grp_bcast_0, impi_grp_bcast_0, lmpi_grp_bcast_0, smpi_grp_bcast_0, cmpi_grp_bcast_0
129 generic :: bcast => dmpi_grp_bcast_0, zmpi_grp_bcast_0, impi_grp_bcast_0, lmpi_grp_bcast_0, smpi_grp_bcast_0, &
131 procedure :: dmpi_grp_bcast_2, zmpi_grp_bcast_2, impi_grp_bcast_2, lmpi_grp_bcast_2, smpi_grp_bcast_2, cmpi_grp_bcast_2
132 generic :: bcast => dmpi_grp_bcast_2, zmpi_grp_bcast_2, impi_grp_bcast_2, lmpi_grp_bcast_2, smpi_grp_bcast_2, &
134 procedure :: dmpi_grp_bcast_3, zmpi_grp_bcast_3, impi_grp_bcast_3, lmpi_grp_bcast_3, smpi_grp_bcast_3, cmpi_grp_bcast_3
135 generic :: bcast => dmpi_grp_bcast_3, zmpi_grp_bcast_3, impi_grp_bcast_3, lmpi_grp_bcast_3, smpi_grp_bcast_3, &
137 procedure :: chmpi_grp_bcast_0, lompi_grp_bcast_0
138 generic :: bcast => chmpi_grp_bcast_0, lompi_grp_bcast_0
255#if defined(HAVE_MPI) && defined(HAVE_OPENMP)
258 integer,
parameter :: octopus_mpi_thread_level = mpi_thread_funneled
260#elif defined(HAVE_MPI)
262 integer,
parameter :: octopus_mpi_thread_level = mpi_thread_single
278#if defined(HAVE_OPENMP)
281 call mpi_init_thread(octopus_mpi_thread_level, provided)
286 comm = mpi_comm_world
288 comm = mpi_comm_undefined
299#if defined(HAVE_MPI) && defined(HAVE_OPENMP)
300 integer :: provided, ierr, rank
302 call mpi_query_thread(provided)
303 if (provided < octopus_mpi_thread_level)
then
304 call mpi_comm_rank(comm, rank)
305 if (rank == 0)
write(*,
'(a)')
'MPI library threading support is less than required by Octopus'
306 call mpi_abort(comm, 1, ierr)
319 integer :: iam, nprocs
320 integer :: blacs_default_system_context
323 call blacs_pinfo(iam, nprocs)
352 if (
mpi_world%comm /= mpi_comm_undefined)
call mpi_finalize()
371 if (grp%comm == mpi_comm_undefined)
then
376 call mpi_comm_rank(grp%comm, grp%rank)
378 call mpi_comm_size(grp%comm, grp%size)
403#if defined(HAVE_MPI) && defined(HAVE_OPENMP)
404 logical function mpi_call_is_thread_funneled_safe()
405 mpi_call_is_thread_funneled_safe = &
407 end function mpi_call_is_thread_funneled_safe
412 type(
mpi_grp_t),
intent(out) :: mpi_grp_out
413 type(
mpi_grp_t),
intent(in) :: mpi_grp_in
415 mpi_grp_out%comm = mpi_grp_in%comm
416 mpi_grp_out%size = mpi_grp_in%size
417 mpi_grp_out%rank = mpi_grp_in%rank
422 type(
mpi_grp_t),
intent(out) :: mpi_grp_out
423 type(
mpi_grp_t),
intent(in) :: mpi_grp_in
426 call mpi_comm_dup(mpi_grp_in%comm, mpi_grp_out%comm)
427 call mpi_comm_rank(mpi_grp_out%comm, mpi_grp_out%rank)
428 call mpi_comm_size(mpi_grp_out%comm, mpi_grp_out%size)
445 if (mpi_grp%comm == mpi_comm_undefined)
return
450 call mpi_barrier(mpi_grp%comm)
458 character(len=*),
intent(inout) :: buf
459 integer,
intent(in) :: cnt
461 integer,
intent(in) :: root
467 if (mpi_grp%comm /= mpi_comm_undefined)
then
468 call mpi_bcast(buf, cnt, sendtype, root, mpi_grp%comm)
477 logical,
intent(inout) :: buf
478 integer,
intent(in) :: cnt
480 integer,
intent(in) :: root
486 if (mpi_grp%comm /= mpi_comm_undefined)
then
487 call mpi_bcast(buf, cnt, sendtype, root, mpi_grp%comm)
497 logical,
target,
intent(in) :: sendbuf
498 logical,
target,
intent(out) :: recvbuf
499 integer,
intent(in) :: count
501 logical,
pointer :: send(:), recv(:)
503 call c_f_pointer(c_loc(sendbuf), send, [count])
504 call c_f_pointer(c_loc(recvbuf), recv, [count])
513 logical,
intent(in) :: sendbuf
514 logical,
intent(out) :: recvbuf
515 integer,
intent(in) :: count
517 type(
mpi_op),
intent(in) :: op
523 if (mpi_grp%comm /= mpi_comm_undefined)
then
524 call mpi_allreduce(sendbuf, recvbuf, count, datatype, op, &
538 logical,
intent(inout) :: recvbuf
539 integer,
intent(in) :: count
541 type(
mpi_op),
intent(in) :: op
547 if (mpi_grp%comm /= mpi_comm_undefined)
then
548 call mpi_allreduce(
mpi_in_place, recvbuf, count, datatype, op, &
556 subroutine lompi_grp_recv_0(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
558 logical,
intent(out) :: recvbuf
559 integer,
intent(in) :: recvcount
561 integer,
intent(in) :: source
562 integer,
optional,
intent(in) :: tag
567 if (
present(tag)) tag_ = tag
568 if (mpi_grp%comm == mpi_comm_undefined)
return
573 call mpi_recv(recvbuf, recvcount, recvtype, source, tag_, mpi_grp%comm, mpi_status_ignore)
579 subroutine lompi_grp_send_0(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
581 logical,
intent(in) :: sendbuf
582 integer,
intent(in) :: sendcount
584 integer,
intent(in) :: dest
585 integer,
optional,
intent(in) :: tag
590 if (
present(tag)) tag_ = tag
591 if (mpi_grp%comm == mpi_comm_undefined)
return
596 call mpi_send(sendbuf, sendcount, sendtype, dest, tag_, mpi_grp%comm)
606 if (mpi_grp%comm == mpi_comm_undefined)
return
611 call mpi_wait(request, mpi_status_ignore)
619 integer,
intent(in) :: count
622 if (mpi_grp%comm == mpi_comm_undefined)
return
627 call mpi_waitall(count, requests, mpi_statuses_ignore)
636 if (mpi_grp%comm /= mpi_comm_undefined)
then
641 call mpi_abort(mpi_grp%comm, 999)
661#include "mpi_inc.F90"
664#include "complex.F90"
665#include "mpi_inc.F90"
668#include "integer.F90"
669#include "mpi_inc.F90"
672#include "integer8.F90"
673#include "mpi_inc.F90"
677#include "mpi_inc.F90"
680#include "complex32.F90"
681#include "mpi_inc.F90"
Interface for function returned by mpi_call_is_thread_safe_factory
This module contains interfaces for BLACS routines Interfaces are from http:
System information (time, memory, sysname)
integer, parameter, public c_mpi_allreduce
integer, parameter, public c_mpi_recv
subroutine, public mpi_debug_in(comm, index)
integer, parameter, public c_mpi_send
integer, parameter, public c_mpi_waitall
integer, parameter, public c_mpi_bcast
integer, parameter, public c_mpi_barrier
integer, parameter, public c_mpi_wait
subroutine, public mpi_debug_out(comm, index)
subroutine lmpi_grp_bcast_0_l(mpi_grp, buf, cnt, sendtype, root)
subroutine mpi_grp_abort(mpi_grp)
subroutine impi_grp_irecv(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine smpi_grp_bcast_0_l(mpi_grp, buf, cnt, sendtype, root)
subroutine smpi_grp_allreduce_0(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine dmpi_grp_recv_2(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine smpi_grp_isend_3(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine dmpi_grp_recv_0(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine smpi_grp_allgather_0(mpi_grp, sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype)
subroutine smpi_grp_isend_0_int64(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine zmpi_grp_isend_0(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine impi_grp_allreduce_3(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine impi_grp_allreduce_0(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine mpi_grp_duplicate(mpi_grp_out, mpi_grp_in)
subroutine zmpi_grp_allreduce(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine impi_grp_irecv_0(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine lmpi_grp_allreduce_3(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine smpi_grp_isend_0(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine lmpi_grp_allreduce_inplace_1(mpi_grp, recvbuf, count, datatype, op)
subroutine cmpi_grp_allreduce_3(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine lmpi_grp_send(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine dmpi_grp_allreduce_inplace_1(mpi_grp, recvbuf, count, datatype, op)
subroutine lmpi_grp_isend(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine zmpi_grp_bcast_0_l(mpi_grp, buf, cnt, sendtype, root)
subroutine lompi_grp_copy_0(sendbuf, recvbuf, count)
subroutine smpi_grp_allreduce_inplace_0(mpi_grp, recvbuf, count, datatype, op)
subroutine smpi_grp_irecv(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine smpi_grp_isend(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine cmpi_grp_send_3(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine zmpi_grp_irecv_0_int64(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine zmpi_grp_recv_3(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine cmpi_grp_allreduce_2(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine blacs_init()
Initialize BLACS to enable use of SCALAPACK.
subroutine impi_grp_send_3(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
real(real64) function, public mpi_get_wtime()
. Returns an elapsed time on the calling processor.
subroutine dmpi_grp_irecv_3(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine impi_grp_bcast_0_l(mpi_grp, buf, cnt, sendtype, root)
subroutine zmpi_grp_isend(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine dmpi_grp_isend_3(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine zmpi_grp_irecv_3(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine lompi_grp_bcast_0(mpi_grp, buf, cnt, sendtype, root)
logical function mpi_grp_is_root(grp)
Is the current MPI process of grpcomm, root.
subroutine zmpi_grp_allreduce_inplace_1(mpi_grp, recvbuf, count, datatype, op)
subroutine lmpi_grp_allgather_0(mpi_grp, sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype)
subroutine impi_grp_irecv_2(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine cmpi_grp_recv_2(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine zmpi_grp_recv(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine zmpi_grp_allreduce_0(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine smpi_grp_recv_2(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine cmpi_grp_irecv_0_int64(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine zmpi_grp_allgather(mpi_grp, sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype)
subroutine zmpi_grp_irecv(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
procedure(omp_region_func), pointer mpi_call_is_thread_safe
Single-threaded without MPI.
subroutine dmpi_grp_allgather(mpi_grp, sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype)
subroutine mpi_grp_copy(mpi_grp_out, mpi_grp_in)
MPI_THREAD_FUNNELED allows for calls to MPI from an OMP region if the thread is the team master.
subroutine zmpi_grp_isend_3(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine dmpi_grp_bcast_0_l(mpi_grp, buf, cnt, sendtype, root)
subroutine impi_grp_isend_2(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine impi_grp_allreduce(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine impi_grp_recv_0(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine lmpi_grp_recv_3(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine smpi_grp_irecv_0(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine impi_grp_isend(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine lmpi_grp_recv(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine impi_grp_send_0(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine dmpi_grp_allreduce_inplace_0(mpi_grp, recvbuf, count, datatype, op)
subroutine cmpi_grp_allreduce_inplace_1(mpi_grp, recvbuf, count, datatype, op)
subroutine dmpi_grp_allreduce_0(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine lompi_grp_allreduce_inplace_0(mpi_grp, recvbuf, count, datatype, op)
subroutine impi_grp_isend_0_int64(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine smpi_grp_allreduce_inplace_2(mpi_grp, recvbuf, count, datatype, op)
subroutine cmpi_grp_isend_0(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine impi_grp_recv_2(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine zmpi_grp_irecv_2(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine dmpi_grp_isend_0(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine zmpi_grp_send_0(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine lmpi_grp_allreduce_2(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine dmpi_grp_irecv(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine lmpi_grp_irecv_0_int64(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine cmpi_grp_isend_2(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine smpi_grp_irecv_0_int64(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine cmpi_grp_isend(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine dmpi_grp_send_2(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine cmpi_grp_allreduce_inplace_2(mpi_grp, recvbuf, count, datatype, op)
subroutine smpi_grp_allreduce_2(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine smpi_grp_send_3(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine smpi_grp_irecv_2(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine impi_grp_irecv_0_int64(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine lompi_grp_recv_0(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine zmpi_grp_allreduce_inplace_0(mpi_grp, recvbuf, count, datatype, op)
subroutine dmpi_grp_allreduce_2(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine cmpi_grp_recv_0(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine zmpi_grp_recv_0(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine cmpi_grp_recv(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine smpi_grp_allgather(mpi_grp, sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype)
subroutine check_threading_support(comm)
Check that the threading support of the MPI library is consistent with the requested support from Oct...
subroutine smpi_grp_recv_3(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine dmpi_grp_allgather_0(mpi_grp, sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype)
subroutine smpi_grp_allreduce_inplace_1(mpi_grp, recvbuf, count, datatype, op)
subroutine dmpi_grp_send_0(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine smpi_grp_recv_0(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine lmpi_grp_recv_2(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine cmpi_grp_irecv_3(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine zmpi_grp_allgather_0(mpi_grp, sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype)
subroutine mpi_grp_wait(mpi_grp, request)
subroutine lmpi_grp_irecv(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
type(mpi_grp_t), public mpi_world
subroutine impi_grp_isend_0(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine lmpi_grp_allgather(mpi_grp, sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype)
subroutine mpi_mod_end()
Finalize MPI, and conditionally BLACS.
subroutine cmpi_grp_irecv_2(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine dmpi_grp_allreduce_3(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine dmpi_grp_send(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine lmpi_grp_recv_0(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
logical pure function, private not_in_openmp()
Not in an OpenMP region.
subroutine cmpi_grp_irecv(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine dmpi_grp_recv_3(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine zmpi_grp_send(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine lmpi_grp_isend_2(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine cmpi_grp_allgather_0(mpi_grp, sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype)
subroutine cmpi_grp_allreduce_inplace_0(mpi_grp, recvbuf, count, datatype, op)
subroutine mpi_grp_init(grp, comm)
Initialize MPI group instance.
subroutine cmpi_grp_isend_0_int64(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine zmpi_grp_send_2(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine dmpi_grp_irecv_0(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine smpi_grp_send(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine impi_grp_irecv_3(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine lmpi_grp_allreduce_0(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine impi_grp_isend_3(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine dmpi_grp_isend(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine dmpi_grp_isend_2(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine smpi_grp_recv(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine zmpi_grp_recv_2(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine dmpi_grp_recv(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine zmpi_grp_isend_0_int64(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine impi_grp_allgather_0(mpi_grp, sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype)
subroutine lmpi_grp_irecv_3(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine zmpi_grp_allreduce_3(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine smpi_grp_allreduce(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine dmpi_grp_allreduce_inplace_2(mpi_grp, recvbuf, count, datatype, op)
subroutine lmpi_grp_allreduce(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine smpi_grp_send_2(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine lmpi_grp_allreduce_inplace_2(mpi_grp, recvbuf, count, datatype, op)
subroutine cmpi_grp_isend_3(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine mpi_grp_barrier(mpi_grp)
subroutine impi_grp_recv_3(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine zmpi_grp_irecv_0(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine cmpi_grp_allgather(mpi_grp, sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype)
subroutine impi_grp_allreduce_inplace_1(mpi_grp, recvbuf, count, datatype, op)
subroutine cmpi_grp_bcast_0_l(mpi_grp, buf, cnt, sendtype, root)
subroutine lmpi_grp_send_2(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine impi_grp_allgather(mpi_grp, sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype)
subroutine mpi_init_comm(comm)
Wrapper for MPI_COMM_WORLD initialisation.
subroutine impi_grp_send_2(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine dmpi_grp_allreduce(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine dmpi_grp_irecv_2(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine lmpi_grp_allreduce_inplace_0(mpi_grp, recvbuf, count, datatype, op)
subroutine cmpi_grp_send_0(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine cmpi_grp_irecv_0(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine impi_grp_allreduce_inplace_0(mpi_grp, recvbuf, count, datatype, op)
subroutine lmpi_grp_isend_0_int64(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine dmpi_grp_irecv_0_int64(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine smpi_grp_allreduce_3(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine cmpi_grp_allreduce_0(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine smpi_grp_isend_2(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine lmpi_grp_send_0(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine lmpi_grp_isend_0(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine impi_grp_recv(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine dmpi_grp_isend_0_int64(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine smpi_grp_irecv_3(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine impi_grp_allreduce_inplace_2(mpi_grp, recvbuf, count, datatype, op)
subroutine dmpi_grp_send_3(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine zmpi_grp_isend_2(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine lmpi_grp_send_3(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine cmpi_grp_send(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine cmpi_grp_recv_3(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
subroutine zmpi_grp_send_3(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine mpi_grp_waitall(mpi_grp, count, requests)
subroutine zmpi_grp_allreduce_2(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine lompi_grp_allreduce_0(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine cmpi_grp_send_2(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine lmpi_grp_irecv_0(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
subroutine impi_grp_send(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine lompi_grp_send_0(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine smpi_grp_send_0(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
subroutine lmpi_grp_isend_3(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
subroutine zmpi_grp_allreduce_inplace_2(mpi_grp, recvbuf, count, datatype, op)
subroutine chmpi_grp_bcast_0(mpi_grp, buf, cnt, sendtype, root)
subroutine impi_grp_allreduce_2(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine lmpi_grp_irecv_2(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
type(mpi_comm), parameter mpi_comm_null
type(mpi_op), parameter mpi_in_place
This is defined even when running serial.