create_comm_from_mpi Function

private function create_comm_from_mpi(mpi_comm_in) result(comm)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: mpi_comm_in

Return Value type(comm_t)


Calls

proc~~create_comm_from_mpi~2~~CallsGraph proc~create_comm_from_mpi~2 create_comm_from_mpi mpi_comm_rank mpi_comm_rank proc~create_comm_from_mpi~2->mpi_comm_rank mpi_comm_size mpi_comm_size proc~create_comm_from_mpi~2->mpi_comm_size

Called by

proc~~create_comm_from_mpi~2~~CalledByGraph proc~create_comm_from_mpi~2 create_comm_from_mpi proc~comm_duplicate~2 comm_t%comm_duplicate proc~comm_duplicate~2->proc~create_comm_from_mpi~2 proc~comm_split_by_color~2 comm_t%comm_split_by_color proc~comm_split_by_color~2->proc~create_comm_from_mpi~2 proc~comm_split_shared~2 comm_t%comm_split_shared proc~comm_split_shared~2->proc~create_comm_from_mpi~2 proc~create_world_comm~2 create_world_comm proc~create_world_comm~2->proc~create_comm_from_mpi~2 interface~comm_world~2 comm_world interface~comm_world~2->proc~create_world_comm~2 proc~comm_discard_leader~2 comm_t%comm_discard_leader proc~comm_discard_leader~2->proc~comm_split_by_color~2 proc~comm_discard_to~2 comm_t%comm_discard_to proc~comm_discard_to~2->proc~comm_split_by_color~2

Variables

Type Visibility Attributes Name Initial
integer(kind=int32), private :: ierr

Source Code

   function create_comm_from_mpi(mpi_comm_in) result(comm)
      integer, intent(in) :: mpi_comm_in
      type(comm_t) :: comm
      integer(int32) :: ierr

      comm%m_comm = mpi_comm_in
      if (mpi_comm_in /= MPI_COMM_NULL) then
         call MPI_Comm_rank(comm%m_comm, comm%m_rank, ierr)
         call MPI_Comm_size(comm%m_comm, comm%m_size, ierr)
         comm%is_valid = .true.
      else
         comm%is_valid = .false.
      end if

   end function create_comm_from_mpi