MPI Forum Meetings logo

MPI Forum: mpi3-fortran Mailing List Archives

all MPI Forum: mpi3-fortran mailing list

Subject: Re: [MPI3 Fortran] Proposing changes to Fortran 2008
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2008-03-14 20:29:59


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