Anecdotal Fortran... :-)

A later paper published with Jean-Claude Risset:

it [Music V] is written mostly in Fortran, a programming language available on most computers, but the repetitive operations are in separate subroutines in order that they can be rewritten in assembly language for efficiency.

The title itself is delightful as classics like Kraftwerk’s Autobahn (Nov. 1974) and Jean-Michel Jarre’s Oxygène (1976) were not yet released.

I have found that I.B.M. 7090 Computer album (2nd edition, 1962), with a few pieces by Max Mathews: “Music From Mathematics”

Especially “Bicycle Built For Two” at 3:30.
See these interesting videos:

Willliam Kahan, starting at 2:00 in this video and in this video, explains why he designed the IEEE Standard for Floating-Point Arithmetic (IEEE 754), referring to Fortran programs that gave different results on different computers. He also gave a talk A Numerical Analyst Thinks about Deep Learning.

2 Likes

In the essay From Fortran and Algol to Object-Oriented Languages (1993), Maurice Wilkes, who designed EDSAC, one of the earliest computers, discusses the history of programming languages.

2 Likes

Kahan received the Turing Award in 1989. Readers here may find the following lines (near the middle of the page) from that link of special interest:

  • Kahan takes personal credit for just two aspects of the 8087 and the IEEE standard that evolved from it: its “inexact flag” that programmers could test to see if a result had been approximated, and the provision of a NaN (Not a Number) code

Really an excellent article by a true pioneer. Thanks for sharing it!

IMHO, Fortran could and should have learned a lot more from ALGOL-60 much earlier than it did. The stack-based memory model, combined with block structure, was one of the lessons. Recursion possibilities aside, it would have saved a lot of memory on early memory-starved machines!

There were mistakes in ALGOL-60 to be sure (e.g., call by name, no provisions for separate compilation, etc). But these were discovered early on.

1 Like

It was an interesting article but I think I have not clearly understood the distinction “block structure” / “flat language”. Or is it just because Modern Fortran is not flat anymore (with modules, etc.) ?

Block structure

1 Like

Have you encountered Fortran in other arts? Literature (science fiction)?

The German physicist Klaus Mahn (Kurt Mahr as a SF author) lived in the USA from 1962 and worked at Pratt & Whitney in Connecticut on the development of fuel cells for the Apollo project. There he learned FORTRAN and wrote programs for the IBM 7090.
He used his newly acquired knowledge in several novels, especially those for the weekly Perry Rhodan SF series.
And in #122 “Der Tod des Lordadmirals” (The Death of the Lord Admiral) published in January 1964), he used his newly acquired knowledge at Pratt & Whitney for the first time in a novel and had a Robot think and act in FORTRAN:
But I didn’t realize this until later, after I had learned FORTRAN IV on a Telefunken TR 4 computer in the mid-1970s.

Intelligence officer Ron and Meech (a humanoid robot) monitor the deployment of Thekus, another humanoid robot, via radio contact, which has been infiltrated into a secret organization.

(cite)
“Test bracket A bracket two two eight point two two eight point three zero zero!” Ron shouted loudly.
The order was for Meech. Ron had many parts of Thekus’ program in his memory, and giving Meech the instruction in positronic programming language saved him at least half a second. Meech didn’t have to translate. And half a second was a lot of time in an interrogation. On the screen, Thekus tilted his head slightly as if he were listening. He was really listening. Meech gave him the order, and Thekus activated a new part of his program. […] “You’re not claiming, are you,” asked Thekus, “to be the Arfar who […] manages billions of dollars for the Arkonide space fleet?” Arfar seemed to be running out of patience. […] “I’ve had enough now! […] You know me very well […].” A 0, decided the positronic logic. The test had no result. But the program contained
a circle that brought Thekus back to the original command.
The index number had now grown by one. He had to try a new trick.
“I knew,” he smiled, “that you couldn’t be the general officer. Arfar, whom I have unfortunately never seen, is not the man who would get involved in such dirty things.”
Arfar […] shouted: “Don’t worry about my morals! […]”
A is greater than zero, decided the positronic. The test had been successful.
(end cite)

An this would be in FORTRAN II something like:

12000 INTEGER IQAIDX
IQAIDX = 0
DIMENSION KWNPRS (100)
DATA KWNPRS /100*.FALSE./
INTEGER A
12001 IQAIDX = IQAIDX + 1
READ 12002, IQUEST, PRSIDX
12002 FORMAT(255H)
C CALL FUNCTION “PUT QUESTION AND EVALUATE ANSWER”
C AND RECEIVE NEGATIVE, NEUTRAL OR POSITIVE ANSWER
A = QANDA(IQUEST)
IF (A) 228, 228, 300
C NEGATIVE OR NEUTRAL ANSWER
228 GO TO 12001
C POSITIVE ANSWER
300 KWNPRS(PRSIDX) = .TRUE.

