The Joy of Batch Fortran Programming

Steve Sheets
5 min readJun 2, 2021

--

My Nemesis Freshman Year

Since some online folks were talking about Fortran on one of the boards, I will tell you about my best Fortran programming experience. It was also my first. At the start of my freshman year at the University of California Berkeley, my programming class was with the Fortran computer language using a punch-card based, batch processing system.

Yes, real punch cards.

For anyone who has never used or even seen a punch card, the IBM style ones that we used were about 8” x 3”, and made of relatively thick paper. We used a typewriter-like device to punch holes into the card, each set of holes was a character. A single card could contain a line of code, about 80 characters, and no more. So the entire program might be on a hundred or more cards, all of which you had to enter and sort before compiling them. And you better not get them out of order, or the program would not run.

You had to type your program on the cards using the punch card maker, run them through the punch card reader, wait about an hour while the programs in front of you ran, and then picked up the printout of your program results. If you had a single character out of place, the program would not compile, but you would not know this until you got the printed error results. And the compiler would only tell you the first compiler error it found. So if you missed another typo, it was another hour of waiting. Even if the program compiled successfully, and you received real results, they might not be the results you expected, and you would have to go back and punch some more cards. And scan them in, to be printed later.

My classmates and I spent a lot of time in the Math building basement, where the computers were kept, playing cards as we waited for our programs.

You have to realize this was a Fortran class; it was not a batch computer operations class, nor a computer system design class. We were not taught about how the computer compiled and ran the programs, besides the rules that your program had to typed onto the cards, and the first card had to have the class job number. Yes, for some reason, we thought maybe tracking, your first card was not the start of the program, just some obscure five digits alphanumeric string. No explanation of what a job number card was, other than the fact our class used “J9009”.

After all these years, I still remember that 9009 number.

About a third of the way through the class, I started to learn what one means in the phrase “a little knowledge is a dangerous thing.” An upper classmate looked at my stack of cards one day, and asked “Do you know that the J stands for Job? And the 9009 is your class number?”.

“No,” I said. “But that makes sense.”

“I bet you don’t know what E stands for?”

“No, what?”

“Express Job. You change that J into an E, and your programs will go through lightning fast.”

He was right. My new E9009 card was my ticket to freedom from waiting in the basement. If I used it in place of the J9009 card, I could enter my cards, and have the resulting printing 3 minutes later. Somehow it jumped the queue of waiting programs, to have my program run first.

I was in heaven. And out of the basement faster.

I am not a greedy man. Once I find a treasure like this, I do not hoard it. I tell all my friends. Or in this case, my fellow class members. Of course, not other classes. If everyone used this trick, no one would benefit. Soon no one from my class could be found waiting in the basement for their printouts. Either they were fixing their bugs, or already done with the program, and off having fun somewhere else.

For a short time, I was very well liked by my fellow students.

About several weeks later, about half of the way through the class semester, the fun ended. That morning, the Professor came storming into our class. The Dean of the Engineering school has just spent an hour chewing him out, and he was going to share this experience with us.

It was never explained to us that all computer jobs were tracked by the system. The computers were run by the Engineering school, and they charged the classes for their use. When you tried to run a program, a small amount of class budget was spent, paying for the computer time. Over time, all the various classes that used the system got excellent at estimating how many times the average student would have to run the program to get it right. Depending on how many students were in the class, enough money was budgeted to pay for average computer use of the class for the entire year. Again, assuming normal usage.

Remember J stood for Job, while E stood for Express Job? Yep, for the privilege of having our programs go to the head of the queue, to be run and printed first, Express Jobs cost more to run. About ten times as much to run. Halfway through the first semester, we had bankrupted the class, for the entire year.

Contrary what you have seen in movies, when you hack into a system to get better results at college, they don’t reward you for being ingenious. I don’t think anyone thought about kicking us out of school, but they did think about flunking us for the class. We hadn’t broken the rules because no one explained to us that we had to use “J9009” or else. And by that time, almost everyone in our class had been using the now forbidden “E9009”, so our young Professor could not flunk an entire class. We were just yelled at a lot. For 18-year-old kids, being glared at by a 26-year-old Graduate teacher for the rest of the class was scary. Luckily the Computer department came up with some extra money, so we could continue to use the computers, using the correct J9009 card so that we could finish the semester.

Looking back at it, I just wished I had not told anyone about the magical E9009 until just before our Finals project. That was when we really needed it.

--

--

Steve Sheets
Steve Sheets

Written by Steve Sheets

With over 35 years of Apple development experience, there are few area I have not worked on.

No responses yet