Module to implement communication routines in MPI.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public, | parameter | :: | myMPI_Datatype | = | MPI_REAL8 |
Subroutine to create an MPI based PFASST communicator using the MPI communicator mpi_comm. assign communicator
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(pf_comm_t), | intent(out) | :: | pf_comm | |||
integer, | intent(in) | :: | mpi_comm |
Subroutine to set up the PFASST communicator. This should be called soon after adding levels to the PFASST controller set the rank
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Subroutine to destroy the PFASST communicator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(pf_comm_t), | intent(inout) | :: | pf_comm |
Subroutine to post receive requests.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Subroutine to send convergence status information
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Subroutine to receive convergence status information
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Subroutine to send solutions
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Subroutine to receive solutions Note when blocking == .false. this is actually a wait because the nonblocking receive should have already been posted
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |