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
Hi Karen,
- Learning Fortran is so easy compared to learning C++ that the
lack of Frantran programmers isn't a good reason. If you need a
software engineering specialist, you take a software engineering
specialist, whatever the langage(s) he knowns, and you make him
learn the langage you want. And it turns out that any
software engineering specialist should be able to learn Fortran
within a week. Also, as a geophysicist I write my numerical
code in Fortran, and it is easily plugged into our seismic
processing system (which is in Fortran). If our system was
in C++, either I should write C++ code (I prefer not to think
about that :-) ), either somebody (a programmer specialist) should
translate it into C++. I mean that a scientist is generally able
to produce good Fortran code, but probably not good C++ code.
- Performance issue: that's true that f90 is often still a bit slower
than f77 (one of the reason why we haven't yet switched to f90),
but what about C++??? I'm convinced that in most cases
it is _much_ slower than f77/f90.
- The real question is: do you need the C++ features (which are not
available in Fortran) to write your system? If not, then the only
reasonnable choice is Fortran. Fortran has really been designed
for numerical applications, which is not the case of C++.
Anyway you can use several langages in your system: C++ (or else)
for the kernel and Fortran for the numerical algorithms themselves...
Best Regards,
--
+-----------------------------------+----------------------------+
| Pierre Hugonnet | mail....CGG |
| | 1, rue Leon Migaux |
| Seismic Data Processing R&D | 91341 MASSY cedex |
| | FRANCE |
| COMPAGNIE GENERALE DE GEOPHYSIQUE | phone...(33) 164 47 45 59 |
| Massy processing centre (France) | fax.....(33) 164 47 32 49 |
| http://www.cgg.com | [log in to unmask] |
+-----------------------------------+----------------------------+
My opinions are not necessarily those of CGG
--------------------------------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|