MPI_ Derived Type

type, public :: MPI_


Contents


Components

TypeVisibility AttributesNameInitial
integer(kind=int32), public :: ierr
integer(kind=int32), public :: MyRank
integer(kind=int32), public :: PeTot
integer(kind=int32), public :: Comm1
integer(kind=int32), public :: Comm2
integer(kind=int32), public :: Comm3
integer(kind=int32), public :: Comm4
integer(kind=int32), public :: Comm5
integer(kind=int32), public :: start_id
integer(kind=int32), public :: end_id
integer(kind=int32), public, allocatable:: start_end_id(:)
integer(kind=int32), public, allocatable:: Comm(:)
integer(kind=int32), public, allocatable:: key(:)
integer(kind=int32), public, allocatable:: local_ID(:)
integer(kind=int32), public, allocatable:: Global_ID(:)
integer(kind=int32), public, allocatable:: Stack(:,:)
integer(kind=int32), public, allocatable:: localstack(:)
integer(kind=int32), public :: LapTimeStep
real(kind=real64), public :: stime
real(kind=real64), public :: etime
real(kind=real64), public :: laptime(1000)
character(len=200), public :: name
type(comment_), public :: comments(1000)
type(Graph_), public :: graph

Type-Bound Procedures

procedure, public :: Start => StartMPI

  • public subroutine StartMPI(obj, NumOfComm)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: NumOfComm

procedure, public :: initItr => initItrMPI

  • public subroutine initItrMPI(obj, total_iteration)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: total_iteration

procedure, public :: Barrier => BarrierMPI

  • public subroutine BarrierMPI(obj)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj

procedure, public, Pass :: readMPIInt

  • public subroutine readMPIInt(obj, val, ExecRank, Msg)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(out) :: val
    integer(kind=int32), intent(in), optional :: ExecRank
    character(len=*), intent(in), optional :: Msg

procedure, public, Pass :: readMPIReal

  • public subroutine readMPIReal(obj, val, ExecRank, Msg)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(out) :: val
    integer(kind=int32), intent(in), optional :: ExecRank
    character(len=*), intent(in), optional :: Msg

generic, public :: read => readMPIInt, readMPIReal

  • public subroutine readMPIInt(obj, val, ExecRank, Msg)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(out) :: val
    integer(kind=int32), intent(in), optional :: ExecRank
    character(len=*), intent(in), optional :: Msg
  • public subroutine readMPIReal(obj, val, ExecRank, Msg)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(out) :: val
    integer(kind=int32), intent(in), optional :: ExecRank
    character(len=*), intent(in), optional :: Msg

