ISO/IEC JTC1/SC22/WG5 N1488 DRAFT Committee Draft revision of ISO/IEC 1539-1:1997 - Programming Language Fortran - Part 1: Base language Abstract Fortran is a computer language for scientific and technological programming and is tailored for efficient run-time execution on a wide variety of processors. It was first standardized in 1966 and the standard has since then been revised three times (1978, 1991, 1997). The revision of 1991 was major and those of 1978 and 1997 were relatively minor. This proposed fourth revision is major and has been made following a meeting of ISO/IEC JTC1/SC22/WG5 in 1997 that considered all the requirements of users, as expressed through their national bodies. The major enhancements are (1) Derived type enhancements: parameterized derived types, improved control of accessibility, improved structure constructors, and finalizers. (2) Object oriented programming support: inheritance (one type may extend another), polymorphism, dynamic type allocation, choice of execution flow depending upon the type of a polymorphic object, and type-bound procedures. (3) The ASSOCIATE construct, which allows a complex expression or object to be denoted by a simple symbol. (4) Data manipulation enhancements: allocatable components, deferred type parameters, VOLATILE attribute, explicit type specification in array constructors, INTENT specification of pointer arguments, specified lower bounds of pointer assignment and pointer rank remapping, extended initialization expressions, MAX and MIN intrinsics for character type, and enhanced complex constants. (5) Input/output enhancements: asynchronous input/output, stream access, user specified transfer operations for derived types, user specified control of rounding during format conversions, named constants for preconnected units, regularization of input/output keywords, and access to input/output error messages. (6) Procedure pointers. (7) Scoping enhancements: the ability to rename defined operators and control of host association into interface bodies. (8) Support for IEC 60559 (IEEE 754) exceptions and arithmetic. (9) Interoperability with the C programming language. (10) Support for international usage: access to ISO 10646 4-byte characters and choice of decimal or comma in numeric formatted input/output. (11) Enhanced integration with the host operating system: access to command line arguments and environment variables, and access to the processor's error messages. In addition, there are numerous minor enhancements. The concept of 'printing' was part of the previous standard. It was needed in the 1960s and 1970s for control of line printers, but is no longer relevant so has been removed. The treatment of signed zeros in certain forms of output has been aligned with the IEEE floating-point standard. Apart from this, the revision is fully upwards compatible with the current standard, that is, a program that conforms to the present standard will conform to the revised standard. The enhancements are in response to demands from users and will make Fortran appropriate for the needs of present-day programmers without losing the vast investment in existing programs.