Problem solve Get help with specific problems with your technologies, process and projects.

Forget the cloud. NASA wants your coding skills for outer space.

NASA. Remember NASA? It’s the once-glorious government agency that put men on the moon, the agency whose Voyager I space probe left our solar system in 2013 for parts unknown, the agency that, in the immortal words of John F. Kennedy, did things not because they were easy, but because they were hard.

FORTRAN. Remember FORTRAN? Well, of course you don’t. And that’s precisely why, in mid-2017, maintaining ancient programs written in it isn’t easy. It’s hard. Really hard. It’s so hard, in fact, NASA is holding a contest featuring a prize purse of up to $55,000. It’s the sort of app dev challenge that would look good on any résumé — if you know FORTRAN, that is. And computational fluid dynamics, too.

According to NASA, all you need to do is “manipulate the agency’s FUN3D design software so it runs ten to 10,000 times faster on the Pleiades supercomputer without any decrease in accuracy.” It’s called the High Performance Fast Computing Challenge (HPFCC).

If you’re a U.S. citizen at least 18 years old, all you need do, NASA says, is download the FUN3D code, analyze the performance bottlenecks, and identify possible modifications that might lead to reducing overall computational time. “Examples of modifications would be simplifying a single subroutine so that it runs a few milliseconds faster. If this subroutine is called millions of times, this one change could dramatically speed up the entire program’s runtime.”

If you’ve ever asked what you can do for your country, this may be it.

It’s your chance to go far beyond mere cloud computing, your chance to do outer-space computing — perhaps to infinity and beyond.

Ok, let’s get serious… FORTRAN has suffered  mightily from the same ignominious fate as assembler language and COBOL (the language that paid my bills for many years). No one cares about FORTRAN, no one wants to learn it, few institutions bother to teach it, and many who were expert in it are long-since deceased.

Physicist Daniel Elton, in a July 2015 personal blog entry, suggests that FORTRAN remains viable (at least among physicists) because of the enormous amount of legacy code still in production, its superior array-handling capabilities, little need to worry about pointers and memory allocation, and its ability to catch errors at compile time rather than run time. In a March 2015 post in the Intel Developer Zone, Intel’s Steve Lionel (self-anointed “Dr. FORTRAN” and now recently retired) said a poll of FORTRAN users conducted at the November 2014 supercomputing conference indicated 100% of respondents would still be using the language five years later.

With good reason, we live in a world dominated by the likes of Java, C, C++, C#, Python, PHP, Ruby, Swift, R, Scala and scads of others. Visual Basic, Pascal, PL/I, ADA, APL, along with COBOL and FORTRAN have seen their day. The problem is that, to paraphrase Gen. Douglas MacArthur, old programming code never dies — and it doesn’t fade away, either.

How much ancient code from legacy languages do you come across in dealing with enterprise IT? Are you afraid to tinker with it? Does anyone know what those programs actually do? Has the documentation been lost to the ravages of time? Does the source code still exist? Tell us how you deal with it; we’d like to hear from you.

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

As a programmer for LTV on contract for NASA, I wrote Fortran programs for simulating the thermal environment for the Apollo missions.  These are for analyzing the heat transfer from radiation, conduction, and convection as the space craft or astronaut and equipment operate in space or on the Lunar surface. I am currently involved in coding Big Data analysis solutions. Perhaps I can apply some of the Big Data concepts to the NASA's FORTRAN programs.  Some of those NASA programs may even have been written by me.  
Well, iThinker2, it's good to know that people who wrote code for NASA back in the 1960s are still here on planet Earth! Many of my COBOL and assembler colleagues of the 1970s have already departed for the great compiler in the sky. If you're currently in retirement, this coding revision contest could be a fun gig for you with a dash of reminiscing. If you jump in, keep us informed! (I remember LTV mostly as a builder of major Boeing 747, 757, and 767 subassemblies -- vertical stabilizers, if memory serves.)
Wolfram Mathematica speeds up FORTRAN.
Legacy Code is a proverbial pain to make sense of. Particularly if has been written by a number of programmers/developers over a number of years and documentation simply does not exist.
Potentially the only way to deal with it is to use the human brain to make sense of it. But with, perhaps, many thousand lines of code doing this totally manually is a non-starter.
However, that does not rule out a semi-automated way. Developers tend to use syntactical constructs with which they are familiar and  many similar constructs are likely to present in the source code.
A program to extract such "groups of similar syntax" - presenting the results in easily interpretable diagrammatic form, is I suggest, a useful starting direction. 

Terry Bourne
Wow! I remember handing stacks of numbered punched cards to the "window" (A person manning it at the time) with FORTRAN lines of code at Courant Institute way back in the 60's. Now looking at Tensorflow 1.2, and realizing that I am really old!
I share your pain. Decades ago, I learned to program using an ancient 029 card punch machine, because that's all the school at the time. Not everyone punched sequence numbers into their giant card decks. Drop a deck and there was no way to put a thousand or more cards back in order. Other places I trained had machines that generated punched yellow paper tape. That was a vast step up.
I learned Fortran in engineering school, but used it mostly for business applications. In one use, Boeing had developed a user based "language" that was not very efficient. I reprogrammed portions of it in Fortran and saved the government $400,000 a year in operations costs. For me, Fortran was really efficient.
How does one even run the code that NASA wants you to enhance? Are they giving access to the supercomputer?

To Whom It May Concern:

My name is Dinu Leonte. I worked as Analyst Programmer at National Power Dispatch (NPD) in Bucharest, Romania. In early 70s were many programs written in FORTRAN IV regarding among others  Dynamic Stability and Power Optimization. Meanwhile all these programs have been replaced. Late 70s a tele informational system based on EMS/SCADA was developed and implemented with Siemens process computers (320 and 330 Prozesrechners) running Assembly Languages programs(BIAS).

I left NPD immigrating in the USA with my kernel family in the summer of 1990. My work for PhD thesis has programs written in ALGOL with NAL modules and is entitled "Contributions to the Nonsymmetrical regimes using the nodal Impedance matrix Zn" sustained publicly in 1982 at the Polytechnic University in Bucharest. If you need some help for this background, I will make myself available in this regard. Thank you. Dr. Dinu Leonte 

Wow... de ja Fortran. My first class on my first day of college was a Fortran IV class. No if-else as in Fortran 77... just goto's and labels. Same punch card at the window experience as PaoloTCS. And with the very basic punch card machines at the university (no duplication et al), very short variable names were a necessity to reduce the number of type-o's... which meant eject the card and start all over on that line of code. Comments? No time for that!
If you'd like to learn more about the history of punch cards, going all the way back to Jacquard cards for textile looms, you should read this excerpt from "The Punched Card Collection," by Douglas Jones: