[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