Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Variables
Type
Visibility
Attributes
Name
Initial
integer(kind=int32),
private
::
count
integer(kind=int32),
private
::
i
integer(kind=int32),
private
::
ierr
integer,
private,
allocatable
::
mpi_requests(:)
integer,
private,
allocatable
::
stat_array(:,:)
Source Code
subroutine request_waitall(requests,statuses)type(request_t),intent(inout)::requests(:)type(MPI_Status),intent(out),optional::statuses(:)integer,allocatable::mpi_requests(:)integer,allocatable::stat_array(:,:)integer(int32)::i,count,ierrcount=size(requests)allocate(mpi_requests(count))do i=1,countif(requests(i)%is_valid)thenmpi_requests(i)=requests(i)%m_requestelsempi_requests(i)=MPI_REQUEST_NULLend if end do if(present(statuses))then allocate(stat_array(MPI_STATUS_SIZE,count))call MPI_Waitall(count,mpi_requests,stat_array,ierr)do i=1,countstatuses(i)=status_array_to_type(stat_array(:,i))end do else allocate(stat_array(MPI_STATUS_SIZE,count))call MPI_Waitall(count,mpi_requests,stat_array,ierr)end if do i=1,countcall requests(i)%free()end do end subroutine request_waitall