John Reid, WG5 Convener

Prepared for the BCS Fortran Specialist Group AGM, May 2003


Since the last AGM, there have been two ordinary meetings of J3, two joint meetings of WG5 and J3, an international ballot on the draft standard, and a meeting of WG5's parent committee ISO/IEC SC22.

I will refer to several WG5 documents by their N numbers; these are all accessible from the WG5 website,, and I would like once more to take the opportunity to thank NAG for providing this facility.


WG5 met jointly with J3 in Las Vegas, hosted by Mallory North. Most of the meeting was as J3 with Dan Nagle in the chair, but we began and ended as WG5 with me in the chair and there were occasional short WG5 sessions at other times. This format was new and worked well. Dan and I always sat together to indicate that we were working together, as indeed we were.

We were able to achieve our prime objective of getting the draft standard finished - well, actually agreeing on the edits that would make it. After the meeting, there remained the task of creating the actual draft and for this I would like to express my thanks to the Editor, Richard Maine.

The draft Fortran 2000 standard commenced its CD (Committee Draft) Registration and Approval Ballot on 27 September and the deadline for comments (from national bodies) was 27 December. The official version is visible as


As far as WG5 matters were concerned, this was a very satisfactory meeting. My request for the CD ballot to start as soon as the draft was ready was accepted and I was reappointed as convener for a further 3-year term.


Corrigendum 2 to the Fortran 95 standard was published on 15 June. Its contents may be viewed as N1472 and the corresponding defect reports and responses (43 of them) may be viewed as N1473. This represents a significant amount of work by J3 (with some assistance from WG5).

There remain 28 outstanding items, so the job is not finished yet. There will be no further Corrigenda to Fortran 95, but once a item has been processed through our stages of J3 meeting vote, J3 letter ballot, and WG5 ballot, the decision is as good as if the final step of incorporation into a corrigendum had been taken.


The British Computer Society Fortran Specialist Group organized a one-day forum on the draft Fortran 2000 standard in London on 30 October.

Most of the time was spent on presentations on the changes from Fortran 95. This was followed by an hour of discussion during the course of which the following emerged:

  1. Regret that more people were not there (25 people registered). My personal view that the quality of the audience made up for the lack of quantity.
  2. General satisfaction with progress and a determination not to suggest anything that might 'rock the boat' or delay the schedule.
  3. The following suggestions for changes. I show the straw votes as yes-no figures. There were also many who were undecided.

    1. Delete ALIAS.  7 - 2
    2. Delete ENUM.  6 - 1
    3. Add reallocate as an intrinsic subroutine that applies only to rank-one arrays.  many - 0
    4. Add specification of defaults for type parameter values of derived types.  7 - 0
    5. Delete the option of a fresh specification of a default initial value for the parent component when a type is extended.  6 - 0
    6. Add a new form of elemental that does not require the procedure to be pure and calls it in succession for each array element in array subscript order.  3 - 2
    7. Delete finalizers.  1 - 6.
Items a. to e. were passed to the BSI Fortran Panel.

The meeting ending with thanks being expressed to the speakers and to Peter Crouch (Chairman, BCS Fortran Specialist Group) for all the hard work he put into organizing a very successful day.


This was a Concurrent Registration and Approval Ballot.

13 member countries supported registration, 1 (Germany) did not, 1 (France) abstained and 9 countries did not vote. The project was therefore registered at the CD stage.

On the CD itself, 10 member countries supported approval without comments, 3 (Japan, UK, USA) supported approval with comments, 1 (Germany) did not support approval, 1 (France) abstained and 9 countries did not vote. The comments may be found in the documents N1506 and N1509. The important ones are summarized in the appendix.


The March/April meeting in Las Vegas considered all the ballot comments and agreed on how to respond to them (see N1520). WG5 decided to delegate editorial comments and very minor technical comments to J3 to take whatever action it considered appropriate. The items that were considered by WG5 itself and are summarized in the appendix.

It was a tough but friendly meeting. Most of the decisions on the major items were made on the first day, leaving the rest of the meeting for getting the details right. The most difficult item was the UK proposal to delete the TYPEALIAS feature. This was approved by a majority straw vote on the first day, but a formal vote of J3 later in the week rejected the detailed edits. WG5 then reaffirmed its wishes and J3 graciously accepted this as an instruction.

