[MPI3 Fortran] Proposing changes to Fortran 2008

Aleksandar Donev donev1 at llnl.gov
Wed Apr 16 17:35:13 CDT 2008


On Wednesday 16 April 2008 15:19, Aleksandar Donev wrote:

> > VOLATILE is different. Volatile means that other processes/threads may
> > change the data.
>
> Exactly what happens here---MPI runtime is that other process. What if I
> try to access a variable while async I/O is still pending (no WAIT
> completed yet)? Shouldn't the compiler reload the latest value from memory.
> Or am I not allowed to do that? Frankly, I don't know the answer. I cannot
> see anything in the standard...I will ask.
OK, someone pointed me to the words. For asynchronous things, one is not 
allowed to read/modify them while they are pending:

"For asynchronous output, a pending input/output storage sequence affector 
(9.5.1.4) shall not be redefined, become undefined...
For asynchronous input, a pending input/output storage sequence affector shall 
not be referenced, become defined, become undefined,..."

This sounds like it should also apply to external (library) asynchronous I/O.

Best,
Aleks



More information about the mpiwg-fortran mailing list