To: J3 J3/14-112r2
From: John Reid
Subject: Minor edits to N1996
Date: 2014 February 11
References: N1996, N1999
Discussion
----------
This paper contains minor edits that were suggested in votes in N1999,
address comments that were made in votes in N1999, or have arisen in
email discussion.
Edits to N1996:
---------------
In 5.1 [9:3-4] Delete sentence "The current team is the team that
includes the executing image."
[See vote of Reinhold Bader. This sentence is too vague. The meaning of
"current team" is defined by [9:14-15].]
In 5.1 [9:5] Change "image indices" to "cosubscripts", twice.
[See vote of Reinhold Bader.]
In 5.3 [9:34] Delete paragraph.
[Vote of Bill Long: the paragraph at [10:22-23] effectively prohibits
deallocation of a team variable for an active team construct. This
seems to make [9:34] redundant.]
In 5.3 [10:17] delete "a scalar".
[Vote of Bill Long: The rule R504 for a team variable already says
"scalar", so it is redundant here.]
In 5.3 [10:20] After "intrinsic subroutine GET_TEAM (7.4.13).", add:
"The values of the s on the images of the team shall be
those defined by execution of the same FORM TEAM statement on the all
images of the team."
[Vote of Nick Maclaren: Comment B.]
In 5.4 [11:1-4] replace the first sentence of the para with "If
appears in an image selector its value shall be the
same as the team variable specified in the CHANGE TEAM statement of a
currently executing change team construct or the initial team. The
image index computed using the specified cosubscripts is interpreted
as an image index in the team specified by ."
[Vote of Bill Long: The wording about FORM TEAM and GET_TEAM is
duplicated in [10:19-21]. Furthermore, the original text was unclear
that the value relative the the team is the image index.}
In 5.4 [11:7+2] Note 5.2 line 1, "A(0,N+1)" -> "A(0:N+1)".
[Votes of Bill Long and Reinhold Bader.]
In 5.4 [11:7+22+] Note 5.2 before the END DO statement, add a copy of
the SYNC TEAM statement that occurs three lines earlier.
[Vote of Reinhold Bader. Array elements A(1) and A(N) are updated by
the iteration.]
In 5.4 [11:8-] Note 5.2 last line, change "END CHANGE TEAM" to
"END TEAM".
In 5.5 [11:15-16] Change the sentence
"The value of specifies the team to which the executing image
belongs." to
"The value of species the new team to which the executing
image will belong."
[Vote of John Reid: The existing sentence is nonsense: the current team
is the team to which the executing image belongs.]
In 5.5 [11:15] & [12:1-2]
Delete "It is an image control statement." at [11:15].
Insert "The FORM TEAM statement is an image control statement." at the
beginning of [12:1].
Merge paragraphs [12:1-2] and [12:3-6].
[Vote of Bill Long: Move image control statement bit to para where we
discuss the meaning. Parallel to other subclauses describing statements
that are image control statements.]
In 5.5 [12:6+] Note 5.4 line 1, replace "coarrays regarded" with
"corresponding coarrays on each image representing parts of a larger
array".
[Vote of Bill Long: Avoid potential confusion about coarrays being
global objects.]
In 5.7 [12:18-19]. Change "The value" to "If the processor has the
ability to detect that an image has failed, the value" and change
"STAT_UNLOCKED" to "STAT_UNLOCKED; otherwise, the value of
STAT_FAILED_IMAGE is negative".
[Vote of Reinhold Bader: allow the programmer to determine whether or
not the implementation supports continuing in the face of image
failure.]
In 5.7 [12:24]. Change "as part of a collective activity" to
"during the execution of an image control statement or a reference
to a collective subroutine".
[Vote of Bill Long.]
In 5.7 [13-2+] Note 5.7 line 2, delete "on modern hardware".
[Vote of Bill Long: The word "modern" becomes dated, inconsistent with
the nature of a standard.]
in 6.3 [15:34] Replace line by
"If the segment that precedes an EVENT POST statement is unordered
with respect to the segment that precedes an EVENT POST statement
for the same event variable, the order of execution of the EVENT POST
statements is processor dependent."
[Vote of Nick Maclaren: Comment E.]
In 7.1 [17:8] Replace "intrinsics" with "intrinsic procedures".
[Vote of Bill Long: Subroutines and functions are pure, not
'intrinsics'.]
In 7.3 [17:28]. Replace "If an argument" with "If the SOURCE or RESULT
argument".
[Vote of Bill Long. Bill remarks that this is overkill, but it applies
to arguments like STAT where the restriction is not relevant.]
In 7.4 [18:19], [19:6], [19:37], [20:10]. Replace
"shall be a scalar of type integer with the same kind as ATOM" with
"shall be a scalar and of the same type and kind as ATOM".
[Vote of Bill Long: Wording more like ATOMIC_CAS, and allows for future
possibility that additional types are allowed for ATOM.]
In 7.4.3 [19:27], replace "prior to the comparison" with "that was used
for performing the compare and swap operation".
[Slightly different wording proposed in the vote of Bill Long. Clearer
and more like wording in other examples.]
In 7.4.6 [20:20], delete "shall be a coarray. It"
[Vote of Daniel Chen: Only CO_BROADCAST requires SOURCE to be a
coarray.]
In 7.4.9 [22:12], delete "elemental".
[For conformance with the constraint
C1234 (R1223) A nonintrinsic elemental procedure shall not be used as an
actual argument.
The constraint is needed because of the uncertainty of whether looping
over array elements is performed outside or inside the procedure.]
In 7.4.9 [22:16], delete ",and the function shall be executed by all
the images of the current team".
[Vote of Bill Long: the statement "and the function shall be executed
by all images of the current team" is not true. It is allowed, for
example, for just one of the images to do the whole computation.
See also vote of Nick Mclaren, comment G.]
In 7.4.9 [22:17], after "RESULT (optional) add
"shall not be polymorphic. It".
[Vote of Daniel Chen: 7.4.9 states SOURCE shall not be polymorphic.
The same wording should be added for RESULT argument.]
In 7.4.9 [22:33] Replace "continues until" with "terminates when".
[Vote of Bill Long: Clearer - current text is not specific about what
more might happen.}
In 7.4.11 [23:24] Replace "STATUS" with "STAT, ERRMSG".
[Vote of Bill Long. In EVENT_QUERY, there should be an ERRMSG argument
as well. JKR: let's change to "STAT" for consistency with the
collectives.]
In 7.4.11 [23:34] Replace "STATUS" with "STAT".
[See edit for [23:24]}
In 7.4.11 [23:36+] Add
ERRMSG (optional) shall be a scalar of type default character. It is an
INTENT(INOUT) argument.
If the ERRMSG argument is present and an error condition occurs, the
processor shall assign an explanatory message to the argument. If no
such condition occurs, the processor shall not change the value of the
argument.
[See edit for [23:24]}
In 7.4.13 [24:19-20] Replace "The corresponding actual argument" with
"It"
[Vote of Bill Long: The argument descriptions for intrinsic procedures
are for the actual arguments. See f2008 [325:5-6].]
In 7.5.2 [26:27] After "image index" insert "of the invoking image",
and replace "team of which the invoking image was last a member" with
"ancestor team".
[Vote of Bill Long: Clarification]
In 8.6 {29:24]. Replace ":" by ".".
In 8.7 [30:31] After "SYNC MEMORY," add "SYNC TEAM".
[Issue discussed in the vote of Reinhold Bader. JKR: this seems to be
what is needed.]
In 8.7 [30:40] After "error condition," add
"other than STAT_FAILED_IMAGE".
[Issue discussed in the vote of Reinhold Bader. JKR: this seems to be
what is needed.]
In 8.9 [32:6] replace "subcaluse" with "subclause".
In 8.11 [33:27-28] replace "function" with "subroutine" twice.
[Vote of Bill Long: From Dan email.]
In A.1.2 [36:15] Replace line by
"IF (this_image() <= images_used) THEN
read_checkpoint = .FALSE.
ELSE
read_checkpoint = .TRUE.
END IF"
[Vote of Reinhold Bader: images outside the working set will always
need to read a checkpoint once activated.]
In A.1.2 [36:36] Replace "SUBTEAM" by "TEAM".
[Vote of Reinhold Bader: renamed construct]
In A.2.1 [37:36] Add ")" after "num_images()".
[Vote of Reinhold Bader]
In A.2.1 In [37:37] Add ")" at the end of the statement.
[Vote of Reinhold Bader]