Monday, 11 April 2011

Aging Fortran Codes - A Crisis in Slow Motion

Fortran isn't dead but some of the critical scientific codes written in it will be on life-support soon if research sponsoring organizations don't react soon. It was just a little over four years years ago that we read about the death of John Backus, the leader of the IBM that invented the Fortran language in 1954. It was 54 years ago that the first Fortran compiler was released commercially.

In that span of time millions of lines of Fortran code have been written in Fortran IV, Fortran 66 and 77 as well as variants such as Watfor. In listening to managers of codes at DOE, NASA universities and private companies (including independent software vendors) over the past several years, I am constantly amazed at how much code is in the early versions of Fortran.

People readily acknowledge the amount of code and the concern about the aging "expertise base" (i.e., people) who are charged with  maintaining and improving the code. They recognize that much of this code is "mission-critical" to research in physics, chemistry, aerospace and alternative energy and worry about the long certification process for updating modernized versions of the code. And there the "disconnect" starts.

When I ask how much resource they are putting into modernizing the codes to preserve the code and help it cope in a multi/many-core world the answer I often get is, effectively, "that's not one of our budget priorities right now".

This quite unsatisfying situation suggests two responses. For us at NAG who get called upon to port, modernize and scale codes as part of our work with HECToR users and other customers it suggests that we need to continue to find more cost-effective tools and processes to convert, modernize and scale codes. The bigger challenge is for organizations such as those above and other research sponsoring organizations such as the NSF in the US and various research councils in the UK to not only recognize the issue but to find the resources to support the effort before we lose the base of talent and institutional "memory" needed to do the job.

3 comments:

  1. Are there even any currently-available compilers that actually support Fortran IV, to the point that one could reasonably compile "dusty deck" code without any modifications?

    ReplyDelete
  2. This really isn't a problem. Except for a very few features, modern Fortran is compatible with previous versions of Fortran, certainly Fortran IV. I maintain a fairly large program, numbering tens of thousands of lines of code. Most, but not all, have been converted to Fortran 95 or Fortran 2003, but the five compilers I use, NAG, Intel, gfortran, PGI and g95, all compile the old code without any problem.

    ReplyDelete
  3. hello, please I'm a masters student with fortran 66 codes to compile and modify as part of my research project. I've not been able to compile the codes using 'fortran power station'. please how can i get access to any of the compilers you've mentioned above. what books would you recommend to learn how to compile, link and execute fortran codes. my e-mail is thouart3@yahoo.com. I'll be forever grateful for your help. Thanks

    ReplyDelete

NAG moderates all replies and reserves the right to not publish posts that are deemed inappropriate.