Fortran 2000 Forum
held on Wednesday October 30, 2002
at the Senate House, University of London
Malet Street, London WC1E 7HU
As those of you who have been following the standardization
process of the Fortran language will know, the draft standard for "Fortran 2000"
was released for public comment in October 2002.
To assist in this process the Fortran Specialist Group
organised this meeting where some of those responsible for drawing up the standard
described the changes and new features which have been introduced.
Further information on the draft standard and how you can comment on it is
T E C H N I C A L P R O G R A M M E
The HTML files linked below have been constructed directly from the slides used
in the presentations. A more readable summary of the new features written by
John Reid is available.
The standardization process and an
overview of the new features
John Reid, JKR Associates, UK ISO WG5 Convener
Data manipulation enhancements
Malcolm Cohen, Numerical Algorithms Group
This talk will describe a wide variety of enhancements to the data
manipulation and related facilities made in Fortran 2000. Major
enhancements are the addition of allocatable components and procedure
pointers. Allocatable components were previously described in ISO
Technical Report TR 15581 and are already available in a number of
Fortran 95 compilers, and so will only briefly be described here.
Minor enhancements which will be described include new data attributes,
dynamic type parameters, greater flexibility in the use of pointers,
and the ability to associate simple names with complicated variable
Support for IEEE arithmetic and exceptions;
interoperability with C
The way that the IEEE standard and exceptions are supported is not
new. This was decided in the ISO Technical Report TR 15580 and several
Fortran 95 compilers already support this as an extension. I will
therefore confine myself to a brief summary.
Fortran 2000 provides a standardized mechanism for interoperating
with C. Clearly, any entity involved must be such that equivalent
declarations of it may be made in the two languages. This is enforced
within the Fortran program by requiring all such entities to be
'interoperable'. I will explain in turn what this requires for types,
variables, and procedures. They are all requirements on the syntax so
that the compiler knows at compile time whether an entity is interoperable.
I will finish with two examples.
Parameterised derived types, derived type
input/output, asynchronous and stream input/output, access to the host
environment and international usage
Steve Morgan, Liverpool University
This talk will look at the new features in Fortran 2000 which will
improve the ability to define and use derived data types. The main
features considered will be the parameterisation of derived types and
derived type input/out which both allow derived types to be used in a
manner much more akin to the intrinsic types in the new language.
Facilities for accessing the host environment which allow access to
command line arguments and the processor's error messages will be
covered together with facilities to support international usage (ISO 10646).
This talk will describe the features added to Fortran 2000 to support
the object-oriented style of programming. The basic feature which
supports this style is type extension (which provides inheritance) with
polymorphic variables. Type selection provides a structured type
enquiry, with safe access to extended components. Type-bound
procedures provide for procedure invocation based on the dynamic type
of an object, and may be generic or indeed operators. The minor but
useful features of dynamic type allocation and cloning will also be
Summary of meeting and general discussions
plus results of straw votes
Comments on this or any other of the Group's pages should be sent by e-mail
to the BCS FSG Web Editor, Peter Crouch, at