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.