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
 
   62    generic :: scatterv => dmpi_grp_scatterv, zmpi_grp_scatterv, impi_grp_scatterv, lmpi_grp_scatterv
 
   63    procedure :: dmpi_grp_scatterv_i8, zmpi_grp_scatterv_i8, impi_grp_scatterv_i8, lmpi_grp_scatterv_i8
 
   64    generic :: scatterv => dmpi_grp_scatterv_i8, zmpi_grp_scatterv_i8, impi_grp_scatterv_i8, lmpi_grp_scatterv_i8
 
   65    procedure :: dmpi_grp_gatherv, zmpi_grp_gatherv, impi_grp_gatherv, lmpi_grp_gatherv
 
   66    generic :: gatherv => dmpi_grp_gatherv, zmpi_grp_gatherv, impi_grp_gatherv, lmpi_grp_gatherv
 
   67    procedure :: dmpi_grp_gather_0, zmpi_grp_gather_0, impi_grp_gather_0, lmpi_grp_gather_0
 
   68    generic :: gather => dmpi_grp_gather_0, zmpi_grp_gather_0, impi_grp_gather_0, lmpi_grp_gather_0
 
   69    procedure :: dmpi_grp_gatherv_i8, zmpi_grp_gatherv_i8, impi_grp_gatherv_i8, lmpi_grp_gatherv_i8
 
   70    generic :: gatherv => dmpi_grp_gatherv_i8, zmpi_grp_gatherv_i8, impi_grp_gatherv_i8, lmpi_grp_gatherv_i8
 
   71    procedure :: dmpi_grp_alltoallv, zmpi_grp_alltoallv, impi_grp_alltoallv, lmpi_grp_alltoallv
 
   72    generic :: alltoallv => dmpi_grp_alltoallv, zmpi_grp_alltoallv, impi_grp_alltoallv, lmpi_grp_alltoallv
 
   73    procedure :: dmpi_grp_alltoallv_2, zmpi_grp_alltoallv_2, impi_grp_alltoallv_2, lmpi_grp_alltoallv_2
 
   74    generic :: alltoallv => dmpi_grp_alltoallv_2, zmpi_grp_alltoallv_2, impi_grp_alltoallv_2, lmpi_grp_alltoallv_2
 
   75    procedure :: dmpi_grp_alltoallv_3, zmpi_grp_alltoallv_3, impi_grp_alltoallv_3, lmpi_grp_alltoallv_3
 
   76    generic :: alltoallv => dmpi_grp_alltoallv_3, zmpi_grp_alltoallv_3, impi_grp_alltoallv_3, lmpi_grp_alltoallv_3
 
   77    procedure :: dmpi_grp_alltoallv_i8, zmpi_grp_alltoallv_i8, impi_grp_alltoallv_i8, lmpi_grp_alltoallv_i8
 
   78    generic :: alltoallv => dmpi_grp_alltoallv_i8, zmpi_grp_alltoallv_i8, impi_grp_alltoallv_i8, lmpi_grp_alltoallv_i8
 
   79    procedure :: dmpi_grp_alltoall, zmpi_grp_alltoall, impi_grp_alltoall, lmpi_grp_alltoall
 
   80    generic :: alltoall => dmpi_grp_alltoall, zmpi_grp_alltoall, impi_grp_alltoall, lmpi_grp_alltoall
 
   81    procedure :: dmpi_grp_allgatherv, zmpi_grp_allgatherv, impi_grp_allgatherv, lmpi_grp_allgatherv
 
   82    generic :: allgatherv => dmpi_grp_allgatherv, zmpi_grp_allgatherv, impi_grp_allgatherv, lmpi_grp_allgatherv
 
   83    procedure :: dmpi_grp_allgatherv_2, zmpi_grp_allgatherv_2, impi_grp_allgatherv_2, lmpi_grp_allgatherv_2
 
   84    generic :: allgatherv => dmpi_grp_allgatherv_2, zmpi_grp_allgatherv_2, impi_grp_allgatherv_2, lmpi_grp_allgatherv_2
 
   85    procedure :: dmpi_grp_allgatherv_3, zmpi_grp_allgatherv_3, impi_grp_allgatherv_3, lmpi_grp_allgatherv_3
 
   86    generic :: allgatherv => dmpi_grp_allgatherv_3, zmpi_grp_allgatherv_3, impi_grp_allgatherv_3, lmpi_grp_allgatherv_3
 
   87    procedure :: dmpi_grp_allgatherv_3_1, zmpi_grp_allgatherv_3_1, impi_grp_allgatherv_3_1, lmpi_grp_allgatherv_3_1
 
   88    generic :: allgatherv => dmpi_grp_allgatherv_3_1, zmpi_grp_allgatherv_3_1, impi_grp_allgatherv_3_1, lmpi_grp_allgatherv_3_1
 
   89    procedure :: dmpi_grp_allgatherv_i8, zmpi_grp_allgatherv_i8, impi_grp_allgatherv_i8, lmpi_grp_allgatherv_i8
 
   90    generic :: allgatherv => dmpi_grp_allgatherv_i8, zmpi_grp_allgatherv_i8, impi_grp_allgatherv_i8, lmpi_grp_allgatherv_i8
 
   91    procedure :: dmpi_grp_bcast, zmpi_grp_bcast, impi_grp_bcast, lmpi_grp_bcast
 
   92    generic :: bcast => dmpi_grp_bcast, zmpi_grp_bcast, impi_grp_bcast, lmpi_grp_bcast
 
   93    procedure :: dmpi_grp_bcast_0, zmpi_grp_bcast_0, impi_grp_bcast_0, lmpi_grp_bcast_0
 
   94    generic :: bcast => dmpi_grp_bcast_0, zmpi_grp_bcast_0, impi_grp_bcast_0, lmpi_grp_bcast_0
 
   95    procedure :: dmpi_grp_bcast_2, zmpi_grp_bcast_2, impi_grp_bcast_2, lmpi_grp_bcast_2
 
   96    generic :: bcast => dmpi_grp_bcast_2, zmpi_grp_bcast_2, impi_grp_bcast_2, lmpi_grp_bcast_2
 
   97    procedure :: dmpi_grp_bcast_3, zmpi_grp_bcast_3, impi_grp_bcast_3, lmpi_grp_bcast_3
 
   98    generic :: bcast => dmpi_grp_bcast_3, zmpi_grp_bcast_3, impi_grp_bcast_3, lmpi_grp_bcast_3
 
   99    procedure :: chmpi_grp_bcast_0, lompi_grp_bcast_0
 
  100    generic :: bcast => chmpi_grp_bcast_0, lompi_grp_bcast_0
 
  101    procedure :: dmpi_grp_bcast_0_l, zmpi_grp_bcast_0_l, impi_grp_bcast_0_l, lmpi_grp_bcast_0_l
 
  102    generic :: bcast => dmpi_grp_bcast_0_l, zmpi_grp_bcast_0_l, impi_grp_bcast_0_l, lmpi_grp_bcast_0_l
 
  103    procedure :: dmpi_grp_allreduce, zmpi_grp_allreduce, impi_grp_allreduce, lmpi_grp_allreduce
 
  104    generic :: allreduce => dmpi_grp_allreduce, zmpi_grp_allreduce, impi_grp_allreduce, lmpi_grp_allreduce
 
  105    procedure :: dmpi_grp_allreduce_2, zmpi_grp_allreduce_2, impi_grp_allreduce_2, lmpi_grp_allreduce_2
 
  106    generic :: allreduce => dmpi_grp_allreduce_2, zmpi_grp_allreduce_2, impi_grp_allreduce_2, lmpi_grp_allreduce_2
 
  107    procedure :: dmpi_grp_allreduce_3, zmpi_grp_allreduce_3, impi_grp_allreduce_3, lmpi_grp_allreduce_3
 
  108    generic :: allreduce => dmpi_grp_allreduce_3, zmpi_grp_allreduce_3, impi_grp_allreduce_3, lmpi_grp_allreduce_3
 
  109    procedure :: dmpi_grp_allreduce_0, zmpi_grp_allreduce_0, impi_grp_allreduce_0, lmpi_grp_allreduce_0
 
  110    generic :: allreduce => dmpi_grp_allreduce_0, zmpi_grp_allreduce_0, impi_grp_allreduce_0, lmpi_grp_allreduce_0
 
  111    procedure :: lompi_grp_allreduce_0
 
  112    generic :: allreduce => lompi_grp_allreduce_0
 
  113    procedure :: dmpi_grp_allreduce_inplace_0, zmpi_grp_allreduce_inplace_0
 
  114    procedure :: impi_grp_allreduce_inplace_0, lmpi_grp_allreduce_inplace_0
 
  115    procedure :: lompi_grp_allreduce_inplace_0
 
  116    generic :: allreduce_inplace => dmpi_grp_allreduce_inplace_0, zmpi_grp_allreduce_inplace_0
 
  117    generic :: allreduce_inplace => impi_grp_allreduce_inplace_0, lmpi_grp_allreduce_inplace_0
 
  118    generic :: allreduce_inplace => lompi_grp_allreduce_inplace_0
 
  119    procedure :: dmpi_grp_allreduce_inplace_1, zmpi_grp_allreduce_inplace_1, &
 
  120      impi_grp_allreduce_inplace_1, lmpi_grp_allreduce_inplace_1
 
  121    generic :: allreduce_inplace => dmpi_grp_allreduce_inplace_1, zmpi_grp_allreduce_inplace_1, &
 
  122      impi_grp_allreduce_inplace_1, lmpi_grp_allreduce_inplace_1
 
  123    procedure :: dmpi_grp_allreduce_inplace_2, zmpi_grp_allreduce_inplace_2, &
 
  124      impi_grp_allreduce_inplace_2, lmpi_grp_allreduce_inplace_2
 
  125    generic :: allreduce_inplace => dmpi_grp_allreduce_inplace_2, zmpi_grp_allreduce_inplace_2, &
 
  126      impi_grp_allreduce_inplace_2, lmpi_grp_allreduce_inplace_2
 
  127    procedure :: dmpi_grp_allgather, zmpi_grp_allgather, impi_grp_allgather, lmpi_grp_allgather
 
  128    generic :: allgather => dmpi_grp_allgather, zmpi_grp_allgather, impi_grp_allgather, lmpi_grp_allgather
 
  129    procedure :: dmpi_grp_allgather_0, zmpi_grp_allgather_0, impi_grp_allgather_0, lmpi_grp_allgather_0
 
  130    generic :: allgather => dmpi_grp_allgather_0, zmpi_grp_allgather_0, impi_grp_allgather_0, lmpi_grp_allgather_0
 
  131    procedure :: dmpi_grp_recv, zmpi_grp_recv, impi_grp_recv, lmpi_grp_recv
 
  132    generic :: recv => dmpi_grp_recv, zmpi_grp_recv, impi_grp_recv, lmpi_grp_recv
 
  133    procedure :: dmpi_grp_recv_0, zmpi_grp_recv_0, impi_grp_recv_0, lmpi_grp_recv_0
 
  134    generic :: recv => dmpi_grp_recv_0, zmpi_grp_recv_0, impi_grp_recv_0, lmpi_grp_recv_0
 
  135    procedure :: dmpi_grp_recv_2, zmpi_grp_recv_2, impi_grp_recv_2, lmpi_grp_recv_2
 
  136    generic :: recv => dmpi_grp_recv_2, zmpi_grp_recv_2, impi_grp_recv_2, lmpi_grp_recv_2
 
  137    procedure :: dmpi_grp_recv_3, zmpi_grp_recv_3, impi_grp_recv_3, lmpi_grp_recv_3
 
  138    generic :: recv => dmpi_grp_recv_3, zmpi_grp_recv_3, impi_grp_recv_3, lmpi_grp_recv_3
 
  145    procedure :: dmpi_grp_send_2, zmpi_grp_send_2, impi_grp_send_2, lmpi_grp_send_2
 
  146    generic :: send => dmpi_grp_send_2, zmpi_grp_send_2, impi_grp_send_2, lmpi_grp_send_2
 
  192#if defined(HAVE_OPENMP) 
  195    call mpi_init_thread(mpi_thread_funneled, provided)
 
  199    comm = mpi_comm_world
 
  201    comm = mpi_comm_undefined
 
  211    integer :: iam, nprocs
 
  212    integer :: blacs_default_system_context
 
  215    call blacs_pinfo(iam, nprocs)
 
  243    if (
mpi_world%comm /= mpi_comm_undefined) 
call mpi_finalize()
 
  262    if (grp%comm == mpi_comm_undefined) 
