The UK position on Fortran 2008 and the WG5 Technical Report on Further Interoperability with C

Report June 2009

Introduction
The best way to describe the UK position on Fortran 2008 is to examine how it developed as the language revision itself developed during the last two years. Technical work on Fortran 2003 was completed in the summer of 2003 and the standard was published in November 2004. By this time requirements for the revision of Fortran 2003 were already being collected, experience having shown that a long latency period is necessary between initial thoughts on content and final publication. In the UK there was a general invitation for all interested to submit suggestions; this included a special requirements meeting of the Fortran Specialist Group in March 2005. The proposals were filtered by the BSI panel and twelve of them, of which eight were eventually accepted by WG5, were put forward for consideration.

It had been agreed as early as 2002 that Fortran 2008 would be a minor revision, bearing the same relation to its predecessor as Fortran 95 to Fortran 90. Correspondingly in 2004 a tight schedule for the revision was adopted, envisaging selection of content at WG5 meetings in May 2005 and February 2006 and completion of the technical work in the summer of 2008. It was agreed to limit the revision to a single 'large' item which was chosen to be coarrays, "a simple parallel extension of Fortran which assumes the SPMD programming model". A further large item, BITS data type, was allocated second priority and was developed for the draft but was later removed.

Coarrays have turned out to be larger, more contentious and hence requiring more development time than anticipated so that in the summer of 2007 the schedule was eased by ten months.

Implementation of Fortran 2003
For all previous versions of Fortran standards, the standard had been implemented and been well-used before the revision appeared. This enabled certain types of problem which came to light only with widespread implementation and use to be corrected in the subsequent standard. It also enabled programmers to make constructive suggestions for the language revision. When the above plans were being made it was assumed that this pattern would again be followed. However Fortran 2003 has proved to be much larger and more difficult to implement than anticipated. The first compiler to implement all of the language was not released until December 2008, an unprecedented five and a half years after completion of development work on the language, and at the time of writing it remains the only such compiler. Hence there has been little or no feedback on Fortran 2003 from users at large to guide Fortran 2008 development.

UK position at the WG5 meetings in 2007-2008
By the summer of 2007 the BSI panel was becoming concerned at the situation outlined above (see for instance the discussion at the Fortran Specialist Group meeting of June 2007). Many users were apparently still confused by the differences between Fortran 77 and Fortran 90/95. Producing another version so soon could give an impression of instability. Coarrays involved large changes to the language but would benefit only a minority of users. Fears were also being expressed that vendors would abandon Fortran development altogether. Therefore the BSI panel proposed at the WG5 meeting in August 2007 that the schedule be slipped by two years to allow both users and vendors to catch up with the standard. It also suggested that the size of the language be reduced by removal of features, particularly from the coarray proposals, and that consideration be given to moving all of the coarray features to a Technical Report. This echoed a phrase, "too much, too soon", often used in discussions on the draft standard. The proposals were partially successful in that the schedule was slipped by ten months, some reductions were made to the coarray features and the BITS data type was removed. The intelligent macro feature was also removed but this had negligible effect on the size of the language or on the development time needed. However as it transpired, the delay in the schedule did not achieve the desired ends. No full implementation of Fortran 2003 was imminent and the additional development time was largely absorbed in refining the coarray proposals.

At the next WG5 meeting in February 2008 the UK again proposed moving the coarray features to a Technical Report. After much discussion and a series of votes, described in Fortran Forum and detailed in the WG5 minutes, a UK compromise of having coarrays in an optional part of the standard lost out to the US compromise of reducing the coarray features in the base language and putting the remainder into a new Technical Report.

UK vote on the Committee Draft
Under ISO procedures the ballot on the Committee Draft is the first opportunity at the ISO (actually JTC1/SC22) level for countries' standards organizations, as distinct from those working in WG5, to comment formally on the revised draft. The Committee Draft was issued in March 2008 for vote in August. Again a trawl was made for general public opinion in the UK. There was a disappointingly low, if nonzero, response. This was not so surprising as the document had 617 pages and most users still had to come to terms with Fortran 2003, much less Fortran 2008. Nevertheless WG5 had regularly issued summaries of all the new features and particularly summaries of coarrays; presentations had been given at conferences and meetings, including those of the Fortran Specialist Group in January and June 2007 and June 2008.

