By Marcel van der Veer
March 2022

Published in category Computing history

More on Fortran

When I was a student in the 1980's, science undergraduates took a course in structured programming at the computer science department. My alma mater taught Algol 68; needless to say that Algol 68 is perfectly suited for teaching structured programming, a skill that serves a lifetime. However, elsewhere in the science and engineering departments staff would discourage using such language for production work. At the time, the dominant workhorse for serious numerical work was FORTRAN.

FORTRAN is one of the few languages whose target audience are engineers and scientists. It essentially is a tremendous calculator with general purpose stuff bolted on. The reason it looks like a general purpose language, may be that at the time there were far less specialised programming languages around than today. For a long time your choices were limited to FORTRAN, COBOL or maybe something esoteric like ALGOL. Sure, FORTRAN is being revised up to this day but this is debated as new features may break vintage code or may make it approximate existing languages that have already drawn people away from FORTRAN. For many new science or machine learning projects where raw speed is not the decisive criterion, people choose newcomers like Python. I myself use Python nowadays.

Back then the reasons to use FORTRAN, even against your will, were compelling. Being geared towards computation, it could easily be learned on-the-job by science or engineering students. FORTRAN was the fastest high level language, that is, gave you most results for your limited budget. It was ubiquitous, portable and therefore a large amount of well-tested FORTRAN software and libraries existed. On supercomputers, your only option to write portable software was FORTRAN. In short, your productivity and cooperability depended on you embracing this language.

At age 65, FORTRAN still ranks among the fast languages around for numerical applications. There are various reasons for its speed. Because it was popular and important, FORTRAN had solid optimising compilers that produced quality code. For example, in vintage FORTRAN pointers are a superfluity, which enabled a FORTRAN optimiser to do more than for instance a C optimiser. Since C99 optimisation can be facilitated by optionally restricted pointers vowing that no reference is aliased in the local context, something taken for granted by FORTRAN.

I have vintage FORTRAN code on the shelf that I could have translated into C using a quality tool like f2c. However, f2c does not meet my need for multiprecision types or native support for the GNU Scientific Library, and adheres to outdated C standards - originating from the early 1980's, it can generate K&R style if you fancy that. Instead I cheerfully invested some free time in writing my own translation tool VIF (VIntage Fortran), a front-end that translates most of FORTRAN 66/77 into C99, exploiting gcc extensions to improve efficiency.

Frankly, I do not code that much FORTRAN these days. Recently, for my daughter's high school maths graduation project on the life and work of Katherine Johnson, I wrote a simple demo for integrating differential equations using Euler's method to simulate LEM landings on the Moon. A VIF listing of this program can be found here. For the children to experience 'the scheme in action' using a state of the art programming language on hardware from the space race era, the demo ran on VM/CMS on an emulated IBM 370. It is priceless to see the face of a child when this program actually lands a LEM safely on the Moon's surface.

Throughout my career there have been constant prophecies on the forthcoming demise of FORTRAN. Yet it is still here, and not only because some years ago NASA was looking for a FORTRAN guru to work on vintage software from the Voyager project - these probes won't stop sending us telemetry. Most likely the reason FORTRAN keeps appearing in programming language rankings is its continuing use in heavy number crunching. Who would consider investing resources in rewriting and retesting zillions of lines of mature production code unless there is a good reason to do so? Innovation takes more than replacing that what works well with something new.

Supposedly FORTRAN will be around as long as the immense body of code written in it, remains in use. Only time will tell FORTRAN's future, though I am convinced that it will survive at least me.

Updated on 11-08-2022



All blog posts


Marcel van der Veer FORTRAN - lingua franca with a promising future behind it

March 2022

When I was a student in the 1980's, science undergraduates took a course in structured programming at the computer science department … [Read more]

Published in category Computing history


Marcel van der Veer Building a simple NAS with Debian 11

March 2022

There are many recipes around to convert an obsolete PC into a DIY NAS for use on a Windows-machine network. Here is mine, used to convert a deprecated workstation into a decent NAS for backup purposes … [Read more]

Published in category Tech Tips


Marcel van der Veer Announcing Algol 68 Genie 3.0

