13-281 To: J3 From: Steve Lionel Subject: Additional edits needed for subteams Date: 2013 June 26 Re: N1967 In places where the base standard specifies that there is synchronization across "all images" or "every image", these need to change to add "in the current team". Edits to N1967 -------------- Add new section after 8.4, Edits to clause 2: Edits to clause 6 {In 6.7.1.2, Execution of an ALLOCATE statement, replace paragraphs 3 and 4 with the following} If an allocation specifies a coarray, its dynamic type and the values of corresponding type parameters shall be the same on every image in the current team. The values of corresponding bounds and corresponding cobounds shall be the same on these images. If the coarray is a dummy argument, its ultimate argument (12.5.2.3) shall be the same coarray on these images. When an ALLOCATE statement is executed for which an allocate-object is a coarray, there is an implicit synchronization of all images in the current team. On these images, execution of the segment (8.5.2) following the statement is delayed until all other images in the current team have executed the same statement the same number of times. {In 6.7.3.2, Deallocation of allocatable variables, replace paragraphs 11 and 12 with the following} When a DEALLOCATE statement is executed for which an allocate-object is a coarray, there is an implicit synchronization of all images in the current team. On these images, execution of the segment (8.5.2) following the statement is delayed until all other images in the current team have executed the same statement the same number of times. If the coarray is a dummy argument, its ultimate argument (12.5.2.3) shall be the same coarray on these images. There is also an implicit synchronization of all images in the current team in association with the deallocation of a coarray or coarray subcomponent caused by the execution of a RETURN or END statement or the termination of a BLOCK construct. In 8.5, Edits to clause 8, insert after lines 17-18 {In 8.5.3 SYNC ALL statement, replace paragraph 2 with the following} Execution of a SYNC ALL statement performs a synchronization of all images in the current team. Execution on an image, M, of the segment following the SYNC ALL statement is delayed until each other image in the team has executed a SYNC ALL statement as many times as has image M. The segments that executed before the SYNC ALL statement on an image precede the segments that execute after the SYNC ALL statement on another image.