(j3.2006) 17-144r1
Van Snyder
Van.Snyder
Tue May 23 21:15:40 EDT 2017
In reviewing 17-144, I pondered the fate of the locality of an automatic
variable that is declared within a BLOCK construct within a DO
CONCURRENT construct, and that has an extent or length parameter that
depends upon an index variable.
Since it must necessarily must be re-created each time the BLOCK
construct begins execution, and destroyed when it completes, there is no
conclusion that it must be different in each iteration, which seems to
be the obvious definition of local locality. The locality of such a
variable cannot be specified by locality specs on a DO CONCURRENT
statement.
If automatic construct entities ought to have local locality, it's
difficult to make a case that simpler ones ought to be different. The
only construct entities that clearly are not local are ones with the
SAVE attribute. Construct entities that are allocatable coarrays or of
types having coarray components are pointless because they cannot be
allocated.
This set me to wondering about other things not addressed by 11.2.7.5.
What is the locality of a variable that is associated with one by
construct association, storage association, or pointer association, and
that has specified locality? What is the locality of a subobject of a
variable? When is a finalizable or allocatable component of an object
with local locality finalized or deallocated (or is it absurdly not
finalized or deallocated?)...?
That these questions are not addressed by 11.1.7.5 stimulated me to more
research. I eventually found twenty things that I consider to be
sufficiently serious that they might well result in interpretations and
corrigenda.
17-144r1 lists these considerations, and I believe it addresses all of
them.
More information about the J3
mailing list