J3/17-109r2 To: J3 From: John Reid & Bill Long & Daniel Chen & Malcolm Cohen Subject: CHANGE TEAM rewording Date: 2017 February 16 Discussion ---------- The first sentence of 11.1.5.2 Execution of a CHANGE TEAM construct says "The values of the on the active images of the team shall be those of team variables defined by synchronized executions of the same FORM TEAM statement (11.6.9) on all active images of the current team." This is incorrect when the have been defined by executions a FORM TEAM statement on a team that is a proper superset of the current team. Here is an example TYPE (TEAM_TYPE) OUTER, MIDDLE, INNER ... OUTER = GET_TEAM() FORM TEAM (MOD(THIS_IMAGE(),2)+1, MIDDLE) CHANGE TEAM (MIDDLE) ... FORM TEAM (MOD(THIS_IMAGE(),2)+1, INNER) CHANGE TEAM (INNER) ... END TEAM END TEAM If OUTER has at least 4 images, the teams will be properly nested, with MIDDLE having about half the images of OUTER and INNER having about half the images of MIDDLE. Now suppose the inner construct contains the construct CHANGE TEAM (MIDDLE) ... END TEAM without any further FORM TEAM statement for MIDDLE. The conditions in the sentence quoted at the start of this paper are satisfied, but we do not think it was intended for this to be allowed. This new construct would execute in teams that are proper supersets of their parent team. We need to require that the current team when the FORM TEAM statement was executed is the current team. The provided edit includes the change to in paper J3/17-123r2. Edit to 17-007 -------------- [188:6-7] In 11.1.5.2 Execution of a CHANGE TEAM construct, p1, Replace sentence 1: "The values of the team-variables on the active images of the team shall be those of team variables defined by synchronized executions of the same FORM TEAM statement (11.6.9) on all active images of the current team." with "The s on the active images that execute the CHANGE TEAM statement shall be those of team variables defined by corresponding executions of the same FORM TEAM statement (11.6.9). When the CHANGE TEAM statement is executed, the current team shall be the team that was current when those team variables were defined." ===END===