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_gatherv_2, zmpi_grp_gatherv_2, impi_grp_gatherv_2, lmpi_grp_gatherv_2
73 generic :: gatherv => dmpi_grp_gatherv_2, zmpi_grp_gatherv_2, impi_grp_gatherv_2, lmpi_grp_gatherv_2
74 procedure :: dmpi_grp_gather_0, zmpi_grp_gather_0, impi_grp_gather_0, lmpi_grp_gather_0, smpi_grp_gather_0, &
76 generic :: gather => dmpi_grp_gather_0, zmpi_grp_gather_0, impi_grp_gather_0, lmpi_grp_gather_0, smpi_grp_gather_0, &
78 procedure :: dmpi_grp_gatherv_i8, zmpi_grp_gatherv_i8, impi_grp_gatherv_i8, lmpi_grp_gatherv_i8, smpi_grp_gatherv_i8, &
80 generic :: gatherv => dmpi_grp_gatherv_i8, zmpi_grp_gatherv_i8, impi_grp_gatherv_i8, lmpi_grp_gatherv_i8, &
81 smpi_grp_gatherv_i8, cmpi_grp_gatherv_i8
82 procedure :: dmpi_grp_alltoallv, zmpi_grp_alltoallv, impi_grp_alltoallv, lmpi_grp_alltoallv, smpi_grp_alltoallv, &
84 generic :: alltoallv => dmpi_grp_alltoallv, zmpi_grp_alltoallv, impi_grp_alltoallv, lmpi_grp_alltoallv, &
85 smpi_grp_alltoallv, cmpi_grp_alltoallv
86 procedure :: 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 generic :: alltoallv => dmpi_grp_alltoallv_2, zmpi_grp_alltoallv_2, impi_grp_alltoallv_2, lmpi_grp_alltoallv_2, &
89 smpi_grp_alltoallv_2, cmpi_grp_alltoallv_2
90 procedure :: 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 generic :: alltoallv => dmpi_grp_alltoallv_3, zmpi_grp_alltoallv_3, impi_grp_alltoallv_3, lmpi_grp_alltoallv_3, &
93 smpi_grp_alltoallv_3, cmpi_grp_alltoallv_3
94 procedure :: 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 generic :: alltoallv => dmpi_grp_alltoallv_i8, zmpi_grp_alltoallv_i8, impi_grp_alltoallv_i8, lmpi_grp_alltoallv_i8, &
97 smpi_grp_alltoallv_i8, cmpi_grp_alltoallv_i8
98 procedure :: dmpi_grp_alltoall, zmpi_grp_alltoall, impi_grp_alltoall, lmpi_grp_alltoall, smpi_grp_alltoall, &
100 generic :: alltoall => dmpi_grp_alltoall, zmpi_grp_alltoall, impi_grp_alltoall, lmpi_grp_alltoall, smpi_grp_alltoall, &
102 procedure :: dmpi_grp_allgatherv, zmpi_grp_allgatherv, impi_grp_allgatherv, lmpi_grp_allgatherv, smpi_grp_allgatherv, &
104 generic :: allgatherv => dmpi_grp_allgatherv, zmpi_grp_allgatherv, impi_grp_allgatherv, lmpi_grp_allgatherv, &
105 smpi_grp_allgatherv, cmpi_grp_allgatherv
106 procedure :: 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 generic :: allgatherv => dmpi_grp_allgatherv_2, zmpi_grp_allgatherv_2, impi_grp_allgatherv_2, lmpi_grp_allgatherv_2, &
109 smpi_grp_allgatherv_2, cmpi_grp_allgatherv_2
110 procedure :: 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 generic :: allgatherv => dmpi_grp_allgatherv_3, zmpi_grp_allgatherv_3, impi_grp_allgatherv_3, lmpi_grp_allgatherv_3, &
113 smpi_grp_allgatherv_3, cmpi_grp_allgatherv_3
114 procedure :: dmpi_grp_allgatherv_3_1, zmpi_grp_allgatherv_3_1, impi_grp_allgatherv_3_1, lmpi_grp_allgatherv_3_1, &
115 smpi_grp_allgatherv_3_1, cmpi_grp_allgatherv_3_1
116 generic :: allgatherv => dmpi_grp_allgatherv_3_1, zmpi_grp_allgatherv_3_1, impi_grp_allgatherv_3_1, &
117 lmpi_grp_allgatherv_3_1, smpi_grp_allgatherv_3_1, cmpi_grp_allgatherv_3_1
118 procedure :: 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 generic :: allgatherv => dmpi_grp_allgatherv_i8, zmpi_grp_allgatherv_i8, impi_grp_allgatherv_i8, lmpi_grp_allgatherv_i8, &
121 smpi_grp_allgatherv_i8, cmpi_grp_allgatherv_i8
122 procedure :: dmpi_grp_allgatherv_inplace, zmpi_grp_allgatherv_inplace, &
123 impi_grp_allgatherv_inplace, lmpi_grp_allgatherv_inplace, &
124 smpi_grp_allgatherv_inplace, cmpi_grp_allgatherv_inplace
125 generic :: allgatherv_inplace => dmpi_grp_allgatherv_inplace, zmpi_grp_allgatherv_inplace, &
126 impi_grp_allgatherv_inplace, lmpi_grp_allgatherv_inplace, &
127 smpi_grp_allgatherv_inplace, cmpi_grp_allgatherv_inplace
128 procedure :: dmpi_grp_bcast, zmpi_grp_bcast, impi_grp_bcast, lmpi_grp_bcast, smpi_grp_bcast, cmpi_grp_bcast
129 generic :: bcast => dmpi_grp_bcast, zmpi_grp_bcast, impi_grp_bcast, lmpi_grp_bcast, smpi_grp_bcast, cmpi_grp_bcast
130 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
131 generic :: bcast => dmpi_grp_bcast_0, zmpi_grp_bcast_0, impi_grp_bcast_0, lmpi_grp_bcast_0, smpi_grp_bcast_0, &
133 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
134 generic :: bcast => dmpi_grp_bcast_2, zmpi_grp_bcast_2, impi_grp_bcast_2, lmpi_grp_bcast_2, smpi_grp_bcast_2, &
257#if defined(HAVE_MPI) && defined(HAVE_OPENMP)
260 integer,
parameter :: octopus_mpi_thread_level = mpi_thread_funneled
262#elif defined(HAVE_MPI)
264 integer,
parameter :: octopus_mpi_thread_level = mpi_thread_single
280#if defined(HAVE_OPENMP)
283 call mpi_init_thread(octopus_mpi_thread_level, provided)
288 comm = mpi_comm_world
290 comm = mpi_comm_undefined
301#if defined(HAVE_MPI) && defined(HAVE_OPENMP)
302 integer :: provided, ierr, rank
304 call mpi_query_thread(provided)
305 if (provided < octopus_mpi_thread_level)
then
306 call mpi_comm_rank(comm, rank)
307 if (rank == 0)
write(*,
'(a)')
'MPI library threading support is less than required by Octopus'
308 call mpi_abort(comm, 1, ierr)
321 integer :: iam, nprocs
322 integer :: blacs_default_system_context
325 call blacs_pinfo(iam, nprocs)
336 call blacs_get(0, 0, blacs_default_system_context)
354 if (
mpi_world%comm /= mpi_comm_undefined)
call mpi_finalize()
373 if (grp%comm == mpi_comm_undefined)
then
378 call mpi_comm_rank(grp%comm, grp%rank)
380 call mpi_comm_size(grp%comm, grp%size)
405#if defined(HAVE_MPI) && defined(HAVE_OPENMP)
406 logical function mpi_call_is_thread_funneled_safe()
407 mpi_call_is_thread_funneled_safe = &
409 end function mpi_call_is_thread_funneled_safe
414 type(
mpi_grp_t),
intent(out) :: mpi_grp_out
415 type(
mpi_grp_t),
intent(in) :: mpi_grp_in
417 mpi_grp_out%comm = mpi_grp_in%comm
418 mpi_grp_out%size = mpi_grp_in%size
419 mpi_grp_out%rank = mpi_grp_in%rank
424 type(
mpi_grp_t),
intent(out) :: mpi_grp_out
425 type(
mpi_grp_t),
intent(in) :: mpi_grp_in
428 call mpi_comm_dup(mpi_grp_in%comm, mpi_grp_out%comm)
429 call mpi_comm_rank(mpi_grp_out%comm, mpi_grp_out%rank)
430 call mpi_comm_size(mpi_grp_out%comm, mpi_grp_out%size)
447 if (mpi_grp%comm == mpi_comm_undefined)
return
452 call mpi_barrier(mpi_grp%comm)
460 character(len=*),
intent(inout) :: buf
461 integer,
intent(in) :: cnt
463 integer,
intent(in) :: root
469 if (mpi_grp%comm /= mpi_comm_undefined)
then
470 call mpi_bcast(buf, cnt, sendtype, root, mpi_grp%comm)
479 logical,
intent(inout) :: buf
480 integer,
intent(in) :: cnt
482 integer,
intent(in) :: root
488 if (mpi_grp%comm /= mpi_comm_undefined)
then
489 call mpi_bcast(buf, cnt, sendtype, root, mpi_grp%comm)
499 logical,
target,
intent(in) :: sendbuf
500 logical,
target,
intent(out) :: recvbuf
501 integer,
intent(in) :: count
503 logical,
pointer :: send(:), recv(:)
505 call c_f_pointer(c_loc(sendbuf), send, [count])
506 call c_f_pointer(c_loc(recvbuf), recv, [count])
515 logical,
intent(in) :: sendbuf
516 logical,
intent(out) :: recvbuf
517 integer,
intent(in) :: count
519 type(
mpi_op),
intent(in) :: op
525 if (mpi_grp%comm /= mpi_comm_undefined)
then
526 call mpi_allreduce(sendbuf, recvbuf, count, datatype, op, &
540 logical,
intent(inout) :: recvbuf
541 integer,
intent(in) :: count
549 if (mpi_grp%comm /= mpi_comm_undefined)
then
550 call mpi_allreduce(
mpi_in_place, recvbuf, count, datatype, op, &
558 subroutine lompi_grp_recv_0(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
560 logical,
intent(out) :: recvbuf
561 integer,
intent(in) :: recvcount
563 integer,
intent(in) :: source
564 integer,
optional,
intent(in) :: tag
569 if (
present(tag)) tag_ = tag
570 if (mpi_grp%comm == mpi_comm_undefined)
return
575 call mpi_recv(recvbuf, recvcount, recvtype, source, tag_, mpi_grp%comm, mpi_status_ignore)
581 subroutine lompi_grp_send_0(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
583 logical,
intent(in) :: sendbuf
584 integer,
intent(in) :: sendcount
586 integer,
intent(in) :: dest
587 integer,
optional,
intent(in) :: tag
592 if (
present(tag)) tag_ = tag
593 if (mpi_grp%comm == mpi_comm_undefined)
return
598 call mpi_send(sendbuf, sendcount, sendtype, dest, tag_, mpi_grp%comm)
608 if (mpi_grp%comm == mpi_comm_undefined)
return
613 call mpi_wait(request, mpi_status_ignore)
621 integer,
intent(in) :: count
624 if (mpi_grp%comm == mpi_comm_undefined)
return
629 call mpi_waitall(count, requests, mpi_statuses_ignore)
638 if (mpi_grp%comm /= mpi_comm_undefined)
then
643 call mpi_abort(mpi_grp%comm, 999)
663#include "mpi_inc.F90"
666#include "complex.F90"
667#include "mpi_inc.F90"
670#include "integer.F90"
671#include "mpi_inc.F90"
674#include "integer8.F90"
675#include "mpi_inc.F90"
679#include "mpi_inc.F90"
682#include "complex32.F90"
683#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://www....
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 cmpi_grp_allreduce(mpi_grp, sendbuf, recvbuf, count, datatype, op)
subroutine impi_grp_bcast_3(mpi_grp, buf, cnt, sendtype, root)
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 lmpi_grp_bcast_3(mpi_grp, buf, cnt, sendtype, root)
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 smpi_grp_bcast_3(mpi_grp, buf, cnt, sendtype, root)
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 dmpi_grp_bcast_3(mpi_grp, buf, cnt, sendtype, root)
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 cmpi_grp_bcast_3(mpi_grp, buf, cnt, sendtype, root)
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)
subroutine zmpi_grp_bcast_3(mpi_grp, buf, cnt, sendtype, root)
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 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.