procedure, public, Pass :: BcastMPIInt

  • public recursive subroutine BcastMPIInt(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: From
    integer(kind=int32), intent(inout) :: val

procedure, public, Pass :: BcastMPIIntVec

  • public recursive subroutine BcastMPIIntVec(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: From
    integer(kind=int32), intent(inout), allocatable:: val(:)

procedure, public, Pass :: BcastMPIIntArray

  • public recursive subroutine BcastMPIIntArray(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: From
    integer(kind=int32), intent(inout), allocatable:: val(:,:)

procedure, public, Pass :: BcastMPIReal

  • public recursive subroutine BcastMPIReal(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: From
    real(kind=real64), intent(inout) :: val

procedure, public, Pass :: BcastMPIRealVec

  • public recursive subroutine BcastMPIRealVec(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: From
    real(kind=real64), intent(inout), allocatable:: val(:)

procedure, public, Pass :: BcastMPIRealArray

  • public recursive subroutine BcastMPIRealArray(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: From
    real(kind=real64), intent(inout), allocatable:: val(:,:)

procedure, public, Pass :: BcastMPIChar

  • public recursive subroutine BcastMPIChar(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: From
    character(len=*), intent(inout) :: val
  • public recursive subroutine BcastMPIInt(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: From
    integer(kind=int32), intent(inout) :: val
  • public recursive subroutine BcastMPIReal(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: From
    real(kind=real64), intent(inout) :: val
  • public recursive subroutine BcastMPIChar(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: From
    character(len=*), intent(inout) :: val
  • public recursive subroutine BcastMPIIntVec(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: From
    integer(kind=int32), intent(inout), allocatable:: val(:)
  • public recursive subroutine BcastMPIIntArray(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: From
    integer(kind=int32), intent(inout), allocatable:: val(:,:)
  • public recursive subroutine BcastMPIRealVec(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: From
    real(kind=real64), intent(inout), allocatable:: val(:)
  • public recursive subroutine BcastMPIRealArray(obj, From, val)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: From
    real(kind=real64), intent(inout), allocatable:: val(:,:)

procedure, public, Pass :: GatherMPIInt

  • public subroutine GatherMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, To)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in), optional :: sendcount
    integer(kind=int32), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in), optional :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id
    integer(kind=int32), intent(in), optional :: To

procedure, public, Pass :: GatherMPIReal

  • public subroutine GatherMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, To)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in), optional :: sendcount
    real(kind=real64), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in), optional :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id
    integer(kind=int32), intent(in), optional :: To

generic, public :: Gather => GatherMPIInt, GatherMPIReal

  • public subroutine GatherMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, To)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in), optional :: sendcount
    integer(kind=int32), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in), optional :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id
    integer(kind=int32), intent(in), optional :: To
  • public subroutine GatherMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, To)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in), optional :: sendcount
    real(kind=real64), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in), optional :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id
    integer(kind=int32), intent(in), optional :: To

procedure, public, Pass :: ScatterMPIInt

  • public subroutine ScatterMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, From)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in) :: sendcount
    integer(kind=int32), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id
    integer(kind=int32), intent(in), optional :: From

procedure, public, Pass :: ScatterMPIReal

  • public subroutine ScatterMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, From)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in) :: sendcount
    real(kind=real64), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id
    integer(kind=int32), intent(in), optional :: From

generic, public :: Scatter => ScatterMPIInt, ScatterMPIReal

  • public subroutine ScatterMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, From)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in) :: sendcount
    integer(kind=int32), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id
    integer(kind=int32), intent(in), optional :: From
  • public subroutine ScatterMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id, From)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in) :: sendcount
    real(kind=real64), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id
    integer(kind=int32), intent(in), optional :: From

procedure, public, Pass :: AllGatherMPIInt

  • public subroutine AllGatherMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in) :: sendcount
    integer(kind=int32), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id

procedure, public, Pass :: AllGatherMPIReal

  • public subroutine AllGatherMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in) :: sendcount
    real(kind=real64), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id

procedure, public, Pass :: AllGatherMPIGraph

  • public subroutine AllGatherMPIGraph(obj, graph)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    type(Graph_), intent(inout) :: graph

generic, public :: AllGather => AllGatherMPIInt, AllGatherMPIReal, AllGatherMPIGraph

  • public subroutine AllGatherMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in) :: sendcount
    integer(kind=int32), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id
  • public subroutine AllGatherMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in) :: sendcount
    real(kind=real64), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id
  • public subroutine AllGatherMPIGraph(obj, graph)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    type(Graph_), intent(inout) :: graph

generic, public :: merge => AllGatherMPIGraph

  • public subroutine AllGatherMPIGraph(obj, graph)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    type(Graph_), intent(inout) :: graph

procedure, public, Pass :: AlltoAllMPIInt

  • public subroutine AlltoAllMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in) :: sendcount
    integer(kind=int32), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id

procedure, public, Pass :: AlltoAllMPIReal

  • public subroutine AlltoAllMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in) :: sendcount
    real(kind=real64), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id

generic, public :: AlltoAll => AlltoAllMPIInt, AlltoAllMPIReal

  • public subroutine AlltoAllMPIInt(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in) :: sendcount
    integer(kind=int32), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id
  • public subroutine AlltoAllMPIReal(obj, sendobj, sendcount, recvobj, recvcount, send_start_id, recv_start_id)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(in) :: sendcount
    real(kind=real64), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: recvcount
    integer(kind=int32), intent(in), optional :: send_start_id
    integer(kind=int32), intent(in), optional :: recv_start_id