1 Like

Many finite-element codes are written in Fortran, but I don’t know if this one was.

Using sed to find a job

by John D. Cook

I had a friend in college who got a job because of a sed script he wrote as an intern.

A finite element program would crash when it attempted to take too large a time step, but the program would not finish by the time the results were needed if it always took tiny time steps. So they’d let the program crash occasionally, then edit the configuration file with a smaller time step and restart the program.

They were asking engineers to work around the clock so someone could edit the configuration file and restart the finite element program if it crashed in the middle of the night. My friend wrote a shell script to automate this process, using sed to do the file editing. He eliminated the need for a night shift and got a job offer.

1 Like

More about Vera Molnár:

Vera Molnar was a pioneer of algorithmic art, whose work drew from constructivism and conceptual art, as well as cubism and other avant-garde movements, while developing her own form of geometric abstraction. She started developing combinatorial images in 1959 and began working with computers in 1968, using the programming languages Fortran and Basic to generate plotter drawings. She was the co-founder of artistic research groups GRAV and Art et Informatique.

In French: http://www.veramolnar.com/
http://www.veramolnar.com/blog/wp-content/uploads/VM1976_molnart.pdf

Translated from French:
Description of the “Molnart” program (1974-1976)
François Molnar and I conceived and developed a flexible program that allowed for systematic pictorial experimentation. It is written in Fortran for a large-capacity computer connected to a display screen and a plotter.

A Conversation with Peter Huber (2008) (a prominent researcher in robust statistics) covers his (and his wife Effi’s) experiences with computing and programming environments for statistics. The first programming language he mentions is Algol. There was a recent Hacker News thread Algol-68 seemed like a good idea.

Codes for robust statistical algorithms may belong in stdlib. One could modernize the Fortran code in the robust R package. Below is an excerpt of the interview with Huber.

In 1960 ALGOL 60 came into being. As Rutishauser told the story, there
was a large committee that had agreed on the language, but in the end
Naur completely rewrote the final document, which became then known as
the ALGOL 60 report. Various participants of the ALGOL conference,
attended by maybe a dozen people, agreed to write compilers or have
compilers written. In Zurich it was Hans Rudolf Schwarz who wrote an
ALGOL compiler. I tried it out but ended up unimpressed again: a
little program for a Jacobi eigenvalue problem that I had written took
almost an hour to compile.

The program is of some interest because it was part of a data analysis
problem of Effi’s. The problem was to map intensities measured from
different photographs to the same scale, as when one has inexact
crystallographic data. This kind of problem is nowadays called a
Procrustes problem. To me this was an opportunity to try out the ALGOL
60 compiler. I was probably the first ALGOL 60 user outside the
applied mathematics group of Stiefel.

The next step in the development of languages that I experienced was
Fortran. In late 1960 or early 1961 Effi and I attended a Fortran
programming course at CERN in Geneva, programming on an IBM 704. The
computing environment was still primitive. For example, if one wanted
to write something to tape, one had to get the tape running before one
began to write. So one had to estimate how much earlier one had to
start it. But more importantly, Fortran compilers were faster. The
next step was several years later, it must have been 1967, when
Niklaus Wirth came to Zurich. It so happened that our neighbors were
on an extended absence to the United States;Wirth ended up renting
their house and we became neighbors. At the time Wirth was developing
the Pascal language. I looked at Pascal but was disappointed because
in strict Pascal array bounds were fixed, which is why I didn’t bother
to learn Pascal. Neither could I convince Wirth that he should provide
greater flexibility.

At that time we had a very efficient ALGOL compiler on the CDC 1604
computer. Unfortunately, ALGOL 60 then got killed by its successor,
ALGOL 68, which was a big fiasco because it was so complicated that it
never took off. It had what Donoho used to call the “second-generation
syndrome”: start with a good product, then follow it up with an
over-designed second-generation product, only to see it killed. This
happens often, and it did happen to ALGOL 68.

Next was the appearance of the C language, but I never took to it
because it was too error-prone. So I stuck to Fortran, which was
sufficient for my type of computing. Later I had occasion to program
in C, but, matter of fact, I have used more often f2c, the Fortranto-
C cross-compiler, which seems to work better than most Fortran
compilers.

AB: So you have seen computing from the beginning.
. .
PH: Speaking of beginnings, in the 1970s we began to experiment with
interactive graphical data analysis. This changed my views of
computing rather dramatically. I soon realized that we needed a data
handler, that is, a language in which we could not only write
programs, but whose command lines were capable of immediate execution.
BASIC and APL were such languages. I liked BASIC for writing little
things, especially string manipulations, but we needed an
arrayoriented language. As for APL, it was a “write-only” language, I
could write it, but I could not read it, and I may be a kind of expert
in such matters. I never understood Anscombe why he had written his
programming examples in APL. When I asked him he confessed that he
couldn’t read his own programs either after half a year!

