[MPI3 Fortran] Proposing changes to Fortran 2008
Jeff Squyres
jsquyres at cisco.com
Fri Mar 14 19:29:59 CDT 2008
On Mar 12, 2008, at 5:24 PM, Aleksandar Donev wrote:
> For non-blocking sends, a pointer to the actual must be retained. This
> requires matching TARGET attributes on *both* the dummy and actual:
>
> interface
> subroutine mpi_Isend(buffer...) bind(c)
> type(c_void), dimension(*), target :: buffer
> end subroutine
> end interface
>
> integer(c_int), target :: x(100)
>
> call mpi_Isend(x...)
>
> For the call to actually work as expected, the actual must be
> contiguous
> (this is a new defined term in Fortran 2008 with some intrinsics to
> test
> is an array is contiguous) and have the target attribute, and must
> be of
> interoperable type.
I admit that I know so little about Fortran that much of your mail
went over my head. :-( But a question about the above: is it
possible to allow non-contiguous datatypes to be passed through
without having the compiler copy them into contiguous areas? It may
be possible, for example, for the MPI datatype to accurately describe
the non-contiguousness of the data, and MPI is well-equipped to handle
such situations.
--
Jeff Squyres
Cisco Systems
More information about the mpiwg-fortran
mailing list