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]