The intention is that only editorial changes or very minor technical changes be made from now on. In effect, the content of the new standard has been chosen. It is planned to submit the Final Committee Draft for ballot in September, the Draft International Standard for ballot in June next year and to publish the new standard before the end of 2004.

The current draft is visible here:

My unofficial summary of the new features in the CD is available as N1507. A version updated by the changes made at the recent WG5 meeting will be available as N1522.


28 July to August 1 or 4-8 August 2003. Dresden.
2-7 May 2004. Las Vegas. Joint with J3.
2005. Meeting in Europe.

NOTE (October 2003)
Information on how you can comment on the Final Committee Draft is available here.

APPENDIX - suggestions considered by WG5 itself.


US 1.14 Cater for the C types int8_t, int16_t, int32_t, int64_t, and intptr_t. Accepted.

US 2.5 Require the BIND attribute in the ENUM feature. Accepted.
UK TC9 and D i) Remove the ENUM facility. Rejected.

UK MTC11 and D i) Have separate types for C data and procedure pointers. Accepted.

UK MTC12 Make TYPE(C_PTR) be an opaque derived type. Accepted.

UK MTC13 Require the prototype of an interoperable C function not have the inline function specifier. Accepted.

UK MTC14 Add further requirement for C interoperability. Accepted.


US 2.9 Replace the constants IOSTAT_END and IOSTAT_EOR by intrinsic functions. Rejected.

US 2.13 Add constants to specify the size in bits of the file storage unit, numeric storage unit, and character storage unit. Accepted.

UK TC1 Provide more support for ISO 10646 (this is a standard for 32-bit characters, wide enough for all the world's languages). Accepted.

UK MTC6 and D i) Change ACHAR(10) syntax within stream i/o. Accepted.

UK MTC7 and D i) Allow input/output of IEEE exceptional values. Accepted.

UK MTC15 Specify that the PROCESSOR_DEPENDENT i/o rounding mode should not depend on the rounding mode used for arithmetic. Rejected.

Procedures and modules

US 1.12 Add KIND parameter to IACHAR. Accepted.

US 2.14 Decide whether a program can have an intrinsic and nonintrinsic module of the same name. Accepted.

UK MTC9 Allow for IEEE extended format. Accepted.

UK MTC10 Add a facility for controlling IEEE underflow. Accepted.

D k) Incorporate Van Snyder's TR (which provides for independently compiled submodules) into Fortran 2000. Rejected.


US 2.8 Should the transformational intrinsics such as CSHIFT be applicable to array of types with allocatable components? Accepted.

US 1.20 Rename NONKIND as EXTENT Rejected.
UK MTC1 Reword "NONKIND" as "LEN" Accepted.

US 1.21, UK TC2, D i) Do not allow the parent component of a type to be specified as private. Accepted.

UK TC2 and D i) Remove the option of re-specifying the default initial value for the parent component when a type is extended. Accepted.

US 2.1 and 2.7a Fix pointer assignment. Accepted.

US 2.2a Fix ambiguity re cloning via SOURCE. Accepted.

US 2.2b Make intrinsic assignment apply to the dynamic type. Accepted.

US 2.3 Reinstate deferred bindings. Accepted.

US 2.15 Allow BOZ constants to have a kind type parameter value. Rejected.

UK TC3 and D i) Allow default initialization of parameter values of derived types. Accepted.

UK TC4 Change type-bound generics to be sets of specific named type-bound procedures. Accepted.

UK TC6 and D i) Allow a CLASS(*) pointer to point to an object of any type, including an intrinsic type. Accepted.

UK TC7 Allow any non-SEQUENCE type to be extended. Accepted.

UK TC8 and D i) Remove the TYPEALIAS facility. Accepted.

UK TC10 and D h) Treat the assignment to an allocatable array in the same way as to an allocatable array component. Accepted.

UK TC11 Allow reallocation of allocatable arrays. Accepted.

D m) Remove [ and ] as alternatives to (/ and /). Rejected.