Fortran at 60

April 2018

Woman using computerJohn Reid, Chair of the BCS Fortran Group and former convener of the ISO Fortran Committee, explains that, like BCS, Fortran is alive and kicking despite being 60 years old.

Fortran was released in 1957 so is now 60 years old. It was revolutionary. Before then, programming was tedious in the extreme. Programmers needed a detailed knowledge of the instructions, registers, and other aspects of the particular computer and wrote code in a mnemonic form known as assembly code.

Fortran (a contraction of formula translation) was simple to understand but almost as efficient in execution as assembly language. Programmers were relieved of the tedious burden of using assembler language, and were able to concentrate on the problem in hand.

The need for standards

Fortran came from IBM, but the company sought no copyright or patent protection for the language. Its popularity soon led to other computer manufacturers producing Fortran compilers for their own hardware. For the first-time programs became portable - they could be moved from one computer to another with few (ideally no) changes.

But these other versions of Fortran had additional features which detracted from portability. It was clear that a standard was needed. Fortran was the first computer language to be standardised, which was done in 1966. This was revised in 1977 and further revised in 1990, 1995, 2003, and 2008. The next standard is nearly ready and is expected to be published in 2018.

The wide availability of Fortran in the 60s and 70s, and the presence of the 1966 and 1977 standards, made Fortran very popular - just as you’d speak in English now, if you wanted to be widely understood throughout the world, then you used Fortran if you wanted your program to work anywhere in the world.

Doing things better

Over the years we learned how to do things better. However, replacing old features by new ones would have meant that old programs ceased to work and there were huge numbers of them. However, we thought we had a solution. In one standard, we would declare an old feature as obsolescent and explain its replacement.

In the next standard, we would delete it. However, such has been the pressure to keep old tried and tested programs working that very few features have been deleted and, anyway, almost all compilers have continued to support them. They just produce a different warning: ‘deleted’ instead of ‘obsolescent’.

A downside of the continued support of old features is that Fortran is perceived as old and outmoded. This is unfair to a language that has evolved steadily.

Conflicting aims

There has always been a conflict between the wish to add wanted features and the need to keep the language small so that it is easy to understand and easy for vendors to implement. This led to a big delay in the appearance of Fortran 90.

There was a rule in the American committee that does most of the work that once a draft standard had been released, all technical changes needed a 2/3 majority vote for acceptance. This was to prevent features being inserted and deleted at alternate meetings, but led to deadlock because about half the committee wanted a small revision and the other half wanted a large revision. This was resolved only by an ISO meeting at which most (but not all) of the large revision was mandated. Since then there has not been as much controversy and we have alternated between small and large revisions.

The BCS Fortran Group

The BCS Fortran Group was formed in 1970 ‘to form a focus for work concerned with establishing and maintaining Fortran standards’ and has been doing this ever since. It has continually kept members informed about developments and solicited opinions about what was needed. Recently, the BCS has been providing direct support for those BCS members active in the standard to attend standards meetings to keep British interests represented.

The relevance of Fortran

So how could anything that is over sixty years old, like Fortran, possibly still have any relevance today? There are a number of facets to the answer to this question.

The first thing to consider is that Fortran is a programming language that closely resembles the mathematical language that it seeks to emulate. It has supported multidimensional arrays since the earliest versions and these features were significantly enhanced in 1990.

Secondly, like a spoken language, there is strength in being able to access a wide body of knowledge and experience that is available from past programs. Some of these are huge – over 100,000 lines - and have continued to work for decades.

Thirdly, just as English has evolved to cope with changed requirements, so has Fortran. It was the first to consider incorporating parallel programming into the heart of the language. Fortran 2008 treats the whole computer as a set of ‘images’ executing asynchronously. Each image executes the same program and can access data on another image by co-array syntax such as:

a(1:n) = b(1:n)[k]

When an image executes this statement, it copies an array section on image k to an array section of its own.

Fortran 2018 is breaking new ground in allowing for the number of images to be so huge that the probability of a small number of them failing during a program run is significant. It has features to allow the programmer to build in the detection of a failure and action to enable continued correct execution.

Finally, efficient execution has always been an aim. While computers have become much faster than they were in 1957, the problems that people want to solve have got bigger and bigger. Where performance is of the essence, Fortran is the language of choice.

Fortran today

Computer languages, embedded as they are in a world of fast-changing technology, are not well regarded with age. Indeed, there has been a proliferation of languages over time, each suited to a niche set of applications. Fortran is for numeric, scientific and engineering calculations, particularly for computationally intensive areas such as numerical weather prediction, climate modelling, astronomy, aviation, finite element analysis, financial modelling, computational fluid dynamics, computational physics, crystallography and computational chemistry. Around 70 per cent of computer time on the Top 500 computers list involves Fortran programs.

An example of a long-lived Fortran code is the unified model (UM) of the atmosphere, used for both weather and climate applications. It is in continuous development by the Met Office and its partners, adding state-of-the-art understanding of atmospheric processes to new releases.

At this year’s Super Computing Conference there was a session entitled: ‘Fortran Is 60 Years Old - Has It Changed for the Better?’. It was well attended - about 70 people came. They praised the performance of Fortran and were very interested in its future.

Further information

I would like to thank John Pelan, Peter Crouch, Clive Page and Harvey Richardson for their help with this article.