3 Likes

Roach, Rebecca. “J. M. Coetzee’s Aesthetic Automatism.” MFS Modern Fiction Studies 65, no. 2 (2019): 308–37. Project MUSE - J. M. Coetzee's Aesthetic Automatism.

http://content-animation.org.uk/htmls//scforonatlas.htm

This manual was produced soon after the SC 4020 was installed at the Atlas Computer Laboratory (ACL). Prior to its arrival, ACL used the SC4020 recorder at Aldermaston and its own Benson-Lehner flat bed plotter for graphics. HARTRAN was the Fortran compiler on the Atlas computer.

In this thread:

we can find these two links:

Fortran was dominated by the major computer company of the day, IBM (1963: list of 51 Fortran compilers ; 1964: at least 43 Fortran compilers/versions)

The second link is the magazine Datamation from August 1964, which contains especially those articles:

Feature Articles
24 FORTRAN: Compatibility & Standardization, by W. P. Heising
25 The Various FORTRANS, by Henry Oswald
30 Compiling a COBOL Questionnaire, by Stanley M. Naftaly
34 FORTRAN vs. COBOL, by M. D. Fimple

1 Like

See instructions in this Issue to compile and run it with GFortran:

And this recent article: 6. Iannis Xenakis’s Free Stochastic Music Program as an Aid to Analysis
Ronald Squibbs

in
Kanach, Sharon, and Peter Nelson, eds. 2024. Meta-Xenakis: New Perspectives on Iannis Xenakis’s Life, Work, and Legacies. 1st ed. Cambridge, UK: Open Book Publishers. Meta-Xenakis: New Perspectives on Iannis Xenakis’s Life, Work, and Legacies | Open Book Publishers.

I have discovered that magazine article on Mastodon:

As you may know, the Nostromo is the spacecraft in the Alien movie (1979). As it is landing on a planet, the onboard computer is displaying a 3D model of the relief, in red. On a YouTube excerpt, you can see it first at 2:28, then at least three other times.

The author of the paper says:

The hardware to be used was a Prime 300 connected to an FR 80 from III which can plot directly onto cine-film. Running on this system at the SRC laboratories in Oxfordshire was the software animation package, Frolic, developed by C.Emmett.
My program was written in Fortran with calls to Frolic subroutines.

The whole code was 14 pages of Fortran code.

2 Likes

Some researchers in Puerto Rico and elsewhere are re-examining the WOW! signal detected at the old Arecibo radar. Looks like it might have been a natural phenomenom.

The Fortran connection? The original analysis software was written in Fortran (the snippet looks like Fortran 77). Although they are recreating the software in Python, the lead scientist told me they still plan to run the Fortran version as well. The re-coding is all about learning (I don’t think the original scientists are around to help). As the scientist, Abel Mendez, says, “There are not many computers languages from which you can run a 50 years code.” So, of course they will keep using it.

6 Likes

The Fortran code of the IBM 360 Scientific Subroutine Package, I think from 1968, can be downloaded from http://www.ecalculations.com/ . IBM has not open-sourced it AFAIK, so I would not try to use it in production. I can compile 356 out of 360 source files with gfortran -c -std=legacy, after I replace constants such as 1.E75 with huge(1.0). Pretty good for a library that is almost 60 years old. Documentation is at System/360 Scientific Subroutine Package. The algorithms listed should be considered for stdlib if they are not already present. The topics are

Statistics

Probit analysis

Analysis of variance (factorial design)

Correlation analysis

Multiple linear regression

Stepwise regression

Polynomial regression

Canonical correlation

Factor analysis (principal components, varimax)

Discriminant analysis (many groups)

Time series analysis

Data screening and analysis

Nonparametric tests

Random number generation (uniform, normal)

Distribution functions

Mathematics

Inversion

Eigenvalues and eigenvectors

Simultaneous linear algebraic equations

Transpositions

Matrix arithmetic (addition, product, etc.)

Matrix partitioning

Matrix tabulation and sorting of rows or columns

Elementary operations on rows or columns of matrices

Matrix factorization

Integration and differentiation of given or tabulated functions

Solution of systems of first-order differential equations

Fourier analysis of given or tabulated functions

Bessel and modified Bessel function evaluation

Gamma function evaluation

Jacobian elliptic functions

Elliptic, exponential, sine cosine, Fresnel integrals

Finding real roots of a given function

Finding real and complex roots of a real polynomial

Polynomial arithmetic (addition, division, etc.)

Polynomial evaluation, integration, differentiation

Chebyshev, Hermite, Laguerre, Legendre polynomials

Minimum of a function

Approximation, interpolation, and table construction

4 Likes

Anyway to get the source in a format that I can use on Linux without installing Wine and hoping it will work.

They are temporarily at

2 Likes