pf_mod_comm_mpi Module

Module to implement communication routines in MPI.


Uses

  • module~~pf_mod_comm_mpi~~UsesGraph module~pf_mod_comm_mpi pf_mod_comm_mpi module~pf_mod_mpi pf_mod_mpi module~pf_mod_comm_mpi->module~pf_mod_mpi module~pf_mod_dtype pf_mod_dtype module~pf_mod_comm_mpi->module~pf_mod_dtype module~pf_mod_timer pf_mod_timer module~pf_mod_comm_mpi->module~pf_mod_timer iso_c_binding iso_c_binding module~pf_mod_dtype->iso_c_binding module~pf_mod_timer->module~pf_mod_dtype

Used by

  • module~~pf_mod_comm_mpi~~UsedByGraph module~pf_mod_comm_mpi pf_mod_comm_mpi module~pfasst pfasst module~pfasst->module~pf_mod_comm_mpi module~pf_mod_pfasst pf_mod_pfasst module~pfasst->module~pf_mod_pfasst module~pf_mod_parallel pf_mod_parallel module~pfasst->module~pf_mod_parallel module~pf_mod_pfasst->module~pf_mod_comm_mpi module~pf_mod_parallel_oc pf_mod_parallel_oc module~pf_mod_parallel_oc->module~pf_mod_pfasst module~pf_mod_comm pf_mod_comm module~pf_mod_parallel_oc->module~pf_mod_comm module~pf_mod_comm->module~pf_mod_pfasst module~pf_mod_parallel->module~pf_mod_pfasst module~pf_mod_parallel->module~pf_mod_comm

Contents


Variables

TypeVisibility AttributesNameInitial
integer, public, parameter:: myMPI_Datatype =MPI_REAL8

Subroutines

public subroutine pf_mpi_create(pf_comm, mpi_comm)

Subroutine to create an MPI based PFASST communicator using the MPI communicator mpi_comm. assign communicator

Read more…

Arguments

Type IntentOptional AttributesName
type(pf_comm_t), intent(out) :: pf_comm
integer, intent(in) :: mpi_comm

public subroutine pf_mpi_setup(pf_comm, pf, ierror)

Subroutine to set up the PFASST communicator. This should be called soon after adding levels to the PFASST controller set the rank

Read more…

Arguments

Type IntentOptional AttributesName
type(pf_comm_t), intent(inout) :: pf_comm

communicator

type(pf_pfasst_t), intent(inout) :: pf

main pfasst structure

integer, intent(inout) :: ierror

error flag

public subroutine pf_mpi_destroy(pf_comm)

Subroutine to destroy the PFASST communicator.

Arguments

Type IntentOptional AttributesName
type(pf_comm_t), intent(inout) :: pf_comm

public subroutine pf_mpi_post(pf, level, tag, ierror, direction)

Subroutine to post receive requests.

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(in) :: pf
class(pf_level_t), intent(inout) :: level

level to send from

integer, intent(in) :: tag

message tag

integer, intent(inout) :: ierror

error flag

integer, intent(in), optional :: direction

public subroutine pf_mpi_send_status(pf, tag, istatus, ierror, direction)

Subroutine to send convergence status information

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout) :: pf

main pfasst structure

integer, intent(in) :: tag

message tag

integer, intent(in) :: istatus

status flag to send

integer, intent(inout) :: ierror

error flag

integer, intent(in), optional :: direction

public subroutine pf_mpi_recv_status(pf, tag, istatus, ierror, direction)

Subroutine to receive convergence status information

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout) :: pf

main pfasst structure

integer, intent(in) :: tag

message tag

integer, intent(inout) :: istatus

status flag to receive

integer, intent(inout) :: ierror

error flag

integer, intent(in), optional :: direction

public subroutine pf_mpi_send(pf, level, tag, blocking, ierror, direction)

Subroutine to send solutions

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout) :: pf

main pfasst structure

class(pf_level_t), intent(inout) :: level

level to send from

integer, intent(in) :: tag

message tag

logical, intent(in) :: blocking

true if send is blocking

integer, intent(inout) :: ierror

error flag

integer, intent(in), optional :: direction

public subroutine pf_mpi_recv(pf, level, tag, blocking, ierror, direction)

Subroutine to receive solutions Note when blocking == .false. this is actually a wait because the nonblocking receive should have already been posted

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout) :: pf

main pfasst structure

class(pf_level_t), intent(inout) :: level

level to recieve into

integer, intent(in) :: tag

message tag

logical, intent(in) :: blocking

true if receive is blocking

integer, intent(inout) :: ierror

error flag

integer, intent(in), optional :: direction

public subroutine pf_mpi_wait(pf, level, ierror)

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(in) :: pf

main pfasst structure

integer, intent(in) :: level

level on which to wait

integer, intent(inout) :: ierror

error flag

public subroutine pf_mpi_broadcast(pf, y, nvar, root, ierror)

Arguments

Type IntentOptional AttributesName
type(pf_pfasst_t), intent(inout) :: pf

main pfasst structure

real(kind=pfdp), intent(in) :: y(nvar)

data to broadcast

integer, intent(in) :: nvar

size of data to broadcast

integer, intent(in) :: root

rank of broadcaster

integer, intent(inout) :: ierror

error flag