(j3.2006) BLOCK-type statement

Aleksandar Donev donev1
Fri May 30 14:59:08 EDT 2008

On Friday 30 May 2008 11:15, Bill Long wrote:

> Just because text
> is in a Note does not mean it should be ignored.
I helped you write that Note and am far from suggesting that we ignore it. The 
*normative* text, if you read it closely, does not allow for variables 
without the VOLATILE attribute to be modified by means external to the 
processor. Even if it works in practice, it is illegal (like most of existing 
codes using MPI, pthreads, or whatever). It is *much* better to sanction it 
officially, explaining what it means and thus giving a way to programmers to 
use it rationally and safely.

> > --------------------
> > Within a segment, objects with the ASYNCHRONOUS attribute may be modified
> > by means external to the processor (like VOLATILEs) in addition to
> > Fortran pending I/O. The object may not be referenced or defined during
> > such segments.
> > --------------------
> >
> Every executable statement in the program is part of some segment. ?
> Which ones are the "such segments"?
The segment during which the object is modified externally. To re-phrase: If 
the object is modified externally during a segment, then it shall not be 
referenced or defined in that segment. This is similar to how we say that 
while they are pending I/O whatevers, variables with the ASYNC attribute 
cannot be referenced or defined.

> This is back to Dick's original proposal.
Yes, I just spelled it SYNC instead of "BLORTZ" and connected the semantics to 
the already existing SYNC MEMORY.


More information about the J3 mailing list