To: J3 J3/22-153 From: John Reid Subject: Established coarrays Date: 2022-June-11 References: 22-007r1 Discussion ---------- We have not been consistent in our use of the term "established" for a coarray in a team. It is my belief that rather than there always being a single team in which a coarray is established we intended to allow a coarray to be established in the current team and a sequence of ancestors in which each is the parent of its predecessor. A coarray being established in a team then means that a set of coindices and a scalar of type TEAM_TYPE identify an image in the team. This interpretation is supported, for example, by these words in the description of the TEAM argument of the intrinsic THIS_IMAGE [447:25-26] "If COARRAY appears, it shall be established in that team." The opposite view is given in 5.4.8 which begins with this sentence [43:2] "A nonallocatable coarray with the SAVE attribute is established in the initial team." and says nothing about being established in any other team. I think words to this effect should be added to 5.4.8 "A coarray that is established in the team in which a CHANGE TEAM statement is executed is established in the team of the CHANGE TEAM construct". Edits are proposed to support this view, to correct an error found during the preparation of this paper, and to make an editorial improvement. Edits to 22-007r1 ----------------- [43:11] In 5.4.8 Established coarrays, para 5, sentence 2, add "nonallocatable" before "coarray" so that the sentence becomes "A nonallocatable coarray dummy argument is not established in any ancestor team even if the corresponding actual argument is established in one or more of them." {This is a simple error. The current text contradicts the statement in para 2 of 5.4.8: "An allocated allocatable coarray is established in the team in which it was allocated." [43:12+] In 5.4.8 Established coarrays, add new para 6: "A coarray that is established in the team in which a CHANGE TEAM statement is executed is established in the team of the CHANGE TEAM construct". [140:20] In 9.6 Image selectors, para 3, sentence 1, at the end of the sentence delete "or an ancestor thereof" so that the sentence reads "If a TEAM= specifier appears in an , the team of the image selector is specified by , which shall identify the current or an ancestor team; the object shall be an established coarray in that team." [140:23] In 9.6 Image selectors, para 3, sentence 2, change "an ancestor" to "the parent" so that the sentence reads "If a TEAM_NUMBER= specifier appears in an image-selector> and the current team is not the initial team, the value of the shall be equal to the value of a team number for a sibling team of the current team and the team of the image selector is that team; the object shall be an established coarray in the parent of the current team, or an associating entity of the CHANGE TEAM construct." [It's the parent that matters. We do not need to mention ancestors of the parent. ] [402:15] In 16.9.107 IMAGE_INDEX (COARRAY, SUB) ..., para 3, COARRAY, sentence 2, change "an ancestor" to "the parent" so that the sentence reads "If TEAM_NUMBER appears and the current team is not the initial team, it shall be established in the parent of the current team." [It's the parent that matters. We do not need to mention ancestors of the parent. ] [402:15] In 16.9.107 IMAGE_INDEX (COARRAY, SUB) ..., para 3, COARRAY, penultimate sentence replace "Otherwise, if" by "If" so that the sentence becomes "If TEAM appears, it shall be established in that team." [Editorial improvement. Makes the meaning clearer.] [402:16] In 16.9.107 IMAGE_INDEX (COARRAY, SUB) ..., para 3, COARRAY, final sentence replace "Otherwise" by "If neither TEAM nor TEAM_NUMBER appears" so that the sentence becomes "If neither TEAM nor TEAM_NUMBER appears, it shall be established in the current team or an ancestor of the current team." [Editorial improvement. Makes the meaning clearer.]