Has it really been 35 years?

I knew this date was coming up, but I had forgotten about it for a while until my manager reminded me - October 2, 2013 marks my 35th anniversary "at Intel". I put that in quotes because Intel "grandfathered" my time at DEC and Compaq. It was October 2, 1978, when I walked into DEC's facility in Tewksbury, Massachusetts, as a new employee. The site, like many of DEC's in that day, was a converted shopping center - the main entry was where a Caldor department store had been, and a smaller building across the parking lot had been an A&P supermarket. Nowadays it's an office park owned by an insurance company.

I sat in the lobby waiting for the HR person to come and get me and another new hire. And sat, and sat...  Eventually, Leslie Miller (later Klein), a Fortran developer (and later manager of DEC's "Technical Computing and Enviroments" department) recognized me from my job interview and brought me in. It turned out that the other new employee, whom if I recall correctly was documentation writer Patti Anklam, had gone in ahead of me as she had worked there before.

I was being hired into the VAX-11/VMS (that's what it was called then) Run-Time Library team to work on the VAX-11 FORTRAN-IV-PLUS (ditto) run-time library. The compiler team worked in Tewksbury, but the RTL team itself worked in DEC's fairly new and sprawling site in Merrimack, NH. (now a major Fidelty Investments site, just a stone's throw from where Intel has me now.) So, while I was to work alongside the compiler team in Tewksbury, I was to spend six weeks with the RTL team in Merrimack. After the typical "new employee" training, I started working in Merrimack. A complication was that they couldn't find my badge, so I was using a temporary badge for weeks. It turned out that it was still in Tewksbury...

I then moved back to Tewksbury and immediately started on designing the RTL support for the remaining FORTRAN 77 features not yet supported by VAX FORTRAN, namely INQUIRE and "OPEN on a connected unit". I also designed and implemented NAMELIST support at that time. In addition to Fortran work, I was also maintaining and developing the "general purpose" library (LIB$, OTS$, STR$, etc. for those who know VMS) and created patch files for early VMS updates.

Shortly after I started working in Tewksbury, DEC decided it wanted to consolidate its software development efforts in a single site and began construction of its Spit Brook Road facility in Nashua, NH. That site opened in July 1980. You can read my story about that in Thirty Years of Zonker Kookies. After about two years of focusing on Fortran, I got attached to the new VAX Pascal V2 product. (V1 had been developed by the University of Washington, V2 was to be home-grown.) For this I did the complete design and implementation of the RTL and I was pleased to find that, over the coming years, it would get ported to several different platforms largely unchanged. I was very proud of the work I did on that, with a clean and efficient API for the compiled code.

In 1983 I joined the VAX Ada team as project leader for an embedded and realtime variant called VAXeln Ada. VAXeln was a new OS by one-time VMS project leader David Cutler (who later went on to be a principal designer of Windows NT.) VAXeln's primary programming language was VAXeln Pascal, where the compiler was created by Cutler's group in Bellevue, Washington, but the RTL was a port of my VAX Pascal RTL. For VAXELN Ada we'd use the VAX Ada compiler (due to be released for VMS in 1984), a port of its existing RTL, and customized remote debugging support that I helped design. This was the one and only time I actually served as a project lead with someone working for me.  VAXELN Ada was quite successful and profitable, and I spent a lot of time visiting defense contractors and oil industry offices to talk about it.

By 1988, Cutler had long since moved on and responsibility for VAXeln was with a group in Maynard, MA. I was offered a position there, but I really wanted to stay in Nashua. Luckily, the Fortran compiler team, whom I had worked with so closely, took me in and I worked on the VAX Fortran compiler for a long time. By the early 1990s, DEC's new 64-bit Alpha processor was on the rise, and the Fortran compiler for it was new, incorporating a "front-end" (language parsing) from the then-defunct Compass (along with several Compass developers), and DEC's new GEM code generator and optimizer technology. For a while, I was focused on VAX and eventually became the entire VAX Fortran project team, maintaining and extending it for several years. During this time I added recursion and integer pointers (aka "Cray pointers") to the VAX compiler, but eventually the VAX compiler went into "maintenance mode" and I switched to the Alpha compiler, becoming responsible for the VMS side of that product.

In the mid-1990s, we had released a Fortran compiler for Alpha systems running Windows NT (yes, there were such things), but it didn't have a large market. We asked Microsoft about licensing their Visual Studio IDE for this, and they in turn proposed to license us not only the Visual Studio IDE but also their Fortran PowerStation product. While PowerStation was widely used on Windows, it wasn't a big seller for Microsoft and they realized that it needed a lot of investment to keep up with the language standard. In 1997, DEC released DIGITAL Visual Fortran 5.0, aka "DVF", which was our own compiler and RTL plus the Visual Studio IDE and other Microsoft bits such as QuickWin to maintain compatibility with PowerStation. To say it was a hit would be an understatement.

DVF Flying FDVF plunged us into a completely new market segment and we had to feel our way around as to the best way to provide product support, marketing and general interaction with customers. We did everything ourselves, and I do mean everything - including stuffing boxes for shipment for a while. We also developed the product graphics, including the "Flying F" logo (shown here), built the installer, and I was in charge of adding floating licensing and creating product updates and patches. We started an email newsletter (which introduced Doctor Fortran) and then a user forum (which we later brought over to Intel.) I even designed, in Corel PhotoPaint, the mousepad that we included in later Compaq Visual Fortran boxes.

In 1999, Compaq bought DEC but locally, we didn't see much effect from this other than the name change. In the more global sense of things, Compaq was not doing well and had gone through a painful leadership transition. Still, DEC/Compaq Fortran, and especially CVF (as it was now called), was doing very well - so much so that Intel came calling and in August 2001 pretty much the entire Compaq Fortran team, plus a lot of C/C++ and GEM developers, were hired by Intel. Just a month after that, HP bought Compaq.

It was very interesting to see the difference in environment between DEC and Intel. As I liked to say at the time, Intel knew what business it was in and was making a profit, which wasn't true of DEC at the end. Intel has many separate teams doing their little piece of the product, which was unfamiliar, but we learned how to work with it. There are a lot of smart people at Intel, and more than a few of them were ex-DECcies, including Mike Ross (now retired), who I remember from his work on PDP-11 FORTRAN for RSTS/E and who was part of the Intel Fortran team when we came on board. He worked with us for many years.

At the time we joined, Richard Wirt, the Intel group manager who brought us in, suggested it would take "six months" to meld the DEC compiler
front end" with the Intel "back end" code generator and optimizer. Richard's famous quote on such things was 'You're smart people, you'll figure it out." Well, we did, but it took over two years. In late 2003 we released Intel Visual Fortran 8.0 (and Intel Fortran for Linux 8 - we had been working on a CVF for Linux at the time we were acquired.) There was a bit of roughness at first, but we soon had another hit.

As I wrote in the Zonker Kookies post, we stayed in the Nashua site, walled off from the rest of HP. My own role had been gradually shifting away from development and toward support and "evangelism". At Intel, support was a separate team and I joined them in 2002, staying in Nashua with the rest of the developers. The last bit of development work I did, formally, was to add an undocumented feature to the OPEN statement where, on Windows, you could use %envvar% in the FILE= value which would get expanded, using a Windows API. But even though I was no longer a developer, my experience helped me in the support role because I had a better feel for what could be going wrong when a problem was reported. That I had been both a compiler and an RTL developer helped even more.

In 2013 I am still with the compiler support team, but I have fingers in a lot of pies. (Yay, pie!) One of my official roles is "the public face of Intel Fortran", which is why you will see me in comp.lang.fortran, the Intel Developer Zone user forums and other places Fortran is discussed (StackOverflow, LinkedIn, etc.) I'm also one of Intel's alternates to the Fortran standards committee and, as I wrote here, attended the 2013 ISO meeting in Delft. I will again be at Supercomputing this year in Denver, and do a lot of travel to deliver training at customer sites. It's never boring...

I will admit that reaching a milestone such as this is cause for reflection - I'm not as young as I used to be. (I do work with several who have followed the DEC/Compaq/Intel path even longer, though.) I'm hoping to find someone to eventually carry on the "Doctor Fortran" role as I know I won't be here forever. But for now, you're stuck with me...

Image icon dvf.png44.74 KB
For more complete information about compiler optimizations, see our Optimization Notice.


George W.'s picture

I enjoyed reading your history. I learned Fortran IV in 1968 in college for Engineering with punch cards and have written some programs at work to solve steel design problems. As others used my programs, they wanted a User's Manual. At first, I printed out the code and told them to look at the Read Statements to see what the input was.  I begrudgingly wrote up the input requirements on a few pages. I came to the conclusion that an Engineer should never write a program for anyone besides himself.

If you write a program, you do it to solve a problem and you work on it until you are happy.  When you proudly give it to someone else, the inevitable statement is " Well it works great, but could you add a feature?" The revision process has now started.

Keep up the good work.

Ken R.'s picture

Hi! I ran across your article while searching for something related to Intel, and I found your reference to Fortran and Intel very interesting because my father was a roller bearing consultant who wrote roller bearing failure analysis software in Fortran. He passed away in 2012 but was still in demand as a consultant into his 80's - including training engineers in the use of his software. (He specialized in large diameter roller bearings and this attracted the wind farm industry.) When he told a South Korean company that he was not planning to travel to their country because of his health, they came to him in Pennsylvania. Since Intel plays such a large role in the PC industry, I suppose I could say that your involvement in keeping Fortran going on Intel products helped to keep him in business. :-) Just to show you this is bona-fide, here is a link I ran across to one of his ASME papers on tribology: http://tribology.asmedigitalcollection.asme.org/article.aspx?articleid=1467086

Alfonso S.'s picture

Hi Doctor Fortran! First of all: congratulations! I really love your blog, I would like to see more frequent posts! If you want a subject to talk a have a few ;).

I think that is of major importance the performance obtained from the code written, so I would like to know things like: What is more efficient, implicit loop structures like FORALL or WHERE or "expanded" loops (DO-ENDDO)? What is faster allocate a pointer or an allocatable variable? What gives better performance construct the array with the shape (real :: a(10,10)) or allocate it later(allocate(a(10,10)))?

You are great!

Dmitry Oganezov (Intel)'s picture

Congratulations, Steve!

I was a first grade student back in 87-88. PL-1 together with Fortran were 2nd and 3rd programming languages we used. I don't even remember what was the first one. We learned FORTRAN IV on PDP-11 "compatible" system MERA-60, made in Poland. Now I realize that it was probably an unauthorized clone. 

If someone told me 25 years ago that I'd meet one of DEC employees, a real Fortran compiler developer, in person I'd not believe. Guess what, now we use the same bug tracker :)

Thank you for this nostalgic post. You rock! 

FortranFan's picture


Enjoyed reading your "memoir" immensely - wish you continued success and additional career fulfillment in the years ahead.

As you continue in your current role at Intel as Fortran "evangelist" and you interact with both customers and also Fortran standards developers, it will be great if you can publish articles, at some frequency, giving details of:

a) how "Modern Fortran" is being viewed, utilized, etc. in the world of computing in general and in scientific and engineering programming, in particular,

b) any stats on Intel Fortran (all OSs) that can be openly shared - # of users, sales, recent growth (or lack of thereof), high-level data on Intel's commitment to Fortran development - R&D budget, support, etc.

c) major new projects in the world of computing involving Fortran,

d) the relevance of Fortran at large institutions (e.g., NOAA, Sandia, CERN, etc.), especially relative to C++ or other scientific programming paradigms,

You get my drift! You're in a unique position to provide "state of Fortran" address and I think it will be most valuable.

You have provided positive contributions to so many people and in so many ways, we want you there forever..

Thanks and regards,

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.