then 
  267      call mpi_comm_rank(grp%comm, grp%rank)
 
  269      call mpi_comm_size(grp%comm, grp%size)
 
  292    type(
mpi_grp_t), 
intent(out) :: mpi_grp_out
 
  293    type(
mpi_grp_t), 
intent(in)  :: mpi_grp_in
 
  295    mpi_grp_out%comm = mpi_grp_in%comm
 
  296    mpi_grp_out%size = mpi_grp_in%size
 
  297    mpi_grp_out%rank = mpi_grp_in%rank
 
  302    type(
mpi_grp_t), 
intent(out) :: mpi_grp_out
 
  303    type(
mpi_grp_t), 
intent(in)  :: mpi_grp_in
 
  306    call mpi_comm_dup(mpi_grp_in%comm, mpi_grp_out%comm)
 
  307    call mpi_comm_rank(mpi_grp_out%comm, mpi_grp_out%rank)
 
  308    call mpi_comm_size(mpi_grp_out%comm, mpi_grp_out%size)
 
  325    if (mpi_grp%comm == mpi_comm_undefined) 
return 
  330    call mpi_barrier(mpi_grp%comm)
 
  338    character(len=*), 
intent(inout) :: buf
 
  339    integer,          
intent(in)    :: cnt
 
  341    integer,          
