023 > Some Light Relief
A book from TP’s archives. I’m not sure when or why he owned the book. Perhaps it was a nice break from speaking Fortran.

023 > Some Light Relief

FORTRAN stands for: Flipping Heck,This Is Difficult To Learn.

Tony used Fortran V to program The Flexipede.

Drawing and animating using Fortran is not an easy task, especially for someone like myself. I like the idea of creating all the animation in my project with it, but trying to learn it makes me want to give up and rest my head on the nice soft and fluffy Creative Cloud.

Seems the best an animator like me can do is just about understand what TP did.

Dik Leatherdale, (The Computer Conservation Society / Resurrection Magazine).

Dik Leatherdale, (above) was a friend of Tony’s. He says that he, “has never got over the sense of wonder he experienced when he discovered computer programming back in 1966.”

Now retired, he continues his obsession by editing Resurrection the journal of the Computer Conservation Society.

Dik’s a very lovely, funny, clever man and is kindly helping me research TP’s work, (massive thanks, Dik!). In this post I just wanted to share some Fortran-themed tales that he told me.

If you are researching British computing, Watford branch of Marks & Spencers, Tinder for cows, or just need a break from Fortran, I hope that they might will come in useful.

Click the image above to access a .pdf

Email: Some Light Relief.

From : Dik Leatherdale

To: Kate, (who’s added pictures from TP’s Speak Welsh Book).

“My experience with Fortran is really quite modest – just one non-trivial program – the output phase of the CDC version of MVC and I didn’t even start that.

After I left Gordon Square I went to work for ICL, initially on a development for Marks and Spencer.  About a year in I was called to see management.  They had a problem.  In those days (as you will probably be all too aware) if you wanted to price a large-scale network, you asked the Post Office who, if you were lucky, might respond in a few weeks, or maybe months.”

Slightly headachey picture.

“But ICL had a program which could give a reasonable estimate.  Trouble was that it was in Fortran and my shop had no Fortran expertise except me.

I was handed a pack of cards and told to modify the program in a particular way.  I sat down and got the program to work (as provided) but changing it wasn’t quite so easy.  Whoever had written it had obviously read a book on Fortran or perhaps had been on a course but slept through the session on subroutines.

But he had invented a subroutine mechanism all of his own. Set an integer before a GOTO to the pseudo subroutine and return using a computed GOTO.”

Those dots are lovely. One day when I finally get to grips with Fortran, I’ll come back and write a clever joke about floating points.

“But I also learned that he’d been in the process of being made redundant while he was writing the program and he had left copious comments – all in  Welsh.

The entire resources of Marks and Spencer were put at my disposal – a Welsh speaker was found in the Watford branch and I sent the text off to him.  A couple of weeks later the translation arrived. 

My hero wasn’t Welsh – he just liked learning languages.  But his Welsh didn’t stretch to ‘technical Welsh’, so it really wasn’t any help.  But by that time I’d worked it out anyway, so nothing lost.”

Grrr. Stupid Fortran. I ordered milk not fish.

Nearly 20 years on, still with ICL, I was working in operating system support.  A problem came in to my colleagues in the sibling team.  Consternation!. No Fortran speakers! Help! Rather foolishly I volunteered.  This was a BIG program.

A selective breeding management program for cattle run by the Milk Marketing Board – a computer dating system for cows and bulls.  Or rather cows and the artificial insemination man. Every few weeks, details of every cow and bull in the data set were read into some HUGE arrays and the program would cogitate for several hours (on a Series 39/80 no less) and produce recommendations for lots of happy events.

Milk not creepy kid.

“Their problem is that every time they added more cattle, they had to increase the size of the arrays.

I quickly discovered that they’d hit a system limit – suck air through teeth, shake head sadly, sigh, Say “system limit – oh dear, oh dear” – garage mechanic’s gambit. Maximum segment size under VME is 2Mb (and hence maximum REAL array size is 524,288).  They were looking for about 560,000 (you might wonder whether there was ever this many cattle but they never die in this data set).

How to deal with that?

Well the array declarations went something like:

COMMON /XCOMM/ X(560000)

Observing that in Fortran (unlike Algol and its derivatives) a subscripted variable looks just like a function call I essayed something like:

COMMON /XCOMM0/ X0(280000)

COMMON /XCOMM1/ X1(280000)



IF (I.LE.280000) RETURN X0(I)

RETURN X1(I-280000)


And recompiled. Obviously statements of the form X(I)= …   were faulted, but there weren’t very many of them – far fewer than Y=X(I) etc which passed. So I wrote a matching SUBROUTINE ASSIGNX(I,VALUE) and edited out the problem areas.

After a day or so, with all the big arrays modified, I presented my findings to the Milk Marketing Board. I thought it was quite good. They didn’t. They bought a VAX (I think) and ran it there so we lost that part of the business.

The VAX took longer, but that didn’t matter. It didn’t have anything else to do. It was probably the right decision. That said, the Milk Marketing Board was abolished a couple of years later so we lost ALL the business.”

I just don't get it. There should be a picture of milk here. I give up.

“One thing I took away from this exercise was that I was never a fan of Fortran – messy, inelegant, error prone. But this was my first (and only) exposure to Fortran 77. And I found it to be a huge improvement – almost a pleasure.

So that’s the limit of my Fortran.

Well, I did promise some light relief.



One last quick thing.

I wonder if TP’s Welsh book is connected to CAT. 

He was a big fan of such things.

Close Menu