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

Malcolm Cohen malcolm at nag-j.co.jp
Thu Jan 22 18:28:02 CST 2009

Bill Long wrote:
> The one difference (from the compiler's point of view) is that the 
> volatility of a variable with the asynchronous attribute can be 
> "turned off" when the compiler sees a global WAIT.

There is no such thing as a global WAIT.  WAIT requires a 
file-unit-number - see C938 "A <file-unit-number> shall be specified in 
a <wait-spec-list>".  Unless the compiler can see all the references to 
a variable (something that is sometimes the case but rather frequently 
not!) it will not know what unit the i/o is being performed on (and if 
it can see the references and knows the unit, it probably knows the ID= 
and can track that too).

As has been pointed out, there are many differences between ASYNCHRONOUS 
and VOLATILE (that the "volatility" can be turned off as soon as the 
compiler reaches any calculation involving the variable is a much bigger 
difference than the WAIT case), but this is not one of them.

.....................Malcolm Cohen, Nihon NAG, Tokyo.

More information about the mpiwg-fortran mailing list