[comp.unix.aux] Battle of the FORTRAN Compilers...

jim@jagubox.gsfc.nasa.gov (Jim Jagielski) (06/24/91)

A long time ago I compared the NKR FORTRAN compiler with the AbSoft MacFORTRAN
II compiler for A/UX. My original reviews tended to lean towards NKR since
they had quicker compile times and very good support. NKR FORTRAN is now
up to version 4.1 and some other changes have been made that make now a good
time for a "new" review...

NKR FORTRAN Ver 4.1:
	The older versions (3.x) of this compiler where quite good. It boasted
	quick compile times and it's optimization was good. Also customer
	support WAS great: I'd notice a bug (or make a suggestion), they'd
	fix it or incorporate the change and then send me a FREE upgrade!
	Lately they have upgraded to version 4.1 and some changes have
	crept in.

	1st of all, their quick compile time have gotten longer. Although
	still faster than AbSoft's MacFORTRAN II (MFII) by about 10 to 12%
	MFII's optimizations are better, more complete and produce tighter
	code. Also, NKR always produced larger executables and this has
	not changed... larger by about 15 to 20% in some cases.

	NKR STILL doesn't produce accurate symbol table info, making the
	use of sdb even more of a pain then usual.

	Finally, their excellent customer support seems to have gone down
	the drain. They are charging $75 for upgrades no matter what version
	you have. They sent me a beta version of 4.1 with the agreement that
	I'd receive a free upgrade, as usual. After I took my time and put
	4.1Beta through it's paces and made comments and suggestions, they took
	them and then refused to give me my upgrade... pretty crappy.

	Anyway, I would have to give the NKR FORTRAN compiler a B-... it's
	quick, but lacks fine control over compiler behavior. Compared to
	MFII, it produces larger, slower code. VAX FORTRAN compatibility
	is excellent with a lot of new additions (suggested by myself :)
	to make it even better. Support had been great, but seems to have
	slipped quite a bit... a shame.

AbSoft MacFORTRAN II Ver 2.1:
	This version is the "original" version shipped. Although a bit slower
	in compile time than NKR, it produces tighter, better optimized code
	as well as smaller and quicker (by 12 to 28%) executables. It provides
	fine control over compiler defaults, with many level and types of
	optimizations as well as being able to arm or not arm the 68851(2).
	Extended precision math is also possible.

	MFII allows for standard F77 source formatting, VAX FORTRAN, IBM VS
	as well as Fortran 8X fixed and free source form. VAX extensions as
	well as those from MIL-STD-1753 have been included. MFII also
	incorporates some of it's own extensions. Also, MFII can call C
	library functions DIRECTLY... for example, to call the C "subroutine"
	time, you just type in "call time(xxx)" and to call ctime() just
	declare ctime and an INTEGER and "iloop = ctime(xxx)". The version of
	f77 with A/UX as well as NKR require you to call them as "_time" and
	"_ctime" (I think... it's been a while :) which some people may
	prefer. Since MFII uses the C libraries when linking, all C fucntions
	are ALWAYS available.

	MFII handles symbol table info 100% correctly, so you can use sdb with
	it. It also provides a way to produce a more detailed symbol table
	for use with AbSoft's FX debugger, which is EXCELLENT!

	Customer support has really improved. A BBS is available and offers
	quick responses. 

	An upgrade is due somewhere around fall and promises a few additions
	and modifications as well as being quicker and tighter.

	All in all, MFII deserves a A-. If it was just a bit quicker in
	compiling and included some "standard Unix f77" functions such as
	getarg and getenv (the update will include these) then MFII would
	rate an A. In any case, MFII seems a more solid product.

You can't really go wrong with either one. However, if you're using your
FORTRAN to develop code, then MFII is the better choice, with it's support of
sdb as it's extreme fine control over compiler options. Also, if you demand
getting the most performance, MFII (with all optimizations set) will produce
VERY quick code, though it will take a while to compile it :)
--
===========================================================================
#include <std/disclaimer.h>
                                 =:^)
           Jim Jagielski                    NASA/GSFC, Code 711.4
     jim@jagubox.gsfc.nasa.gov               Greenbelt, MD 20771

"If we increase the size of the penguin until it is the same height as a man
 and then compare the relative brain size, we know find that the penguin's
 brain is still smaller. But, and this is the point, it is larger than it WAS!"

tody@noao.edu (Doug Tody X217) (06/25/91)

From article <5799@dftsrv.gsfc.nasa.gov>, by jim@jagubox.gsfc.nasa.gov (Jim Jagielski):
> 
> A long time ago I compared the NKR FORTRAN compiler with the AbSoft MacFORTRAN
> II compiler for A/UX. My original reviews tended to lean towards NKR since
> they had quicker compile times and very good support. NKR FORTRAN is now
> up to version 4.1 and some other changes have been made that make now a good
> time for a "new" review...
> 
> ...You can't really go wrong with either one. However, if you're using your
> FORTRAN to develop code, then MFII is the better choice, with it's support of
> sdb as it's extreme fine control over compiler options. Also, if you demand
> getting the most performance, MFII (with all optimizations set) will produce
> VERY quick code, though it will take a while to compile it :)

Another possibility is to use the Fortran-to-C translator F2C (available
from AT&T, research.att.com) in conjunction with a good C compiler such as
GCC.  This doesn't provide all the features of the Fortran compilers
mentioned above, is a bit slower, and is not quite as turn-key, but it is
*very* solid, and of course, it is free, you get the sources, and you can
redistribute.  I built a million line Fortran system using this combination
with only minor compiler problems with F2C/GCC, whereas the Absoft compiler
had serious optimizer problems with my code (it worked fine for some smaller
programs).  Examining the generated assembler for a simple DO-loop revealed
that F2C/GCC optimized the loop better than the Absoft compiler.  By way of
comparison, the SunOS Fortran compiler compiling for the same mc68020
architecture was much better than either in the case of the simple DO-loop
tested.  (The f77 compiler distributed with A/UX was hopeless.)

-- 
Doug Tody, National Optical Astronomy Observatories, Tucson AZ, 602-325-9217
UUCP: {arizona,decvax,ncar}!noao!tody  or  uunet!noao.edu!tody 
Internet: tody@noao.edu             SPAN/HEPNET: NOAO::TODY (NOAO=5355)