J3/05-241r3 To: J3 From: Dan Nagle Subject: Deleting statement functions Date 2005 August 9 At Delft, it was decided to delete the obsolescent feature statement functions. This paper attempts to provide edits to do so. Edits consist of deleting all references to statement functions in page order throughout 007. A paragraph is moved within the appendix. Edits are also provided to add a new paragraph to Section 1 describing the deleted feature. Thanks to Van and Dick for useful comments, which are incorporated herein. Note that paper 05-254 updates obsolescent and deleted features discussion generally. Specifications: Specifications are as per RU-003 as modified by N1638. Move statement functions to the deleted list, and delete them from the standard. Syntax: None. Edits: [vi] delete "12.5.4 Statement functions" and page number [viii] delete "B.2.3 Statement functions" and page number [3:9+] Add a new subsection before the current 1.6.1: "1.6.1 Fortran 2003 compatibility Except as identified in this section, this standard is an upward compatible extension to the preceding Fortran International Standard, ISO/IEC 1539-1:2004 (Fortran 2003). Any standard-conforming Fortran 2003 program remains standard-conforming under this standard. The following Fortran 2003 features may have different interpretations in this standard: (1) Earlier Fortran standards had the concept of statement functions. Since Fortran 90, they have been superseded by internal functions. Statement functions have been deleted in this standard." [10:16] delete "or stmt-function-stmt" [14] "and statement function statements" from table 2.1 (middle right column) [14] "statement function statements" and row from table 2.2 [41:18-19] delete C421 [73:7] change "a function dummy procedure, or a statement function" to "or a function dummy procedure" [126:6] delete ", is not a statement function" [250] in Note 11.4, delete "statement function definitions, " [250:20] change "a , and ," to "an " [255:26] change "a nondummy procedure pointer, or a statement function" to "or a nondummy procedure pointer" [256:14-15] delete the section 12.1.2.5 [257:19] delete the sentence "The interface of a statement function is always implicit." [257:23] delete "other than a statement function" [259:12-13] change ", or " by "or " [276:35-36] change ", internal subprogram, or statement function" to "or internal subprogram" [278:14] change ", internal subprogram, or statement function" to "or internal subprogram" [282:32] delete the sentence "When a statement function is invoked, an instance of that statement function is created." [282:34] delete "or statement function" [282:35] delete "or statement function" [282:36-37] delete "or statement function" [284:1-3] delete the paragraph [285:9] move section 12.5.4 to B.1 [286:8] delete the line "(4) A statement function that references only pure functions." [286:19] in C1270 change "neither an intrinsic procedure nor a statement function" to "not an intrinsic procedure" [406:5] delete ", statement functions" [409:14] delete Oas a dummy argument in a statement function statement,O [409:30-32] delete the paragraph [411:14] delete "or statement function" [411:24-25] change "in an , or in a " to "or in an " [429:10] delete "statement function," [430:28] delete "A statement function always has an implicit interface." [433:25] change "a dummy procedure, or a statement function" to "or a dummy procedure" [434:2] delete ", or is a statement function that references only pure functions" [435:4-5] delete the definition [438:10] delete the line and renumber [437:32+] add list item 6 "(6) Statement functions. In Fortran 77, and for consistency in Fortran 90, Fortran 95 and Fortran 2003, statement functions provided functionality which has been superseded by internal functions. Statement functions have been deleted." [438:36-40] delete