[MPI3 Fortran] (j3.2006) (SC22WG5.3864) MPI non-blocking transfers

Michael Ingrassia michaeli at ranma.sfbay.sun.com
Wed Jan 21 13:27:43 CST 2009


> I do 
>not know whether in F2003 the interface of a procedure has to specify 
>ASYNCHRONOUS if the dummy gets it implicitly

Fascinating.  I think yes.

The relevant provisions seem to be

12.3.1.1 [04-007:page257]
"A procedure ... shall have an explicit interface if it is reference and ...
The procedure has a dummy argument that (a) has the ... ASYNCHRONOUS ...
attribute"

and

5.1.2.3 [04-007:page77] "The ASYNCHRONOUS attribute may be conferred implicitly 
by the use of a variable in an asynchronous input/output statement."

and

12.2.1.1 [04-007:page256]  "The characteristics of a dummy data object are its type,...whether it has the ... ASYNCHRONOUS ... attribute[s]"


and

12.3 "The characteristics of a procedure are fixed ... in different scoping
units"

So in order that an interface block not be a scoping unit
in which a dummy argument had different characteristics than the actual
procedure, I think the standard does require that the ASYNCHRONOUS attribute
be explicitly conferred on the dummy argument.  That is, 
unless someone can figure
out a way to give it the ASYNCHRONOUS attribute implicitly in an interface
block; for all I remember we may have introduced a way to smuggle
an asynchronous input/output statement into a type declaration.

	--Michael I.



More information about the mpiwg-fortran mailing list