ISO/IEC JTC1/SC22/WG5 N1508 Status of Repository items John Reid At the meeting in August 2002, WG5 adopted the following resolution (see N1490): LV10. Future Revision of Fortran 2000 That WG5, having regard to the facts that not all requirements submitted for Fortran 2000 were incorporated in the revision and that some common extensions are not incorporated in Fortran 2000, records its intent that Fortran 2000 should be revised in due course and that the revision should be a minor one. Further, that WG5 proposes to archive its Repository of Requirements (WG5 Standing Document 5, the latest edition of which is WG5-N1189) and to prepare a new repository. To be entered in the repository, a suggested requirement must be submitted by a member body or by formal action of WG5. Requirements should be submitted to the convener in the form specified in WG5-N1496. The status of an item in the repository can be changed only as the result of an action of WG5. To help this process, I have reviewed the items in N1189, and divided them into three categories: those that I believe have been adopted, partially adopted, or not adopted. Those not adopted are candidates for inclusion in the new Repository, but our resolution has specified that this requires a request from a member boby or WG5 itself. A simple count of the number of items in each list does not give an accurate measure of the extent to which the requests made have been satisfied since there are repetitions and the magnitudes of the changes vary greatly. These are the items that I believe are adopted in the present draft Fortran 2000, sometimes not in the way that was suggested: 2 Controlling Pointer Bounds 6 Conditional Compilation 11 Aliasing Type Definitions 14 Parameterised Derived Types 14a Kind Parameters for Derived Types 16 Allow ALLOCATABLE derived-type components 16a Allocatable arrays as dummy arguments 17 Derived Type I/O 18 Object Oriented Programming 20 Command Line Arguments and Environmental Variables 38 Improve Interoperability between Fortran and ANSI C 38a Improve Interoperability between Fortran and C 41 Renaming of in USE 43 Procedure variables 43a Pointers to Procedures 44 Regularize Handling of Pointer Arguments 44a INTENT for pointers 45 Minor Technical Enhancements 52 Asynchronous I/O (proposed HPFF work) 59 Intrinsic and User-defined Specific and Generic Names 61 Generic COUNT_RATE Argument for SYSTEM_CLOCK 63 STREAM I/O 63a Binary stream I/O 63b Non-advancing I/O combined with free format 64 Extend MAX, MIN, etc. to CHARACTER Data Type 66 Extend Initialization of COMPLEX Variables 67 Lower Case Syntax Elements 68 Any Kind of Integer for I/O Specifiers 69 Permit BOZ constants in the TRANSFER function 71 Allow MERGE in constant expressions 72 Extend ALLOCATE to specify non-KIND type parameters 75 Allow PUBLIC entities of PRIVATE type 76 Default I/O mode 77 New Special Character designations 88 Class inheritance and dynamic binding polymorphism 93 New keywords READ_EOR, READ_EOF, WRITE_EOR (?), WRITE_EOF (?) in INQUIRE statements 94 New keywords IS_EOR and IS_EOF in INQUIRE, READ and WRITE statements 95 New keywords DEFAULT_READ and DEFAULT_WRITE in INQUIRE statement 99 Handling of error messages 100 New INTENT attribute: COPY_IN These are the items that I believe have been partially adopted: 32 Support IEC 559 conforming or similar hardware 50 Remove limitation on statement length 70 "Clean up" conformance rules 74 Additional Visibility Attribute 89 Constructors and destructors 90 Four new elemental intrinsic functions: TRUNCATE, ROUND, IBCHNG, ICOUNT Finally, these are the items that I believe have been not been adopted: 3 Language Evolution 5 Exception Handling 5a Exception Handling 5b Condition Handling 5c Exception Handling 7 Block Comments 15 Remove name class irregularities 19 Standardization of performance directives 19a Directives 21 Bit Data Type, String 23 Multi-threaded execution facilities 24 Remove the restriction on the maximum rank of arrays 24a Greater than 7 Array Dimensions 25 Extend the semantics of the EXIT statement 26 Selecting subarrays of non-rectangular form 27 Parallel sections construct 33 Nesting of internal procedures 34 Varying length character with declared maximum 37 Unsigned INTEGER Data Type 42 Allow internal procedures as actual arguments 46 Packaging Implementer Specific Intrinsics in MODULEs 47 POSIX Binding to Fortran 90 48 Variable Repeat Specifiers in Formats 49 Specifying Default Precisions 51 Annex of processor dependent items 53 PRIVATE and SHARED variables for TASK parallelism 54 Allow s as actual arguments 55 Regularize RANDOM_SEED functionality 56 Remove INTENT(IN) requirement for OPERATOR, ASSIGNMENT 57 Regularize KIND parametrization intrinsics 58 Array Components of Array Structures 60 Pointer Association Classes 62 Interval arithmetic support 65 Extend Non-advancing I/O to List-Directed I/O 73 Named Scratch Files 78 Qualifiers and Attributes for High Performance Computing with Fortran 90 79 Recognition of TAB characters in Fortran input 80 Intrinsic 'size' function for derived types 81 Instrinsic 'sort' for arrays of intrinsic type 82 Intrinsic function 'fft' - Fast Fourier Transformation 83 Performance Problem: Allocation and Deallocation 84 Overloading possibility for Pointer assignment 85 Operators for more than two arguments 86 Operation System Support 87 Requirement for Cleaner & Producer in Fortran 90 91 PATTERN= in bit manipulation functions such as IBCLR, IBSET, IBCHNG 92 Reserved words 96 Consider an array as a single object; give POINTER attribute to array valued function results 97 New transformational functions: POSITION and LOCATION 98 New functions to handle arrays: SCRIPT and SCALAR 101 New keyword NOCOPY= for functions TRANSFER and RESHAPE 102 Primitive graphic facilities in Fortran