December 2021

I have released the current source as version 3.0. I have also updated the documentation, Learning Algol 68 Genie … [Read more]

Published in category Algol 68


Marcel van der Veer VM/CMS and MVS/TSO reunited

October 2021

When I was a student, the university computing centre offered VM/CMS and MVS/TSO running on IBM (compatible) mainframes. Nowadays it is possible to run those operating systems in emulation … [Read more]

Published in category Computing history


Marcel van der Veer Algol68C on MVS revisited

August 2018

As the author of Algol 68 Genie I am interested in having access to other Algol 68 compilers for reference purposes. Several years ago I wrote a post on installing Algol68C on MVS. In this post I would like to give an update … [Read more]

Published in category Computing history


Marcel van der Veer Let the music play on - vintage HiFi

July 2018

Lately I needed to call on some of my now rusty electronics skills since I came into some older HiFi equipment in need of attention. I consulted the world wide web in search of service manuals and found many more people with an interest in keeping older HiFi in working condition. Now I had the opportunity to combine my passion for electronics, HiFi equipment and music … and do not forget durability, since we are actually extending the life of otherwise obsolete products … [Read more]

Published in category Tech Tips


Marcel van der Veer Building a small Beowulf cluster II

April 2018

As described in an earlier post, at home I operate a modest Beowulf type cluster for embarrassingly parallel simulation runs in batch mode. With the experience from that build, I took on building a higher-performance cluster using Debian … [Read more]

Published in category Tech Tips


Marcel van der Veer Be multilingual!

January 2018

Every year my daughter's high school invites parents to partake in an evening of information sessions, to help students orient themselves on their future. The idea is to have parents from all walks of professional life, each parent discussing half an hour or so with small groups of students who subscribed to your sessions. You are expected to tell about your study and career, and the students are supposed to pose questions. As you will expect, some come well prepared, others must be stimulated a bit. I greatly enjoy those conversations with the next generation who have their lives ahead of them … [Read more]

Published in category Education


Marcel van der Veer Classical thermodynamics in a nutshell

November 2017

Recently I met during an event at my Alma Mater, the University of Nijmegen, my high school physics teacher. We discussed the chemistry curriculum and remarked that quite some chemistry students capture with difficulty the fundamental principles of thermodynamics. Needless to say that thermodynamics is one of those subjects that serve a chemist for a lifetime. In my humble opinion, one reason for this lack of retention may be the abstraction level in freshmen courses and that this might be improved by spending one or two introductory hours on the basic ideas of thermodynamics in a historic context … [Read more]

Published in category Science


Marcel van der Veer A brief history of Algol 68 Genie

November 2016

Being the author of Algol 68 Genie, people frequently ask me why a physical chemist wrote an Algol 68 compiler. This is an understandable question since people associate Algol 68 with the learned group of mathematicians and computer scientists that conceived the language some fifty years ago and people recall the reputation it had of being a hard to implement language. In this post I would like to give an account of how Algol 68 Genie came to be … [Read more]

Published in category Algol 68


Marcel van der Veer Building a small Beowulf cluster

October 2016

At home I operate a modest Beowulf type cluster for embarrassingly parallel simulation runs in batch mode. A master node controls several drones. Nodes in this cluster need no more than a server installation, but if a drone happens to have keyboard, mouse and monitor a small GUI is nice to have. This GUI should be lightweight, otherwise a desktop installation makes more sense. This page demonstrates how to set up a drone with GUI on Ubuntu Server including browser, document reader, image viewer and sound … [Read more]

Published in category Tech Tips


Marcel van der Veer Running Algol68C on MVS

October 2012

Recently, Algol68C Release 1.3039 was made public for download. This release is derived from the compiler that was in service to the mid 1990's on IBM mainframes. The new release is meant to run on either MVT or MVS. This report documents the installation of the new release on emulated MVS/370 … [Read more]

Published in category Computing history


Marcel van der Veer Revised Report on the Algorithmic Language Algol 68

June 2009

This is a translation of the Algol 68 Revised Report into HTML, for distribution with Algol 68 Genie, an Open Source Algol 68 interpreter … [Read more]

Published in category Algol 68