Fortran has been and continues to be the most important language for the development of engineering and scientific applications. Fortran 90 replaced the outmoded FORTRAN 77 in 1991 and this recent version of the International Standard enhances this version. It also includes several new features to ensure that Fortran continues to be aligned with High Performance Fortran (HPF) for parallel computer architectures.
Fortran 95 Language Guide will serve as a language reference manual for programmers, provide teaching material for introductory courses in Fortran programming, and give help to experienced Fortran programmers migrating to the new standard. Wilhelm Gehrke has provided a comprehensive and easy-to-understand description of the Fortran 95 programming language as defined by the ISO, which will be welcomed by both practitioners and students alike.
From Preface: Fortran has been and will be the most important programming language for the development of engineering and scientific applications. The outmoded revision FORTRAN 77 of the International Standard was replaced in 1991 by a completely new Fortran language, ist name was Fortran 90. This revision is still a powerful tool, in fact it is closer to the state of the art of high level problem oriented programming languages than other famous languages that are used for the same area of application. The next revision, Fortran 95, of the International Standard is a relatively minor enhancement of Fortran 90 with a small number of new features and mainly devoted to clarifications, corrections, and interpretations of Fortran 90. The major new language features in Fortran 95 are:
o FORALL statement and construct,
o Pure and elemental user-defined subprograms,
o Implicit initialization of derived type objects, and
o Initial association status for pointers.
The minor new language features in Fortran 95 are:
o Comments in namelist input data,
o Minimal output field width for formatted numeric output,
o Intrinsic SIGN function may distinguish -0 and +0,
o New intrinsic function CPU_TIME returns processor time,
o New intrinsic function NULL returns disconnected pointer,
o References to certain pure functions in specification expressions,
o Nested WHERE constructs and masked ELSEWHERE statements,
o Modifications to intrinsic functions CEILING, FLOOR, MAXLOC, and MINLOC,
o Automatic deallocation of allocatable arrays, and
o Generic identifier in END INTERFACE statement.
Some of these new features have been added to keep Fortran aligned with HPF (High Performance Fortran) which is the Fortran-based language for the data parallel programming model for (massively) parallel computer architectures.
The ISO Fortran committee WG5 is already planning for the next major revision of the Fortran language. The target publication date is 2001. The list of suggested topics in preparation for Fortran 2000 contains "exception handling", "interoperability with C", "allocatable structure components" and "parameterized data types", and "object-oriented programming".
This "Fortran 95 Language Guide" is a comprehensible description of the complete Fortran 95 programming language as it is defined in the final draft of the International Standard. There are only few modifications to the language that could be described in a self-contained section. Most of the new features and the large number of minor modifications and of corrections of defects to Fortran 90 are scattered throughout the language such that it was necessary to prepare this "Fortran 95 Language Guide" as a completely revised edition of the "Fortran 90 Language Guide".
The "Fortran 95 Language Guide" is intended to serve as a language reference manual for programmers, as teaching material for introductory courses in Fortran programming, and as a help for experienced programmers during migration to Fortran 95. It is not intended to replace any textbook for beginners, any textbook on programming methodology, any annotated standard document, or the standard document itself as a reference for compiler writers. The guide concentrates on the description of the language as a programmers' tool and abstains from personal, historical, and philosophical comments and interpretations.
The standard document uses several concepts and technical terms which are only needed for the precise description of other technical terms. We try to avoid such technical terms within this guide. For example: the definition of the terms "explicit interface" and "implicit interface" in the standard document is fairly poor and hard to read. The Fortran 95 experts are familiar with these concepts and they don't bother about the details of the definition in the standard document. But my impression is that the casual or even the "normal" Fortran programmer will soon forget the precise definition of such terms. Therefore, we don't use such terms and concepts in this guide and describe the full details where they are needed.