After discussion at the latter meeting and much consultation by email the panel recommended a 'no' vote to BSI. Members of the panel, reflecting similar differences amongst UK Fortran users, continued to hold disparate views as to the merits of having coarrays in the base Fortran language as opposed to their being in an optional part. Some were very positive, some were largely indifferent and some were resolutely opposed. Moreover, as coarrays were still being actively developed a majority considered it inappropriate to standardize immature features. The UK vote categorized these concerns under six headings:

  • Extent of revision (volume and timing)
  • MPI (facilitating use)
  • Coarrays - technical aspects (concerns particularly about VOLATILE)
  • Coarrays - disposition (immature feature which should be separated out from the main language standard)
  • Description of Coarrays (insufficiently precise for practical use)
  • Generalized output editing (extension of G format code)

The UK submission represented the majority view of the panel; unanimity could not be achieved in all cases. The full text of the vote, along with those of other countries, is in WG5-N1740. It was the only negative vote. Overall there were 11 positive votes (largely from countries that had played no part in the development) and three abstentions, including one from Japan, which had played an active role and which vote could be read as a polite form of 'no'.

Processing the Committee Draft votes
The ballot results were processed at the November 2008 meeting of WG5, at which it became apparent that some major vendors had not even started work on parts of Fortran 2003. Combined with the strong drive, mainly from those promoting coarrays, for the standard to be approved as quickly as possible, this made unachievable the UK aspiration that programmers at large should have had chance to make significant use of the language before it was superseded. Indeed a decision to review the schedule was postponed to the following meeting and the response to the UK's principal comment was, "WG5 could not agree on any significant reduction in the size of Fortran 2008". The UK suggestion that some of the features in Fortran 2003 that vendors had found difficult to implement be deemed in the revision to be optional rather than mandatory, following the precedent set by Cobol, equally did not find favour.

The UK, supported by Japan, again proposed that coarrays be made optional but lost 3-2 in a country vote.

On the positive side there was no dispute that Fortran should have better facilities to interact with MPI although this was devolved to the Technical Report on Further Interoperability with C rather than feature in the full language and the proposal to extend the G format code was largely accepted. Considerable progress on technical details of coarrays was made at the meeting, responding to two of the UK comments. The full Disposition of Comments document is WG5-N1760.

Final Committee Draft
Under ISO procedures no further technical changes may be made once the Final Committee Draft has been produced. The original plan was that the FCD be decided at the May 2009 meeting but in the event further work was done on coarrays and the rate of change of detail was such that another meeting of J3 was agreed before the document was frozen; under the revised schedule it is to go forward for the ISO FCD ballot in October 2009, with anticipated final publication of the Standard in August 2010. The informal name is to remain Fortran 2008. So far as the UK's misgivings were concerned, little had changed in the previous two years except that improvements had been made to technical details of the coarray proposals.

Perhaps more worryingly, it became apparent at this meeting that some major vendors had no plans at all to implement parts of Fortran 2003, and hence Fortran 2008, unless purchasers specified those features in a requirement. At the same time, quite reasonably, they were already implementing some of the new features of Fortran 2008 which they believed that their users wanted. Thus Fortran 2008 will be of a different nature to its predecessors prior to Fortran 2003. For some years there will be releases of compilers which have only a subset of Fortran 2008 facilities, the subset being determined by each vendor's customer base, and it is conceivable that some suppliers will never implement all of Fortran 2008. The statement in the Standard's Overview, "The purpose of this part of ISO/IEC 1539 is to promote portability, reliability, maintainability, and efficient execution of Fortran programs for use on a variety of computing systems" will not be as meaningful as it was up to and including Fortran 95.

Given this, what approach should the UK take to the FCD? Should it simply be accepted that the UK, with Japan in agreement for much of the time, has nevertheless failed to convince WG5 of the merits of its case, or should it ignore that and vote according to its true opinions?

Technical Report on Further Interoperability with C
Work on the Technical Report on Further Interoperability with C was initiated in the summer of 2007 and a first draft was introduced at the WG5 meeting in November 2008. However this was so late in the meeting that there was insufficient time for it to be discussed in any detail. This prompted a heated email debate throughout the following two months. Thereafter it has been given low priority and a second draft is not scheduled to appear until December 2009, with eventual formal publication due in March 2011. It is thus too early to describe any UK position on the TR; the first draft was not highly regarded.

David Muxworthy
BSI Fortran Convenor
1st June 2009


Valid XHTML 1.0! Comments on this or any other of the Group's pages should be sent by email to the FSG Web Editor.

Last modified: Wed 2 Nov 2011 09:30:25