############################################################################## # # # X3J3/94-006 r0 # # # # The interpretation files are continually updated: the result of new # # requests, ballots, error corrections, etc. # # # # The version 94-006 r0 identification will be used: # # -beginning with the 93-345 letter ballot results # # -ending with the conclusion of meeting 128 # # # # Dick Weaver # ############################################################################## T A B L E O F C O N T E N T S , B Y F I L E PC File X3J3 Archive (add ".Z" for compressed files) Contents -------------------------- 94-006-0.me 94-006r0.00readme * List of Interpretations * List of Keywords * List of Interpretations, in sequence by date of last significant change (for those with a 'last sig... change' entry) Introduction, Explanation of fields * These three lists are generated from the individual interpretations. 94-006-0.edt 94-006r0.edits Edits from all interpretations, in page/line sequence. This file is generated from the individual interpretations. A listing of this file, formatted as "insertion" pages for the Fortran 90 standard and printed on colored paper (for ease of identification when inserted) is available from Dick Weaver. Listings are generally prepared just before and just after X3J3 meetings while the detail files are continously updated; thus the listing content may not reflect current file content. 94-006a0.0 94-006r0.A0 0- 99 94-006a0.100 94-006r0.A100 100-149 94-006a0.150 94-006r0.A150 150-... Part A, Interpretations active in X3J3 (status codes -, C, D, X, R, H) 94-006b0.0 94-006r0.B Part B, Interpretations WG5 approved (status codes W, P) ############################################################################## List of Interpretations Status Category Number Title W E 00000a Minor edits and corrections to ISO/IEC 1539:1991 (E) X E 00000b Minor edits and corrections to ISO/IEC 1539:1991 (E) C E 00000c Minor edits and corrections to ISO/IEC 1539:1991 (E) C I 000001 Optimization of Fortran programs W I 000002 Default main program name W I 000003 Preconnected units and UNIT=* X E 000004 Blanks in format specifications in free form source W I 000005 Namelist output of zero length character strings W E 000006 Procedure specifications in a scoping unit C E 000007 Duplicate module procedures in interface blocks - - 000008 subsumed by 000007 W I 000009 Generic interfaces with the same name in a program W I 000010 Generic interfaces with the same name in a scoping unit X I 000011 Multiple accessible defined operator and assignment interfaces C E 000012 Type of a named constant when there is implicit mapping W A 000013 Implicit mapping of an interface block W I 000014 Interface for a character function with a variable length result W E 000015 Error in fourth constraint for R429 W E 000016 Character length specification W I 000017 Creation of entities by local names in rename-list W I 000018 Valid characters for indicating fixed form statement continuation W I 000019 Correctness of last example in section 4.5 W I 000020 References to the same derived type by different names W I 000021 References to different derived types with the same name W I 000022 Use of derived type name in host scoping unit - - 000023 subsumed by 000012 W I 000024 IMPLICIT NONE and the type of a function result W I 000025 Resolution of internal procedure references W I 000026 Bounds of array expressions C I 000027 Requirements for pointers and target association C I 000028 Precedence of use or host association X I 000029 Class of a defined operator X E 000030 Length of character literals in array constructors W E 000031 Overloaded implied-DO variable names W E 000032 Implicit declaration of a derived type X I 000033 Interface blocks with the same name in a program - - 000034 subsumed by 000033 - - 000035 subsumed by 000033 W I 000036 Pointer to an assumed-size array W I 000037 Use of array sections in pointer assignment statements W I 000038 Same interface body in multiple generic interface blocks X E 000039 Association of a pointer actual argument with a dummy argument W I 000040 Allocation of arrays of pointers X E 000041 Procedure with target dummy argument requires explicit interface W I 000042 KIND parameter value W E 000043 List-directed character input W E 000044 END statement and fixed form source W I 000045 Array intrinsics with arrays of derived-type arguments W I 000046 RESULT clause for RECURSIVE functions W E 000047 Automatic data object in initialization expressions W I 000048 Pointer-valued statement functions C E 000049 Characteristics of function results W I 000050 Repeat counts on edit descriptors W I 000051 On unambiguous generic procedure references W E 000052 Expressions in statement function definitions W A 000053 Optional intrinsic function arguments X I 000054 Resolving generic procedure references W E 000055 Characteristics of character function results W I 000056 TRANSFER intrinsic function description W E 000057 Prohibition against multiple explicit specific interfaces X E 000058 Ambiguous use of "keyword" W I 000059 SEQUENCE derived type and component bounds W I 000060 Statement function argument references W E 000061 G edit descriptor with "d" = 0 W E 000062 Statement function constraints W I 000063 Interfaces and dummy procedure arguments W E 000064 SPACING result for 0.0 W I 000065 DO construct - Block and Nonblock W E 000066 Declaration of FUNCTION type W I 000067 Output of negative signed zero W E 000068 Pointer association status W E 000069 I/O implied DO variable C E 000070 Characteristics specified by interface bodies X E 000071 Use association and common block names W E 000072 Missing constraint for SIZE= X I 000073 Description of the MERGE intrinsic function W E 000074 Meaning of "referenced" in 11.3.2 X I 000075 Interface blocks in block data X I 000076 Attributes, properties, characteristics X E 000077 Miscellaneous questions W I 000078 Intrinsic functions in MODULE specification statements C E 000079 Automatic character and ALLOCATABLE, POINTER and TARGET attributes W E 000080 Vector subscripts in masked array assignment statements C E 000081 Pointer actual argument overlap X I 000082 Host association and generic names C E 000083 Extending generic intrinsic procedures W E 000084 Change masked array assignment constraint to prose W I 000085 Nondefault integer data type for UNIT=, RECL=, and REC= specifiers C E 000086 USE and host association C E 000087 PARAMETER statements and SAVE statements C I 000088 Common block names and local names X E 000089 Errors in the DATA statement description C E 000090 Subroutine and function names in nested scopes C I 000091 Constraint diagnosis for PRIVATE attribute X I 000092 Pointer and storage association X E 000093 Scalar pointer function results W I 000094 Functions in WRITE statement implied-DO loops W I 000095 Functions in IOLENGTH implied-DO loops C E 000096 Definition of "Declaration" X E 000097 Specification expression - - 000098 subsumed by 000131 X I 000099 Generic interfaces X E 000100 ASSOCIATED intrinsic and zero-sized objects C E 000101 Specification statements X I 000102 Returned value for INQUIRE POSITION= on an empty file W E 000103 Statement Function with unreferenced dummy argument W I 000104 Rounding formatted output X I 000105 Parallel evaluation of operands and arguments X I 000106 Multiple USE of modules; renaming rules W I 000107 USE renaming of generic and specific interfaces X E 000108 Referencing disassociated pointers W E 000109 Intrinsic function ASSOCIATED W I 000110 Named constant shape specification X E 000111 Array constructors in masked assignment statements X E 000112 Sequence derived type external functions X E 000113 Ordering of array specification and initialization C E 000114 Named constant attribute specification W I 000115 Multiple dummy arguments X I 000116 Scoping units and statement labels X E 000117 Use of MODULE PROCEDURE statement in internal procedures W E 000118 Named constructs and host association W E 000119 Rank of assumed-shape array W E 000120 PRESENT intrinsic and host association C 000121 ";" As a Statement Separator C E 000122 Intrinsic procedures in modules X I 000123 Result of INT(A) not equal to A for non-default integers X E 000124 Result of LBOUND for assumed-size arrays C E 000125 Copy in/copy out of target dummy arguments X E 000126 Character Entry statements and Partial Association X I 000127 Is a module a global entity? X E 000128 Use associated generic names and renaming X I 000129 Array constructors in initialization expressions X E 000130 Multiple statements on line with END statement X E 000131 Formatted Input and Kind Type Parameters X E 000132 SYSTEM_CLOCK intrinsic conformance requirements X I 000133 Definition of "token" as used in section 3.3.1 C E 000134 PARAMETER, NAMELIST, and implicit typing C E 000135 INTENT(IN) conformance C E 000136 scalar-structure-component in data-implied-do C E 000137 array-element in data-implied-do C E 000138 PRIVATE accessibility of a MODULE PROCEDURE C E 000139 INTRINSIC, EXTERNAL attribute questions C I 000140 TARGET attribute for a derived-type object with a pointer component C 000141 Generic name same as specific name C E 000142 Namelist I/O C E 000143 Use association and functions/subroutines/intrinsics X I 000144 Specification expressions and implicit typing. C 000145 Expressions in of a function statement C E 000146 Conformance C 000147 Generic name resolution C E 000148 Random_seed, random_number C 000149 Statement Function - Array constants in expressions, "composed" X E 000150 Undefinition of implied-DO variables in I/O statements X I 000151 Defined Operators with POINTER Operands X I 000152 Processor dependent values for list and namelist directed output X E 000153 Defined Operations, dummy arguments INTENT(IN) C E 000154 EQUIVALENCE and zero-sized sequences X E 000155 Multiple USE statements, rename and only lists. C I 000156 Forward references to a derived type definition X I 000157 LBOUND and UBOUND return values C 000158 Leftmost (on a line) negative integer C E 000159 May undefined expressions be used as arguments to INQUIRY functions C E 000160 Variables with the TARGET attribute in EQUIVALENCE groups C 000161 Modules and private derived types C 000162 Pointer expression "(i)" C E 000163 pointer assignment of a disassociated pointer C 000164 Use of ONLY with multipart definitions C E 000165 Vector subscripts in Namelist input C E 000166 Array named constant is a constant expression? C 000167 Subscripts and Substrings in Initialization expressions C 000168 Use ONLY and Namelist C E 000169 End of Namelist Input X E 000170 Argument Keywords and Intrinsic Procedures C E 000171 Equivalence of DBLE(A) and REAL(A,KIND(0.0D0)) Intrinsics ############################################################################### Keywords allocatable 79 argument association 39 81 argument keyword 58 170 argument - actual 39 81 argument - actual evaluation 105 argument - dummy 39 41 81 115 125 argument - optional 53 array allocatable 79 array argument 119 array assumed-shape 119 array assumed-size 36 124 array automatic 79 array bounds 26 70 array constant 166 array construction function 73 array constructor 19 30 111 129 array expression 26 array intrinsics 45 array of pointers 40 array pointer 108 array rank 119 array sections 37 array shape 70 84 110 113 114 ASSOCIATED intrinsic 100 109 association 125 association status 108 association - entry 49 association - partial 49 126 association - pointer 92 association - storage 71 92 attribute 76 attribute specification 110 attribute specification statement 113 114 automatic 79 automatic data object 47 blanks 4 133 BLOCK DATA program unit 75 character 43 79 126 character function 14 55 character length specification 16 character set 18 characteristics 49 70 76 common block name 71 88 concurrent 105 conformance 61 91 135 139 146 constant 42 89 construct name 118 data entity 77 data object 76 77 DATA statement 89 136 137 DBLE intrinsic 171 declaration 96 defined 108 150 defined assignment 11 defined operator 11 29 151 153 definition 150 derived type 22 32 45 59 112 142 146 156 164 derived type definition 15 16 20 21 derived type reference 20 21 DIMENSION statement 110 113 114 disassociated 108 DO construct - block and nonblock 65 END statement 44 130 entity 77 ENTRY statement 49 126 EQUIVALENCE statement 154 160 exact dependence 49 expression 162 163 expression evaluation 105 expression - arithmetic 1 expression - array 26 expression - constant 97 expression - initialization 47 129 145 167 expression - specification 78 97 144 145 EXTERNAL attribute 139 external function 112 EXTERNAL statement 86 external subprogram 77 forward reference 156 function 105 126 143 function result 14 24 46 49 55 70 93 FUNCTION statement 145 function type 66 function - elemental 73 function - external 112 generic identifier 29 generic interface 9 10 33 38 86 99 generic name 7 54 82 83 107 128 141 147 generic procedure 51 global entity 127 host association 22 25 28 62 82 86 117 118 120 144 implicit mapping 12 13 134 IMPLICIT NONE 24 25 IMPLICIT statement 32 134 implicit typing 28 144 implied-DO in i/o statement 69 95 implied-DO in WRITE statement 94 implied-DO variable 129 150 initialization 113 INQUIRE statement 102 inquiry functions 108 159 INT intrinsic 123 integer - negative 158 INTENT(IN) attribute 135 153 interface 9 10 14 63 107 interface block 7 11 13 45 54 57 75 83 117 interface body 6 38 57 interface - explicit 41 125 interface - specific 57 internal procedure 24 25 intrinsic 143 INTRINSIC attribute 83 139 intrinsic function 53 78 intrinsic procedure 54 83 122 170 i/o edit descriptor 50 i/o F edit descriptors 67 i/o file position 102 i/o format specification 4 i/o formatted rounding 104 i/o format-directed 131 i/o format-directed - negative signed zero 67 i/o G edit descriptor 61 104 i/o implied-do 69 94 95 i/o INQUIRE statement IOLENGTH= 95 i/o list-directed 43 131 152 i/o namelist 131 142 152 165 168 169 i/o namelist output 5 i/o OPEN statement SIZE= 72 i/o preconnected units 3 i/o RECL= 85 i/o REC= 85 i/o repeat count in format-directed 50 i/o statement 150 i/o unit 3 i/o UNIT= 85 i/o UNIT=* 3 i/o WRITE statement 94 keyword 58 kind type parameter 42 131 LBOUND intrinsic 124 157 local entities - classes of 29 local entity 127 local name 17 88 115 local name - duplicates 74 main program 2 masked array assignment 80 84 111 mathematical equivalence 1 MERGE 73 module 33 78 91 106 107 122 127 161 164 module procedure 117 138 module procedure name 7 named constant 12 87 89 110 114 NAMELIST statement 134 negative integer 158 numeric operations 1 ONLY 164 operations 45 optimization 1 160 parallel 105 PARAMETER statement 12 87 110 114 134 pointer 36 37 39 48 79 81 100 108 151 156 162 163 pointer allocation 40 pointer assignment statement 36 37 pointer association 27 pointer association status 68 POINTER attribute 27 93 140 PRESENT intrinsic 120 private 161 PRIVATE attribute 91 138 142 procedure names 90 procedure references 25 procedure specification 6 procedure - dummy 63 PROGRAM statement 2 property 76 RANDOM_NUMBER intrinsic 148 RANDOM_SEED intrinsic 148 REAL intrinsic 171 recursive function 46 referenced 108 return value 157 SAVE statement 87 scope - nested 90 scoping unit 6 10 38 90 116 SEQUENCE 59 112 source form 130 source form - fixed - initial line 44 source form - fixed - statement continuation 18 source form - free 4 133 source form - statement separator 121 SPACING intrinsic 64 specific name 107 141 specification 96 specification statements 101 statement function 48 52 62 103 149 statement function arguments 60 statement label 116 statement ordering 110 113 114 structure 40 140 structure component 140 structure constructor 89 subroutine 143 SYSTEM_CLOCK intrinsic 132 target 79 81 100 108 125 TARGET attribute 27 41 140 160 token 133 TRANSFER intrinsic 56 type declaration 143 type declaration statement 110 113 114 typographical errors a b c UBOUND intrinsic 157 undefined 150 use association 9 28 71 78 86 128 142 143 168 use renaming 17 106 107 128 142 155 USE statement 33 106 107 155 variable 77 variable length 14 vector subscript 80 165 WHERE statement/construct 80 84 111 zero length 5 43 zero-sized dimension 157 zero-sized objects 100 zero-sized sequences 154 ";" 121 ############################################################################### List of Interpretations, in sequence by date of last significant change LAST SIGNIFICANT CHANGE: 94-02-11 000164 submitted LAST SIGNIFICANT CHANGE: 94-02-11 000171 submitted LAST SIGNIFICANT CHANGE: 93-12-20 000007 ballot failed LAST SIGNIFICANT CHANGE: 93-12-20 00000c ballot: 4 approved, 5 failed LAST SIGNIFICANT CHANGE: 93-12-20 000028 ballot failed LAST SIGNIFICANT CHANGE: 93-12-20 000082 ballot approved LAST SIGNIFICANT CHANGE: 93-12-20 000087 ballot failed LAST SIGNIFICANT CHANGE: 93-12-20 000090 ballot failed LAST SIGNIFICANT CHANGE: 93-12-20 000099 ballot approved LAST SIGNIFICANT CHANGE: 93-12-20 000127 ballot approved LAST SIGNIFICANT CHANGE: 93-12-20 000131 ballot approved LAST SIGNIFICANT CHANGE: 93-12-20 000132 ballot approved LAST SIGNIFICANT CHANGE: 93-12-20 000135 ballot failed LAST SIGNIFICANT CHANGE: 93-12-20 000143 ballot failed LAST SIGNIFICANT CHANGE: 93-12-20 000146 ballot failed LAST SIGNIFICANT CHANGE: 93-12-20 000150 ballot approved LAST SIGNIFICANT CHANGE: 93-12-20 000151 ballot approved LAST SIGNIFICANT CHANGE: 93-12-20 000152 ballot approved LAST SIGNIFICANT CHANGE: 93-12-20 000153 ballot approved LAST SIGNIFICANT CHANGE: 93-12-20 000154 ballot failed LAST SIGNIFICANT CHANGE: 93-12-20 000155 ballot approved LAST SIGNIFICANT CHANGE: 93-12-20 000157 ballot approved LAST SIGNIFICANT CHANGE: 93-12-20 000165 ballot failed LAST SIGNIFICANT CHANGE: 93-12-20 000169 ballot failed LAST SIGNIFICANT CHANGE: 93-12-20 000170 ballot approved LAST SIGNIFICANT CHANGE: 93-11-12 000001 ballot failed LAST SIGNIFICANT CHANGE: 93-11-12 000027 ballot failed LAST SIGNIFICANT CHANGE: 93-11-12 000081 ballot failed LAST SIGNIFICANT CHANGE: 93-11-12 000083 ballot failed LAST SIGNIFICANT CHANGE: 93-11-12 000096 ballot failed LAST SIGNIFICANT CHANGE: 93-11-12 000098 subsumed by 000131 LAST SIGNIFICANT CHANGE: 93-11-12 000101 ballot failed LAST SIGNIFICANT CHANGE: 93-11-12 000114 ballot failed LAST SIGNIFICANT CHANGE: 93-11-12 000122 ballot failed LAST SIGNIFICANT CHANGE: 93-11-12 000125 ballot failed LAST SIGNIFICANT CHANGE: 93-11-12 000134 ballot failed LAST SIGNIFICANT CHANGE: 93-11-12 000140 ballot failed LAST SIGNIFICANT CHANGE: 93-11-12 000142 ballot failed LAST SIGNIFICANT CHANGE: 93-11-12 000156 submitted LAST SIGNIFICANT CHANGE: 93-11-12 000157 submitted, approved LAST SIGNIFICANT CHANGE: 93-11-12 000158 submitted LAST SIGNIFICANT CHANGE: 93-11-12 000159 submitted LAST SIGNIFICANT CHANGE: 93-11-12 000160 submitted LAST SIGNIFICANT CHANGE: 93-11-12 000161 submitted LAST SIGNIFICANT CHANGE: 93-11-12 000162 m127 submitted LAST SIGNIFICANT CHANGE: 93-11-12 000163 submitted LAST SIGNIFICANT CHANGE: 93-11-12 000166 submitted LAST SIGNIFICANT CHANGE: 93-11-12 000167 submitted LAST SIGNIFICANT CHANGE: 93-11-12 000168 submitted LAST SIGNIFICANT CHANGE: 93-07-16 000012 edit added, approved LAST SIGNIFICANT CHANGE: 93-07-16 000086 edit replaced by interpretation 82 LAST SIGNIFICANT CHANGE: 93-07-16 000097 m126 revised edits, approved LAST SIGNIFICANT CHANGE: 93-07-16 000133 response approved LAST SIGNIFICANT CHANGE: 93-07-16 000141 submitted LAST SIGNIFICANT CHANGE: 93-07-16 000144 response approved LAST SIGNIFICANT CHANGE: 93-07-16 000145 new LAST SIGNIFICANT CHANGE: 93-07-16 000147 new LAST SIGNIFICANT CHANGE: 93-07-16 000148 submitted LAST SIGNIFICANT CHANGE: 93-07-16 000149 submitted LAST SIGNIFICANT CHANGE: 93-05-14 000076 response, adopted LAST SIGNIFICANT CHANGE: 93-05-14 000077 response, adopted LAST SIGNIFICANT CHANGE: 93-05-14 000091 prior answer withdrawn LAST SIGNIFICANT CHANGE: 93-05-14 000100 revised, approved LAST SIGNIFICANT CHANGE: 93-05-14 000111 opposite response, approved LAST SIGNIFICANT CHANGE: 93-05-14 000124 revised response, approved LAST SIGNIFICANT CHANGE: 93-05-14 000126 revised response, approved LAST SIGNIFICANT CHANGE: 93-05-14 000128 revised response, approved LAST SIGNIFICANT CHANGE: 93-05-14 000136 m125 submitted LAST SIGNIFICANT CHANGE: 93-05-14 000137 m125 submitted LAST SIGNIFICANT CHANGE: 93-05-14 000138 m125 submitted LAST SIGNIFICANT CHANGE: 93-05-14 000139 m125 submitted LAST SIGNIFICANT CHANGE: 93-02-.. 000105 LAST SIGNIFICANT CHANGE: 93-02-.. 000123 new LAST SIGNIFICANT CHANGE: 93-02-12 000030 LAST SIGNIFICANT CHANGE: 93-02-12 000039 LAST SIGNIFICANT CHANGE: 93-02-12 000041 LAST SIGNIFICANT CHANGE: 93-02-12 000049 item split LAST SIGNIFICANT CHANGE: 93-02-12 000070 revised LAST SIGNIFICANT CHANGE: 93-02-12 000073 LAST SIGNIFICANT CHANGE: 93-02-12 000106 expanded discussion LAST SIGNIFICANT CHANGE: 93-02-12 000108 LAST SIGNIFICANT CHANGE: 93-02-12 000113 LAST SIGNIFICANT CHANGE: 93-02-10 000079 LAST SIGNIFICANT CHANGE: 93-02-10 000089 LAST SIGNIFICANT CHANGE: 93-02-10 000092 LAST SIGNIFICANT CHANGE: 93-02-10 000093 LAST SIGNIFICANT CHANGE: 93-..-.. 00000b ballot approved LAST SIGNIFICANT CHANGE: 92-11-.. 000112 original draft response LAST SIGNIFICANT CHANGE: 92-11-13 000071 added edits to previously proposed LAST SIGNIFICANT CHANGE: 92-11-13 000075 first draft response LAST SIGNIFICANT CHANGE: 92-11-13 000088 first draft response LAST SIGNIFICANT CHANGE: 92-11-13 000116 LAST SIGNIFICANT CHANGE: 92-11-13 000117 new ############################################################################## Introduction, Explanation of fields This document is an internal working document of X3J3, the Fortran Technical Committee of X3, and contains the committee's responses to the defect reports received against ISO/IEC 1539:1991 (E). The status of each item in this document is specified in the STATUS field, the values of which are: -. Subsumed The consolidation of two or more items. H. Hold (followed by the otherwise current status) The status is dependent on some other interpretation or action, as noted in the history field. C. X3J3 consideration in progress Submitted to and being processed by X3J3, but as yet no response has been adopted by X3J3. D. X3J3 draft response A response (ANSWER field) has been approved by a formal X3J3 vote but not yet approved by subsequent letter ballot. X. X3J3 approved; ready for WG5 Approved by an X3J3 letter ballot. This vote will be taken only on items having a STATUS of "X3J3 draft response". W. WG5 approved; ready for SC22 Approved by WG5 for further processing within ISO as a corrigendum item. WG5 will advise X3J3 when an item reaches this status. R. Returned by WG5 for X3J3 reconsideration Returned to X3J3 after the item had been forwarded to WG5 but failed to gain WG5 approval. This status is equivalent to "X3J3 consideration in progress". P. Published Published as an item in an approved corrigenda report, or incorporated into the next draft revision of the standard. In either case the item must have previously attained the status of "WG5 approved; ready for SC22". The defect type of each item in this document is specified with the DEFECT TYPE field, the values of which are given below. These definitions are taken from the X3/SD-2 of February 1992. Note that is the answer and not the question determines defect type. blank No defect type assigned. Amendment Any modification of the standard that introduces technical changes or changes in what it means to conform to the standard shall be treated as an amendment to the standard. Erratum The standard may be modified with corrigenda to: a) Correct a typographical error. b) Insert a missing word, sentence, paragraph, figure, example, table, or clause. c) Delete a extraneous word, sentence, paragraph, figure, example, table, or clause. Any such modification of the standard shall not introduce technical changes or changes in what it means to conform to the standard. Interpretation An interpretation is a clarifying commentary on the standard that does not introduce either a technical change or a change in what it means to conform to the standard. An interpretation does not contain an edit (X3J3, m126). Items numbered 00000a, b, etc., contains minor edits and corrections to the standard. ###############################################################################