Harry Bingham writes:
> I am also trying to decide on a Fortran 90 compiler for my
> Pentium under Linux....
> At work, I mainly use DEC Alpha and IBM sp2
> machines, and so what I'm trying to do is to mirror those environments,
> as best I can, at home on my Linux PC...
I don't have any experience at all with the sp2, but a nice thing
about the NAG compiler is that it is available for quite a few
platforms (including Linux and Alpha - though I'm not sure about for
Linux on the Alpha, but that wasn't what you were asking about).
Since NAG has the same front end on all the platforms, moving code
around between different NAG implementations tends to be easy; anyway,
I find it so.
Of course, the NAG compiler is known more for its robustness and
portability than for its optimization.
> The codes I'm working on are also a bit "nasty"
> in that they liberally mix Fortran 77, Fortran 90/95, and sometimes C
> source files, and often link to various special and/or standard
> libraries.
That doesn't necessarily sound "nasty".
I'd assume you should be able to link with C using any of the choices.
I certainly do it with NAG. Uses the same kind of tricks as I'm used
to for other C/Fortran linking on Unix machines. I'd assume that the
other compilers you found would be similar, though I haven't first
hand experience to verify that.
Likewise, I'd expect linking to 3rd party libraries to be comparable
among the compiler choices.
I don't know of any f95s yet actually released in non-beta form,
though NAG told me 6-8 weeks when I talked to a sales rep a few days
ago.
I'd need more interpretation of your mention of f77, though. If you
really mean f77 (as defined by the standard), then f77 is just a
subset of f90, so the question of "mixing" f77 and f90 is moot.
All that would do is rule out the F subset language, which is an f90
subset that doesn't much overlap with f77. But if your mention of
"f77" really means f77 plus a bunch of extensions, then matters may
be quite different. Particular extensions to watch out for are
so-called Cray pointers and Vax records. If your code uses either
of these (and you aren't willing or able to convert it to get rid of
these uses), then you need to ask very specifically whether the target
compiler supports them. NAG doesn't. G77 doesn't. F2c doesn't. I
don't know about the other options, but the above 3 samples should be
enough to point out that it is not a given. And just asking whether
the compiler supports "f77" is not going to tell you whether it
supports these particular f77 extensions. Even asking whether a
compiler supports "f77 plus extensions" isn't enough. For these
particular ones, you need to be very specific. The only reason I
thought mention these extensions when you didn't is because these are
two that can indeed make the question of mixing "nasty."
I've not yet seen a graphical debugger that I thought really well done
on a Unix platform. This doesn't necessarily mean that they don't
exist. Perhaps it reflects more that I gave up looking a long time
ago, and I've learned to work well enough without them that I no
longer look very hard.
--
Richard Maine
[log in to unmask]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|