ISO/IEC JTC1/SC22/WG5 N1142 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 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."