procedure, public, Pass :: ReduceMPIInt

  • public subroutine ReduceMPIInt(obj, sendobj, recvobj, count, start, To, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: count
    integer(kind=int32), intent(in), optional :: start
    integer(kind=int32), intent(in), optional :: To
    logical, intent(in), optional :: max
    logical, intent(in), optional :: min
    logical, intent(in), optional :: sum
    logical, intent(in), optional :: prod
    logical, intent(in), optional :: land
    logical, intent(in), optional :: band
    logical, intent(in), optional :: lor
    logical, intent(in), optional :: bor
    logical, intent(in), optional :: lxor
    logical, intent(in), optional :: bxor
    logical, intent(in), optional :: maxloc
    logical, intent(in), optional :: minloc

procedure, public, Pass :: ReduceMPIReal

  • public subroutine ReduceMPIReal(obj, sendobj, recvobj, count, start, To, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(inout) :: sendobj(:)
    real(kind=real64), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: count
    integer(kind=int32), intent(in), optional :: start
    integer(kind=int32), intent(in), optional :: To
    logical, intent(in), optional :: max
    logical, intent(in), optional :: min
    logical, intent(in), optional :: sum
    logical, intent(in), optional :: prod
    logical, intent(in), optional :: land
    logical, intent(in), optional :: band
    logical, intent(in), optional :: lor
    logical, intent(in), optional :: bor
    logical, intent(in), optional :: lxor
    logical, intent(in), optional :: bxor
    logical, intent(in), optional :: maxloc
    logical, intent(in), optional :: minloc

generic, public :: Reduce => ReduceMPIInt, ReduceMPIReal

  • public subroutine ReduceMPIInt(obj, sendobj, recvobj, count, start, To, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: count
    integer(kind=int32), intent(in), optional :: start
    integer(kind=int32), intent(in), optional :: To
    logical, intent(in), optional :: max
    logical, intent(in), optional :: min
    logical, intent(in), optional :: sum
    logical, intent(in), optional :: prod
    logical, intent(in), optional :: land
    logical, intent(in), optional :: band
    logical, intent(in), optional :: lor
    logical, intent(in), optional :: bor
    logical, intent(in), optional :: lxor
    logical, intent(in), optional :: bxor
    logical, intent(in), optional :: maxloc
    logical, intent(in), optional :: minloc
  • public subroutine ReduceMPIReal(obj, sendobj, recvobj, count, start, To, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(inout) :: sendobj(:)
    real(kind=real64), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: count
    integer(kind=int32), intent(in), optional :: start
    integer(kind=int32), intent(in), optional :: To
    logical, intent(in), optional :: max
    logical, intent(in), optional :: min
    logical, intent(in), optional :: sum
    logical, intent(in), optional :: prod
    logical, intent(in), optional :: land
    logical, intent(in), optional :: band
    logical, intent(in), optional :: lor
    logical, intent(in), optional :: bor
    logical, intent(in), optional :: lxor
    logical, intent(in), optional :: bxor
    logical, intent(in), optional :: maxloc
    logical, intent(in), optional :: minloc

procedure, public, Pass :: AllReduceMPIInt

  • public subroutine AllReduceMPIInt(obj, sendobj, recvobj, count, start, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: count
    integer(kind=int32), intent(in), optional :: start
    logical, intent(in), optional :: max
    logical, intent(in), optional :: min
    logical, intent(in), optional :: sum
    logical, intent(in), optional :: prod
    logical, intent(in), optional :: land
    logical, intent(in), optional :: band
    logical, intent(in), optional :: lor
    logical, intent(in), optional :: bor
    logical, intent(in), optional :: lxor
    logical, intent(in), optional :: bxor
    logical, intent(in), optional :: maxloc
    logical, intent(in), optional :: minloc

procedure, public, Pass :: AllReduceMPIReal

  • public subroutine AllReduceMPIReal(obj, sendobj, recvobj, count, start, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(inout) :: sendobj(:)
    real(kind=real64), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: count
    integer(kind=int32), intent(in), optional :: start
    logical, intent(in), optional :: max
    logical, intent(in), optional :: min
    logical, intent(in), optional :: sum
    logical, intent(in), optional :: prod
    logical, intent(in), optional :: land
    logical, intent(in), optional :: band
    logical, intent(in), optional :: lor
    logical, intent(in), optional :: bor
    logical, intent(in), optional :: lxor
    logical, intent(in), optional :: bxor
    logical, intent(in), optional :: maxloc
    logical, intent(in), optional :: minloc

generic, public :: AllReduce => AllReduceMPIInt, AllReduceMPIReal

  • public subroutine AllReduceMPIInt(obj, sendobj, recvobj, count, start, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(inout) :: sendobj(:)
    integer(kind=int32), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: count
    integer(kind=int32), intent(in), optional :: start
    logical, intent(in), optional :: max
    logical, intent(in), optional :: min
    logical, intent(in), optional :: sum
    logical, intent(in), optional :: prod
    logical, intent(in), optional :: land
    logical, intent(in), optional :: band
    logical, intent(in), optional :: lor
    logical, intent(in), optional :: bor
    logical, intent(in), optional :: lxor
    logical, intent(in), optional :: bxor
    logical, intent(in), optional :: maxloc
    logical, intent(in), optional :: minloc
  • public subroutine AllReduceMPIReal(obj, sendobj, recvobj, count, start, max, min, sum, prod, land, band, lor, bor, lxor, bxor, maxloc, minloc)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    real(kind=real64), intent(inout) :: sendobj(:)
    real(kind=real64), intent(inout) :: recvobj(:)
    integer(kind=int32), intent(in) :: count
    integer(kind=int32), intent(in), optional :: start
    logical, intent(in), optional :: max
    logical, intent(in), optional :: min
    logical, intent(in), optional :: sum
    logical, intent(in), optional :: prod
    logical, intent(in), optional :: land
    logical, intent(in), optional :: band
    logical, intent(in), optional :: lor
    logical, intent(in), optional :: bor
    logical, intent(in), optional :: lxor
    logical, intent(in), optional :: bxor
    logical, intent(in), optional :: maxloc
    logical, intent(in), optional :: minloc

procedure, public :: createStack => createStackMPI

  • public subroutine createStackMPI(obj, total)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: total

procedure, public :: showStack => showStackMPI

  • public subroutine showStackMPI(obj)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj

procedure, public :: free => FreeMPI

  • public subroutine FreeMPI(obj, CommLayerID)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: CommLayerID

procedure, public :: split => SplitMPI

  • public subroutine SplitMPI(obj, OriginComm, NewCommLayerID, key)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: OriginComm
    integer(kind=int32), intent(in), optional :: NewCommLayerID
    integer(kind=int32), intent(in), optional :: key

procedure, public :: copy => CopyMPI

  • public subroutine CopyMPI(obj, OriginComm, NewCommLayerID)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: OriginComm
    integer(kind=int32), intent(in), optional :: NewCommLayerID

procedure, public :: End => EndMPI

  • public subroutine EndMPI(obj)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj

procedure, public :: getLapTime => getLapTimeMPI

  • public subroutine getLapTimeMPI(obj, comment)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    character(len=*), intent(in), optional :: comment

procedure, public :: showLapTime => showLapTimeMPI

  • public subroutine showLapTimeMPI(obj, cLength, rank)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: cLength
    integer(kind=int32), intent(in), optional :: rank

procedure, public :: GetInfo => GetMPIInfo

  • public subroutine GetMPIInfo(obj)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj

procedure, public :: createFileName => createFileNameMPI

  • public subroutine createFileNameMPI(obj, Path, Name)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    character(len=*), intent(in) :: Path
    character(len=*), intent(in) :: Name

procedure, public, Pass :: syncGraphMPI

  • public subroutine syncGraphMPI(obj, graph)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    type(Graph_), intent(inout) :: graph

generic, public :: sync => syncGraphMPI

  • public subroutine syncGraphMPI(obj, graph)

    Arguments

    Type IntentOptional AttributesName
    class(MPI_), intent(inout) :: obj
    type(Graph_), intent(inout) :: graph