From janshep@watson.ibm.com  Sun Oct 15 17:17:59 1995
Received: from watson.ibm.com (watson.ibm.com [129.34.139.4]) by dkuug.dk (8.6.12/8.6.12) with SMTP id RAA05091 for <sc22wg5@dkuug.dk>; Sun, 15 Oct 1995 17:17:56 +0100
Message-Id: <199510151617.RAA05091@dkuug.dk>
Received: from YKTVMV by watson.ibm.com (IBM VM SMTP V2R3) with BSMTP id 5653;
   Sun, 15 Oct 95 12:17:43 EDT
Date: Sun, 15 Oct 95 12:15:53 EDT
From: "Janice C. Shepherd ((914) 784-6313)" <janshep@watson.ibm.com>
X-Addr: J1-K10, Hawthorne 2
        tieline 863
To: sc22wg5@dkuug.dk
Subject: Fortran 90 defect edits missing from Fortran 95.

Miles: please make this a WG5 document for consideration at the November
meeting.

Thanks.
Janice

To: WG5
From: Janice Shepherd
Subject: Edits from defect items not yet in Fortran 95.

Some of the defect items for Fortran 90, with status "X3J3 approved;
ready for WG5" or status "WG5 approved; ready for SC22" have edits
that have not yet been incorporated in Fortran 95. Below is the
list of those edits in terms of Fortran 95.

WG5 should consider the appropriateness of including any or all of the
following edits to Fortran 95.

From defect 83:
----------------

[196:20-22] Replace the last sentence of 2nd paragraph of 12.3.2.3 with

    "In a scoping unit a name can appear as both the name of a generic
    intrinsic procedure in an INTRINSIC statement and as the name of a generic
    interface if procedures in the interface and the specific intrinsic
    procedures are all functions or all subroutines (14.1.2.3)."

[273:4]
    change "When an intrinsic procedure, operator, or"
      to   "When an intrinsic operator or"

[273:28+] add as a new paragraph

     "If a generic name is the same as the name of a generic intrinsic
     procedure, the generic intrinsic procedure is not accessible if the
     procedures in the interface and the intrinsic procedure are not all
     functions or not all subroutines.  If a generic invocation applies to both
     a specific procedure from an interface and an accessible generic intrinsic
     procedure, it is the specific procedure from the interface that is
     referenced."

Also consider related edit:
[3:25-27] delete item (1), renumber rest.

From defect 100:
----------------

[230:1-2] replace text of Case (ii) with
  "If TARGET is present and is a target, the result is true if TARGET
   does not have size zero and POINTER is currently associated with
   TARGET. Otherwise, the result is false."

[230:3-5] replace text of Case (iii) with
  "If TARGET is present and is a pointer, the result is true if both POINTER
   and TARGET are currently associated with the same nonzero-sized target.
   Otherwise, the result is false."

From defect 125:
----------------

[199:15+], Insert as a new paragraph.

       "If the dummy argument has the TARGET attribute and is an
        explicit-shape array or is an assumed-size array and the
        corresponding actual argument has the TARGET attribute but is
        not an array section with a vector subscript:

          (1) On invocation of the procedure, whether any pointers
              associated with the actual argument become associated
              with the corresponding dummy argument is processor dependent.

          (2) When execution of the procedure completes, the pointer
              association status of any pointer that is pointer associated
              with the dummy argument is processor dependent."

[331:25-28] replace this paragraph with:
     "When execution of a procedure completes, any pointer that remains
      defined and that is associated with a dummy argument that has the
      TARGET attribute and is either scalar or is an assumed-shape array,
      remains associated with the corresponding actual argument if the
      actual argument has the TARGET attribute and is not an array section
      with a vector subscript."

From defect 129:
----------------

[91:15]
    change: "either constant expressions or implied-DO variables,"
        to: "constant expressions,"

[91:32+] add as a new item (8), prior to the "or", renumber rest of list
    "(8)  An implied-DO variable within an array constructor where the
          bounds and strides of the corresponding implied-DO are
          constant expressions,"

[92:5-6]
    change: "either initialization expressions or implied-DO variables,"
        to: "initialization expressions,"

[92:25+] add as a new item (8), prior to the "or", renumber rest of list
    "(8)  An implied-DO variable within an array constructor where the
          bounds and strides of the corresponding implied-DO are
          initialization expressions,"

[93:38]
    change: "either restricted expressions or implied-DO variables,"
        to: "restricted expressions,"

[94:15+] add as a new item (12), deleting the "or" from (11), renumber rest
    "(12) An implied-DO variable within an array constructor where the
          bounds and strides of the corresponding implied-DO are
          restricted expressions, or"

From defect 175:
----------------

[94:20] In section 7.1.6.2, add to the paragraph ahead of R734
  "A <constant specification expression> is a specification expression
   that is also a constant expression."

From defect 193:
----------------

[201:37+], add as a new item
  "(6) If it is a pointer, it must not be supplied as an actual
   argument corresponding to a nonpointer dummy argument other
   than as the argument of the PRESENT intrinsic function."

[201:38] change "in (5)"
     to   "in the list"

From defect 194:
----------------

[119:11]  In the sentence before rule R801
        insert "and possibly FORMAT and DATA statements"
        between "constructs" and "that".

From defect 198:
----------------

[200:37-39] replace paragraph with

   "If the interface of the dummy procedure is explicit, the
    characteristics listed in 12.2 must be the same for the associated
    actual procedure as for the corresponding dummy procedure, except
    that a pure actual procedure may be associated with a dummy
    procedure that is not pure."
