FORTRAN 77 (the caps were correct for this and earlier versions) was effectively the original scientific programming language. The direct descendant of the original FORTRAN languages and variants such as FORTRAN 66 and FORTRAN IV, it put men on the moon and made finite element analysis viable in a day when the computing power of a tablet was unavailable. (And they made better use of it, too…think about those cat pictures.)
In any case, until the early 1990’s it was the language of choice for scientific analysis. It had its drawbacks (the fixed array size was the largest of those) but, for many applications, it’s still a viable choice. And there’s still all that legacy code…
This page is dedicated to presenting some of those resources. Because the language has largely been superseded in use (if not function) there is a great deal of code out there that can be acquired very cheaply, as I found out working on my PhD dissertation.
Open WATCOM Compiler
Open WATCOM is the direct descendant of WATFOR and WATFIV, the “teaching” codes developed by the University of Waterloo in Ontario. It has been open source for a long time. It runs in just about every Microsoft OS from DOS to Windows 10, depending upon how you install it, in either 16- or 32-bit modes. It will also run in Linux under Wine very nicely. There is an installation video here.
Because it is a true 77 compiler, it doesn’t waste time figuring out how large your arrays are, which means it, depending upon how it is optimised, can run code faster than the much vaunted gcc compiler.
- The Compiler
- Binary Installer for all of the Microsoft OS’s, and Linux under Wine. (I zipped this thing because some browsers/firewalls/ISP’s freak out at a raw .exe file.)
- Binary Installer for Linux (I never got this thing to work, for some reason, but never had to.)
- Documentation (some of the best documentation for an open source project I have seen)
All computer code becomes messy after a while. Tidy is a program to solve this problem for FORTRAN 77 code by properly indenting the code, sequencing the statement numbers, making the capitalisation consistent, etc. It’s a program which needs to be used with wisdom and backups, but tidying up the code every now and then is a big productivity boost to any coding project.
UNCMIN stands for Unconstrained Minimisation, an optimisation program based (broadly) on Newton’s Methods. It was developed in the 1980’s at the University of Colorado by Robert Schnabel, John Koontz and Barry Weiss. For the problems its solves, it is very efficient, and can be easily integrated into existing code without having to install a program above it (like DAKOTA) to do the optimisation. The version here is the pure FORTRAN 77 version; there are also Fortran 90 mutants out there.
- John Burkardt’s FORTRAN 77 page. I would be hard pressed to identify a more complete catalogue of FORTRAN 77 code that this one, from a Florida State professor.
- LINPACK. A collection of least squares and linear equation solvers. Part of the NETLIB collection, which has a great deal of code, including FORTRAN 77 code.
- Paraview. One of the biggest drawbacks to code in general and FORTRAN 77 in particular is the lack of easy graphical output. Open WATCOM has a graphics package, but it’s a DOS era business. The simplest way to get really professional looking graphical output is either to a) put is out in a .csv file and open it in a spreadsheet or b) output an ASCII file and use a graphics program to output the results. For me the best looking results for (b) came from outputing in VTK format and using Paraview to plot the results. And those results can be stunning. It’s free too.