J3/16-290 To: J3 From: Van Snyder & Tom Clune Subject: Normative text in Clause 15 notes Date: 2016 October 12 0. Rationale Note 15.37 contains normative text, and note 15.38 should just be a continuation of note 15.37. Additionally, both notes have awkward phrases that start with array sections that appear as noun determiners: "A (3:5) ..." 1. Edits [325 1+] 15.5.2.13 Restrictions on entities associated with dummy arguments, NOTE 15.37 Replace "shall not" with "cannot" 3 times. Insert "the array section" before "A (3:5)". Insert "The array section" before "A (1:2). Append Note 15.38 (as modified below) to end of this note. [325 1+] same subclause, NOTE 15.38 Insert "the array section" before "B (3:5)". Insert "The array section" before "C (1:3)". Insert "The array section " before "A (1:2)". "[which is B (1:2)]" -> ", associated with B (1:2),". "[which is C (4:7)]" -> ", associated with C (4:7)," Move the modified note to the end of Note 15.37. Replacement text reads "If there is a partial or complete overlap between the effective arguments of two different dummy arguments of the same procedure and the dummy arguments have neither the POINTER nor TARGET attribute, the overlapped portions should not be defined, redefined, or become undefined during the execution of the procedure. For example, in CALL SUB (A (1:5), A (3:9)) the array section A (3:5) cannot be defined, redefined, or become undefined through the first dummy argument because it is part of the argument associated with the second dummy argument and cannot be defined, redefined, or become undefined through the second dummy argument because it is part of the argument associated with the first dummy argument. The array section A (1:2) remains definable through the first dummy argument and A (6:9) remains definable through the second dummy argument. This restriction applies equally to pointer targets. In REAL, DIMENSION (10), TARGET :: A REAL, DIMENSION (:), POINTER :: B, C B => A (1:5) C => A (3:9) CALL SUB (B, C) ! The dummy arguments of SUB are neither pointers nor ! targets. the array section B (3:5) cannot be defined because it is part of the argument associated with the second dummy argument. The array section C (1:3) cannot be defined because it is part of the argument associated with the first dummy argument. The array section A (1:2), associated with B (1:2), remains definable through the first dummy argument and A (6:9), associated with C (4:7), remains definable through the second dummy argument."