:ref:`MPI_File_read_at_all_end` - Reads a file at explicitly specified offsets; ending part of a split collective routine (blocking).
#include <mpi.h>
int MPI_File_read_at_all_end(MPI_File fh, void *buf,
MPI_Status *status)
USE MPI
! or the older form: INCLUDE 'mpif.h'
MPI_FILE_READ_AT_ALL_END(FH, BUF, STATUS, IERROR)
<type> BUF(*)
INTEGER FH, STATUS(MPI_STATUS_SIZE), IERROR
USE mpi_f08
MPI_File_read_at_all_end(fh, buf, status, ierror)
TYPE(MPI_File), INTENT(IN) :: fh
TYPE(*), DIMENSION(..), ASYNCHRONOUS :: buf
TYPE(MPI_Status) :: status
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
fh
: File handle (handle).
buf
: Initial address of buffer (choice).status
: Status object (status).ierror
: Fortran only: Error status (integer).
:ref:`MPI_File_read_at_all_end` is a split collective routine that stores the number of elements actually read from the file associated with fh in status. :ref:`MPI_File_read_at_all_end` blocks until the operation initiated by :ref:`MPI_File_read_at_all_begin` completes. The data is taken out of those parts of the file specified by the current view. All other fields of status are undefined.
All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard.