[MPI3 Fortran] ASYNC attribute

Craig Rasmussen crasmussen at newmexicoconsortium.org
Wed May 6 16:21:47 CDT 2009

On May 6, 2009, at 7:21 AM, Bill Long wrote:

> Jeff Squyres wrote:
>> 1. How does the MPI_Wait know that it can have no code motion with  
>> respect to buf?
> The declaration for buf should have been REAL,ASYNC ......  
> (ASYNC_EXTERNAL was an earlier spelling).  Motion of code involving  
> an ASYNC variable would be suppressed across any call except to an  
> intrinsic procedure that is known by the compiler to be "safe".
>> 2. Yes, the MPI_Request argument to MPI_Wait is inout.
> Question: Is MPI_Request actually a Fortran derived TYPE, or is it  
> just a KIND value for an INTEGER?  I had thought that all of these  
> flag and handle-like arguments were treated as integers in the  
> Fortran interface.  Making it an actual defined type would have some  
> advantages, but would that cause a problem with existing codes?

Right, user code would have to change in the MPI-3 interfaces.  This  
does create a problem regarding the naming of the MPI module.  We had  
discussed leaving the module name alone.  So both MPI-2 and MPI-3  
would use the same module name, ie,

use MPI

I don't see how the module name can be the same and just a "quality of  
implementation" issue.  I think we have to say,

use MPI3

I don't want to give up using derived types for things like  
TYPE(MPI_Comm), unless the implementers are happy using integers.


More information about the mpiwg-fortran mailing list