Fortran 2000 Committee Draft
The formal position is that a CD (Committee Draft) Registration and Approval Ballot is in progress. The deadline for comments (from national bodies) is 27 December. Each national body will have its own deadline ahead of 27 December, so be sure to submit your personal comments to your national body well before then. For the USA, they should be sent to Deborah Donovan, email: ddonovan@itic.org. For the UK, they should be sent to David Muxworthy, email: d.muxworthy@ed.ac.uk.
John Reid, ISO/IEC JTC1/SC22/WG5 Convener
.................................................. ......................
ISO/IEC JTC1/SC22/WG5 N1494
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 technical programming that is tailored for efficient run-time execution on a wide variety of processors. It was first standardized in 1966 and the standard has since 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 significant enhancements in the 1991 revision were dynamic storage, structures, derived types, pointers, type parameterization, modules, and array language. The main thrust of the 1997 revision was in connection with alignment with HPF (High Performance Fortran).
The major enhancements for this revision are
(1) Derived type enhancements: parameterized derived types, improved control of accessibility, improved structure constructors, and finalizers.
(2) Object oriented programming support: type extension and inheritance, polymorphism, dynamic type allocation, and type-bound procedures.
(3) Data manipulation enhancements: allocatable components, deferred type parameters, VOLATILE attribute, explicit type specification in array constructors, pointer enhancements, extended initialization expressions, and enhanced intrinsic procedures.
(4) Input/output enhancements: asynchronous transfer, stream access, user specified transfer operations for derived types, user specified control of rounding during format conversions, named constants for preconnected units, the flush statement, regularization of keywords, and access to error messages.
(5) Procedure pointers.
(6) Support for IEC 60559 (IEEE 754) exceptions.
(7) Interoperability with the C programming language.
(8) Support for international usage: access to ISO 10646 4-byte characters and choice of decimal or comma in numeric formatted input/output.
(9) Enhanced integration with the host operating system: access to command line arguments, environment variables, and processor error messages.
In addition, there are numerous minor enhancements.
Except in extremely minor ways, this revision is 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 keep Fortran appropriate for the needs of present-day programmers without losing the vast investment in existing programs.
I started coding in FORTRAN IV in 1975. I have used Basic, COBOL, 3 or 4 assembly languages, Pascal, C, C++, Java, and various and sundry other toys. I started as a scientist and then quickly became a programmer/sysadmin. I used FORTRAN for scientific applications programs for 14 years. I then switched to C and now C++. I like both of these much more than FORTRAN. However, where I work we have one of the top 20 fastest supercomputers in the world and we do oceanographic and meteorological modelling. These are ALL done in FORTRAN for two reasons: First, it's the fastest language to use on almost all supercomputers. Second, most scientific modelling programs are (and were) written in FORTRAN. As long as these guys keep it the best/fastest language for parallel processing it will continue to exist. This is neither good or bad, it just is.
Because C is also a very parallelizable language with hooks for both MPI and openMP and even PVM if you really want.
You don't get it. A high-quality Fortran compiler will unroll your inner loops for you, creating an executable that will spread your non-dependent iterations across multiple CPUs. This happens automatically. SGI's old Fortran compiler, Power Fortran, was exceptional at this. I haven't used the new F90 compiler myself, but I understand it's just fine at autoparallelization as well.
The only reason fortran is still around in science is legacy code (which is fine by me, I don't want to port it) but new code should be written in what the programmer is more comfortable with debugging.
Agreed! Fortunately, in engineering, the kids are still coming out of the schools with fluency in Fortran. That way, they can use not only the language they're most comfortable with, but also the language that's best suited for the job.
And FORTRAN is a niche language... If you learn C you can do it all.
I think we're getting to the point where C will be considered about as useful as assembler. That is to say, for some tasks it's essential. For most, though, it's more trouble than its worth.