intent(in)    :: root
 
  347    if (mpi_grp%comm /= mpi_comm_undefined) 
then 
  348      call mpi_bcast(buf, cnt, sendtype, root, mpi_grp%comm)
 
  357    logical,          
intent(inout) :: buf
 
  358    integer,          
intent(in)    :: cnt
 
  360    integer,          
intent(in)    :: root
 
  366    if (mpi_grp%comm /= mpi_comm_undefined) 
then 
  367      call mpi_bcast(buf, cnt, sendtype, root, mpi_grp%comm)
 
  377    logical, 
target,  
intent(in)  :: sendbuf
 
  378    logical, 
target,  
intent(out) :: recvbuf
 
  379    integer,          
intent(in)  :: count
 
  381    logical, 
pointer :: send(:), recv(:)
 
  383    call c_f_pointer(c_loc(sendbuf), send, [count])
 
  384    call c_f_pointer(c_loc(recvbuf), recv, [count])
 
  393    logical,          
intent(in)  :: sendbuf
 
  394    logical,          
intent(out) :: recvbuf
 
  395    integer,          
intent(in)  :: count
 
  397    type(
mpi_op),     
intent(in)  :: op
 
  403    if (mpi_grp%comm /= mpi_comm_undefined) 
then 
  404      call mpi_allreduce(sendbuf, recvbuf, count, datatype, op, &
 
  418    logical,          
intent(inout) :: recvbuf
 
  419    integer,          
intent(in)    :: count
 
  421    type(
mpi_op),     
intent(in)    :: op
 
  427    if (mpi_grp%comm /= mpi_comm_undefined) 
then 
  428      call mpi_allreduce(
mpi_in_place, recvbuf, count, datatype, op, &
 
  436  subroutine lompi_grp_recv_0(mpi_grp, recvbuf, recvcount, recvtype, source, tag)
 
  438    logical,           
intent(out) :: recvbuf
 
  439    integer,           
intent(in)  :: recvcount
 
  441    integer,           
intent(in)  :: source
 
  442    integer, 
optional, 
intent(in)  :: tag
 
  447    if (
present(tag)) tag_ = tag
 
  448    if (mpi_grp%comm == mpi_comm_undefined) 
return 
  453    call mpi_recv(recvbuf, recvcount, recvtype, source, tag_, mpi_grp%comm, mpi_status_ignore)
 
  459  subroutine lompi_grp_send_0(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
 
  461    logical,           
intent(out) :: sendbuf
 
  462    integer,           
intent(in)  :: sendcount
 
  464    integer,           
intent(in)  :: dest
 
  465    integer, 
optional, 
intent(in)  :: tag
 
  470    if (
present(tag)) tag_ = tag
 
  471    if (mpi_grp%comm == mpi_comm_undefined) 
return 
  476    call mpi_send(sendbuf, sendcount, sendtype, dest, tag_, mpi_grp%comm)
 
  486    if (mpi_grp%comm == mpi_comm_undefined) 
return 
  491    call mpi_wait(request, mpi_status_ignore)
 
  499    integer,           
intent(in)    :: count
 
  502    if (mpi_grp%comm == mpi_comm_undefined) 
return 
  507    call mpi_waitall(count, requests, mpi_statuses_ignore)
 
  516    if (mpi_grp%comm /= mpi_comm_undefined) 
then 
  521      call mpi_abort(mpi_grp%comm, 999)
 
  531  real(real64) function mpi_get_Wtime() result(now)
 
  541#include "mpi_inc.F90" 
  544#include "complex.F90" 
  545#include "mpi_inc.F90" 
  548#include "integer.F90" 
  549#include "mpi_inc.F90" 
  552#include "integer8.F90" 
  553#include "mpi_inc.F90" 
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 mpi_grp_abort(mpi_grp)
 
subroutine impi_grp_irecv(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
 
subroutine zmpi_grp_isend_0(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
 
subroutine mpi_grp_duplicate(mpi_grp_out, mpi_grp_in)
 
subroutine impi_grp_irecv_0(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
 
subroutine lmpi_grp_send(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
 
subroutine lmpi_grp_isend(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
 
subroutine lompi_grp_copy_0(sendbuf, recvbuf, count)
 
subroutine zmpi_grp_irecv_0_int64(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
 
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 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 impi_grp_irecv_2(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
 
subroutine zmpi_grp_irecv(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
 
subroutine mpi_grp_copy(mpi_grp_out, mpi_grp_in)
 
subroutine zmpi_grp_isend_3(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
 
subroutine impi_grp_isend_2(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
 
subroutine impi_grp_isend(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
 
subroutine impi_grp_send_0(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
 
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 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 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 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 dmpi_grp_send_0(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
 
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 mpi_mod_end()
Finalize MPI, and optionally BLACS.
 
subroutine dmpi_grp_send(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
 
logical pure function, private not_in_openmp()
 
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 mpi_grp_init(grp, comm)
Initialize MPI group instance.
 
subroutine dmpi_grp_irecv_0(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
 
subroutine impi_grp_irecv_3(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
 
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 zmpi_grp_isend_0_int64(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
 
subroutine lmpi_grp_irecv_3(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
 
subroutine mpi_grp_barrier(mpi_grp)
 
subroutine zmpi_grp_irecv_0(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
 
subroutine mpi_init_comm(comm)
Wrapper for MPI_COMM_WORLD initialisation.
 
subroutine dmpi_grp_irecv_2(mpi_grp, recvbuf, recvcount, recvtype, source, request, tag)
 
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 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 dmpi_grp_isend_0_int64(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
 
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 zmpi_grp_send_3(mpi_grp, sendbuf, sendcount, sendtype, dest, tag)
 
subroutine mpi_grp_waitall(mpi_grp, count, requests)
 
subroutine lompi_grp_allreduce_0(mpi_grp, sendbuf, recvbuf, count, datatype, op)
 
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 lmpi_grp_isend_3(mpi_grp, sendbuf, sendcount, sendtype, source, request, tag)
 
subroutine chmpi_grp_bcast_0(mpi_grp, buf, cnt, sendtype, root)
 
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.