Karen Goodger wrote:
> Our company is currently involved in a modernization project of our
> seismic processing system. Most of our code is written in fortran77.
> We are currently in a debate as to whether to go with fortran90 or C++.
> One of the reasons for considering C++ is the perceived difficulty in
> finding programmers who know fortran. Another reason is the maturity of
> fortran90 compilers. We have found fortran90 to run our code less
> efficiently than fortran77. In either case, we do not intend to rewrite
> all of our current fortran77 code in a new language, but would write the
> backbone of our processing system in the new language as well as any new
> code. Our code is currently Cray dependent, and part of this effort
> will be to make the code portable.
>
> I would appreciate any comments on the above two fears concerning
> fortran90.
>
> Karen
Regarding your first fear (lack of Fortran programmers) bear in mind you're
going to need them anyway. As you said, you don't plan to rewrite
everything, so it would stand to reason that Fortran expertise will be
needed regardless of what you do, whether to write the Fortran 90 code or
understand the Fortran 77 code well enough to aid in the porting to C++.
Further, I think the lack of Fortran programmers is a concern if you're
looking for CS types, not applied math or engineering types.
As for the second concern, I think the question you should be asking is
whether Fortran 90 runs faster or slower than _C++,_ not whether Fortran 90
is faster or slower than Fortran 77. In any case, with Fortran 90 you could
put an object oriented wrapper (module) around the F77 code, thus leaving
the most performance-driven parts of the code unchanged. JPL did this with
some of its analysis codes. With the C++ approach, you will have to do more
work; there are issues of how the two languages define arrays, how they pass
variables, etc. This will be a non-issue if you stay with Fortran. As for
Fortran 90 being slower than Fortran 77 - so is C++, I hear. "Speed" and
"C++" do not get mentioned often in the same sentence, as a matter of fact.
C++ is a good language, but it is not the only language. I respectfully
submit some people at your organization may be suffering from "out with the
old, in with the new" syndrome, whatever the cost. I will wager if you go
with C++, you may still be working on this five years hence, whereupon
everyone will tell you that "C++ is dead" and you should put everything in
Java. :-). If you go with Fortran 90, I think you'll be done sooner and for
less cost.
Of course, there may be other issues at Conoco which will be the deciding
ones. But that's my $.02 cents worth. :-)
Alvaro Fernandez
Research Assistant
Rice University
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|