Being a random memory from the Space Age.
From 1971 to 1974, I worked on the Viking Mars lander program at Martin Marietta in Denver. I was part of a small team (three men most of the time, with two to three other people added for brief periods) developing the software that would be used to determine the timing and duration of the Viking lander’s deorbit burn when it was in orbit around Mars.
The orbit would be known(ish), Mars gravity would be known(ish), the atmosphere would be somewhat known(not-very-ish), and the desired landing site would have been specified. Make some assumptions, turn on the deorbit rockets, and head down to Mars! With the assistance of a few gazillion lines of code.
Which we developed in FORTRAN on a CDC 6600. The original plan was for the software to be run on that machine during the actual mission. However, Jet Propulsion Lab, JPL, in Pasadena, California, exerted its considerable political weight and it was decided that during the mission, the software would instead be run on a Univac 1108 at JPL.
We shipped our software to Pasadena and told them to load it onto the 1108 and have at it. However, what had worked just fine on the 6600 failed miserably when transferred to the 1108.
We tracked down the problem and made the changes.
Or so we thought. JPL said it still didn’t work. (As was always their way, they made it clear that all would have been just hunky dory [or copacetic, as people in the Apollo program used to say] if the software had been written at JPL in the first place.) (Yeah, right.)
Time was getting short. Time is always getting short in the aerospace biz. A few of us were sent out to JPL to track down the bugs and run simulations and verify that all was well. Quickly.
I was out there, on the very edge of civilization, for three weeks, getting too little sleep, spending my days and much of my nights at JPL, reading printouts, writing my changes on the printout, changing punch cards, submitting card decks, waiting for new stacks of printouts, repeat. By the end of the three weeks, desperate to get it done and go home, I spent a few days without sleep, working around the clock.
Finally done with my part, I went back to the hotel like a zombie, packed, checked out, and took a bus to the airport.
This was in 1974 (or just possibly late 1973). I had long, red hair, worn in a ponytail, and a full, rather bushy red beard. I was wearing a t-shirt, jeans, and sneakers. My eyes were gruesomely bloodshot and had huge bags under them. I sat in the bus swaying from side to side, falling forward, drifting into sleep, then snapping awake again.
I don’t even remember what the bus was. Some short of shuttle between hotels and the airport, I suppose. I don’t even remember getting on it. I do remember that it kept stopping to pick up tourists at hotels and once, oddly, at the Hearst Castle.
Most of the tourists seemed to be older English couples dressed formally informally. They kept turning to stare at me and then turning away again quickly when I met their eyes. Very British. I imagined them whispering to each other that they had heard that the drug problem was bad in California, and here was living proof. Just look at that poor young man, his mind destroyed by drugs. Shocking.
The rest of the story is anticlimactic. I got to the airport, got home, went back to work, got laid off once all the work was done and the company had been paid by NASA—a typical aerospace story.
But I’ve sometimes imagined myself trying to reassure those tourists that I wasn’t on drugs. My words slurred, mumbling incoherently, swaying, my red eyes open wide in earnestness, waving my hands about, I would have tried to tell them that I was working on sending stuff to Mars. And before that, you know, moon, men, men on the moon. Mars, people. Moon.
For years afterwards, they would have bored their grandchildren with tales of their trip to California and the wild-eyed, hairy hippie they saw there, his mind destroyed by drugs, ranting about Mars and the Man in the Moon. “Tragic. Probably long dead in the gutter, the poor young man. Let that be a lesson to you, children.”
Writing this reminds me of the time, years earlier, when I was in graduate school and drove down from Indiana to Mobile to visit Leonore and her family, my first time in the South, through the heat in my un-airconditioned Volkswagen. Then, too, I had a beard and wore my hair in a ponytail (ya know, grad student). I was dressed in shorts and sandals. I was so naïve. I had no idea why the locals were glaring at me. I smiled at everyone. It must have been a year or two after Goodman, Schwerner, and Chaney were murdered. In the parking lot of a grocery store in Mobile, a well-dressed white woman glared at me through the windshield of her expensive car and tried very hard to run me down. But that’s another story.
See below for some of the nasty details. They’re not indispensable to the story, but they might be of interest to some. Keep in mind that all of this work was done using punch cards.
Yes, FORTRAN is always all caps. At least, in this household. It was THE language for scientific computing! With GOTOs, as God intended! (Not that there was a real alternative, although I did later run into mercifully short scientific programs written in COBOL, gasp.)
The CDC 6600 was a great machine for scientific computing by the standards of the time. One of its best features was its 60-bit-word architecture, meaning that we could do the job without bothering to double-precision any variables.
At a later job, I programmed on a Univac 1108 extensively and liked it, but it used a 36-bit word. The difference was important for this story. The calculations done by our software were long enough and iterative enough that too much precision was lost on the 1108 compared to the 6600. That was why the code gave erroneous results after it was transferred from Denver to JPL. After a few iterations, the values of a lot of the variables in the program were, in effect, random numbers. To fix that, we had to go through the code and convert everything to double precision. Gazillions of lines of code meant zillions of variables that had to be changed in many, many places. Inevitably, we kept missing some of them and having to go searching through the code again..
In addition, we had used a nifty but dangerous FORTRAN thing called Block Common, also called Unlabeled Common, which was a way of transferring variable values between subroutines and functions without putting them in argument lists. It meant that many more places where variables had to be declared double precision and more opportunities for overlooking them. We finally decided that we had to break our enormous block common into numerous (jillions) of separate labeled common blocks. It was ghastly.