09-169
To: J3
From: Van Snyder
Subject: Coarray wording redundancies or inconsistencies
Date: 2009 March 27
References: 09-007r1
1. Discussion
Some restrictions on coarrays are stated in more than one place. For
reference, here are two constraints mentioned below:
C444 A data component whose type has a coarray ultimate component shall
be a nonpointer nonallocatable scalar and shall not be a coarray.
C525 An entity whose type has a coarray ultimate component shall be a
nonpointer nonallocatable scalar, shall not be a coarray, and
shall not be a function result.
2. Edits
[37:14 2.4.7p5]---------------------------------------------------------
C525 says a coarray is prohibited to have coarray components.
Therefore "noncoarray" is not needed here.
Editor: Delete "noncoarray".
[66:28-29 4.5.4 C444]---------------------------------------------------
Since C525 says "entity", not "variable", C444 is unnecessary.
Editor: Delete C444.
3. Questions and remarks without answers
NOTE 2.14 [37:18+8 2.4.7p7] would benefit from a reference to the text
that supports its assertion, if there is such text other than 2.4.7p4,
which doesn't say what the note says (2.4.7p4 says "can" not "is").
12.5.2.8 [299:1] says that the actual argument corresponding to a
coarray dummy argument has to be a coarray, but doesn't say anything
about the dummy argument corresponding to an actual argument that is a
coarray. 12.4.2.2 [281:20] says that a procedure has to have explicit
interface if it has a coarray dummy argument, but says nothing about
needing explicit interface if the actual argument is a coarray. If a
coarray appears as an actual argument but the referenced procedure has
implicit interface, is the coarray reference interpreted to be on the
image that invokes the procedure? Probably so, since the corresponding
dummy can't be a coarray. Does this need to be said somewhere
explicitly, even if only in a note, or does NOTE 2.14 imply it (but
without adequate normative support)?