[comp.lang.fortran] F77 Compilers for MS-DOS PC's

gil@limbic.UUCP (Gil Kloepfer Jr.) (08/23/88)

One company I do work for is looking for a F77 compiler for a PC / PC clone.
I would appreciate any suggestions from the net as to compilers they have
used and liked, or compilers to avoid.

Specifically, we are looking for a compiler which supports VMS extensions
if possible, that is well-supported (ie. the company will be in business
next month), performs well, etc.  All these criteria, as well as any others
which you may find helpful to mention, should be considered.

Please email *all* followup responses directly to me, and I will post a
summary to the net in about 2 weeks.  Thanks to all in advance for your
assistance.

+------------------------------------+----------------------------------------+
| Gil Kloepfer, Jr.                  | Net-Address:                           |
| ICUS Software Systems              | {boulder,talcott}!icus!limbic!gil      |
| P.O. Box 1                         | Voice-net: (516) 968-6860              |
| Islip Terrace, New York  11752     | Othernet: gil@limbic.UUCP              |
+------------------------------------+----------------------------------------+

dandc@simsdevl.UUCP (Dan DeClerck) (08/26/88)

In article <184@limbic.UUCP> gil@limbic.UUCP (Gil Kloepfer Jr.) writes:
>One company I do work for is looking for a F77 compiler for a PC / PC clone.
>I would appreciate any suggestions from the net as to compilers they have
>used and liked, or compilers to avoid.
>
>Specifically, we are looking for a compiler which supports VMS extensions
>if possible, that is well-supported (ie. the company will be in business
>next month), performs well, etc.  All these criteria, as well as any others
>which you may find helpful to mention, should be considered.
>
>Please email *all* followup responses directly to me, and I will post a
>summary to the net in about 2 weeks.  Thanks to all in advance for your
>assistance.
>

I've used Digital Research's F77 compiler and linker package for a college project about a year ago.
I found that it was absolutely horrible. Not only was the package extremely slow
it had reserved words (according to standard it cannot). It masked some linkage
errors so that you you hadn't any idea of the problem (like passing aguments to subroutines
that had differing definitions of lengths would show up as a "FIXUP ERROR" with
nothing pointing to the offending routines or variables). I hear from friends that 
Lahey's and the IBM F77 compiler are good, but don't quote me...

-----------------------------------------------------------------------------
Dan DeClerck       or dandc@mcdchg!simsdevl

link@sag4.ssl.berkeley.edu (Richard Link) (08/26/88)

In article <102@simsdevl.UUCP> dandc@simsdevl.UUCP (Dan DeClerck) writes:
>In article <184@limbic.UUCP> gil@limbic.UUCP (Gil Kloepfer Jr.) writes:
>>One company I do work for is looking for a F77 compiler for a PC / PC clone.
>>I would appreciate any suggestions from the net as to compilers they have
>>used and liked, or compilers to avoid.
>>
>>Specifically, we are looking for a compiler which supports VMS extensions
>>
>I've used Digital Research's F77 compiler 
>I found that it was absolutely horrible. 


I bought Microsoft 3.20 and upgraded to 3.31. Both stink. Neither versions
are ANSI F77. 3.31 is a subset of F77, and has CHARACTER variables, although
does not allow substring operations. Based on my experience with these
versions, I decided not to upgrade to 4.0, which is reputably a full F77.

I found that even within the confines of the ANSI standard, I had great
difficulty in trying to port IBM and VMS compatible source code into
MS Fortran. MS choked on a lot of constructs allowed by both IBM and VMS.

IBM above refers to mainframe compilers, not PC versions.

An interesting anecdote. A colleague of mine, a professor of solid earth
geophysics, bought an early version of the IBM PC, with MS Fortran.
His work involves a lot of Legendre polynomials and matrix math.
After weeks of frustration, he finally proved conclusively that his 
particular version of MS Fortran had a serious bug. He read in a 
4 x 4 array, and then simply printed it out. The subscripts (array
locations) were all permuted, rendering the compiler totally useless.
He took the IBM + MS Fortran back to the store, and ordered a MicroVAX.

I have not used Lahey Fortran, although I have read some good things about
it. However, I am not willing to spend the $$ to find out conclusively.
In my opinion, PC version of Fortran are not particularly good. There is
a fundamental incompatibility of Fortran COMMON block structures with
the 64K segment limit of Intel chips. 

I cannot believe I am saying the following: if you want to program a PC,
use C!

I think Microsoft has devoted their corporate effort to C and MASM, with
QuickBasic devoted to the home market. Don't look for the same level of
effort in MS C & Fortran.

These are my own, not particularly well-informed, opinions.

Dr. Richard Link
Space Sciences Laboratory
University of California, Berkeley
link@ssl.berkeley.edu

mcdonald@uxe.cso.uiuc.edu (08/26/88)

>>One company I do work for is looking for a F77 compiler for a PC / PC clone.
>>I would appreciate any suggestions from the net as to compilers they have
>>used and liked, or compilers to avoid.
>>
>>Specifically, we are looking for a compiler which supports VMS extensions
>>


>I bought Microsoft 3.20 and upgraded to 3.31. Both stink. Neither versions
>are ANSI F77. 3.31 is a subset of F77, and has CHARACTER variables, although

True, Microsoft Fortran 3.31 stinks. However, the current version, 4.1
is full ANSI F77 and is quite OK. Luckily they have not put all the
highly nonstandard DEC extensions in it. There are some loosening
up of the more restrictive ANSI clauses, however (but not the
obscene BLOCK DATA requirement).

>I cannot believe I am saying the following: if you want to program a PC,
>use C!

Also true. However, if you have the bucks, buy both Microsoft Fortran 
and C. You can call one from the other with little pain. And then 
you can call many use Microsoft C functions from Fortran.
Including graphics.

I must say that I have programmed many computers, from the 1620 to
the Illiac IV, and with this combo the IBM PC is the most hassle
free of all. It sure beats the VAX/VMS - no sickening record formats.

Doug McDonald

ilan343@violet.berkeley.edu (08/26/88)

In article <13633@agate.BERKELEY.EDU> link@sag4.ssl.berkeley.edu (Richard Link) writes:
>In article <102@simsdevl.UUCP> dandc@simsdevl.UUCP (Dan DeClerck) writes:
>>In article <184@limbic.UUCP> gil@limbic.UUCP (Gil Kloepfer Jr.) writes:
>>>One company I do work for is looking for a F77 compiler for a PC / PC clone.
>>>I would appreciate any suggestions from the net as to compilers they have
>>>used and liked, or compilers to avoid.
>>>
I've used Lahey's F77L. It compiled MINOS 5.0 ( an LP package) successfully.
Granted, MINOS is written in very standard FORTRAN 77, and it can be compiled
almost anywhere. But it is a big program.
Lahey supports the "military extensions!!" (DoD's Fortran), I don't think
it covers VMS Fortran.

Lahey also sells  286 and 386 versions (F77L16 and F77L32) that generate code
for the Intel chips, and runs the programs in protected mode with the help
of a DOS extender.  These versions can address any amount of  extended memory
you might have available.  A coworker of mine has used the F77L16 to port a
fairly large application onto an AT with 5MB. It was slightly painfull but not
extremely so.  It cost a couple of calls to Lahey's support.

Prices range from $95 for a small-version of F77L to $495 for the 386 version
(I am quoting this without a reference in front of me) . 
They have a source level debugger at extra cost.

andytoy@watdcsu.waterloo.edu (Andy Toy, Applications Support Group) (08/30/88)

Check out WATFOR-77 from WATCOM, 415 Phillip Street, Waterloo, Ontario,
Canada N2L 3X2 (519) 886-3700  Telex 06-955458.

This is from the preface of the WATFOR-77 Language Reference:

"WATFOR-77 is an implementation of the Amercan National Standard
programming language FORTRAN, ANSI X3.9-1978, commonly refered to as
FORTRAN 77.  The language level supported by this compiler includes the
full language definition as well as significant extensions to the
language.  WATFOR-77 is based upon some well known FORTRAN language
compilers, namely the University of Waterloo's WATFOR and WATFIV-S
compilers (implementations for the International Business Machines 370
series) and the WATFOR-11 compiler (an implementation for the Digital
Equipment PDP-11)."

They have versions for different OS including MS-DOS.  I have used them
on VM/CMS, VAX/VMS and MS-DOS and they work well giving good
diagnostics thus aiding immensely in debugging.  I do not know if the
compiler includes the VAX FORTRAN extensions, but I am sure that WATCOM
can provide that information.
-- 
Andy Toy, Applications Support Group, Department of Computing Services (DCS),
University of Waterloo, Waterloo, Ontario, CANADA N2L 3G1, 519/885-1211 x3417
UUCP: ...!watmath!watdcsu!andytoy    NetNorth/BITNET/EARN: ANDYTOY AT WATDCSU
Internet: andytoy@watdcsu.waterloo.edu      New: andytoy@watdcsu.UWaterloo.CA

wes@obie.UUCP (Barnacle Wes) (08/31/88)

In article <184@limbic.UUCP> gil@limbic.UUCP (Gil Kloepfer Jr.) writes:
> One company I do work for is looking for a F77 compiler for a PC / PC clone.
> I would appreciate any suggestions from the net as to compilers they have
> used and liked, or compilers to avoid.

In article <13633@agate.BERKELEY.EDU>, link@sag4.ssl.berkeley.edu (Richard Link) writes:
> I bought Microsoft 3.20 and upgraded to 3.31. Both stink. Neither versions
> are ANSI F77. 3.31 is a subset of F77, and has CHARACTER variables, although
> does not allow substring operations. Based on my experience with these
> versions, I decided not to upgrade to 4.0, which is reputably a full F77.

I have used MS-Fortran 4.0 at work.  It is MUCH, MUCH better than MS 3.2
and/or 3.3, which were based on an old Pascal implementation of Fortran
(from the P-system maybe?).  The new compiler handles most of ANSI
subset Fortran pretty well, including real support for character
variables (3.2 and 3.3 did not allow concatenation with //).  The
compiler does not really seem very robust, but it did work OK on
straightforward code.

I have read good reviews of the 286/386 Fortran compilers from Green
Hills and from MicroWay.  You may want to look at back issues of Dr.
Dobb's Journal and/or Computer Language, one or both of them had reviews
of Fortran systems for 286/386 computers recently (within the last 8
months or so).

If you have a 386 machine, get a 386 compiler - you loose all this crap
about "huge" arrays.  And get MUCH better performance, to boot!
-- 
                     {hpda, uwmcsd1}!sp7040!obie!wes
           "Happiness lies in being priviledged to work hard for
           long hours in doing whatever you think is worth doing."
                         -- Robert A. Heinlein --

link@stew.ssl.berkeley.edu (Richard Link) (08/31/88)

In article <5015@watdcsu.waterloo.edu> andytoy@watdcsu.waterloo.edu (Andy Toy, Applications Support Group) writes:
>Check out WATFOR-77 from WATCOM, 415 Phillip Street, Waterloo, Ontario,
>Canada N2L 3X2 (519) 886-3700  Telex 06-955458.
>


I first learned to program using WATFOR/WATFIV on an IBM 360 (yes I'm that
old). It is an excellent teaching compiler since it's error messages are
very good (and also error trapping).

Howver, because of all the built-in error checking, it produced
slooooooooooooooooow executables. Typically, I would debug a program
using WATFOR, and then run using IBM H-Extended, which ran about
20 times faster.

How does the MS-DOS version compare to Microsoft Fortran in compile and
run times? How good is the error checking in the PC version?

...Rick Link
link@ssl.berkeley.edu

btb@ncoast.UUCP (Brad Banko) (09/03/88)

Richard Link has numerous complaints about MS Fortran on PC's.
He has had experience with MS Fortran through version 3.31 or so.
I want to say a few words on behalf of MS Fortran...
I spent about 6 months last year working daily with MS Fortran on an
AT.  I started out with the version 3.31 compiler which was painful
to use... no make, not full f77 compatible plus other "implementation
level" frustrations.  The version 4.00 compiler came out much improved
from a programming viewpoint (although still no screen editor was
supplied... I use EMACS or Windows Notepad)... version 4.00 had a make,
supported hiding the compiler files away in \bin (or other named
directories), etc.  Much improved over 3.3x!  But, 4.00 had some serious
bugs in its optimizer (at least it had an optimizer) and string handling.
Several months later 4.01 came out and fixed most of these bugs...
(in fact, I used 4.01 for the next 3 months or so and had no more problems.)
include files are supported.  4.x is full f77 with some useful 
extensions like time & date functions.
I would recommend re-visiting Microsoft Fortran 4.01+ if you have only 
used 3.3x before.  Benchmark it first with your toughest (proven)
numerical algorithm (try the spherical bessel fxn routine outlined by
Welch in Computers in Physics Sept/Oct 1988, See also Gillman & Fiebig,
Comput. Phys. 2, 62 (1988)).

-- 
			Brad Banko
			Columbus, Ohio
			(formerly ...!decvax!cwruecmp!ncoast!btb)
			btb%ncoast@mandrill.cwru.edu

"The only thing we have to fear on this planet is man."
			-- Carl Jung, 1875-1961

rogden@uceng.UC.EDU (robert ogden) (09/05/88)

The Dept. of Aerospace Engineering and Engineering Mech. at the University of
Cincinnati has been using RMFORT ver 2.0 RYAN MCFARLAND FORTRAN for ~ 3 years.
Mostly undergraduates in the PC LAB. No problems to speak of, a good
solid FORTRAN 77 compiler. However, this version is really slooooow to 
compile. The Lahey  ver 2.20 compiler is as good and compiles very
fast. We are just now going to purchase Lahey v3.0 for the PC LAB. Even though
both compilers have 80x87 emulation, it is not useful to have the 80x86
do all the work. A numerically intensive benchmark of ours shows:

IBM ps/2 model 80 16Mhz, 57.78 secs, Lahey
IBM ps/2 model 50,      161.00 secs, Lahey
CLONE 10Mhz,            222.20 secs, RMFORT
uVAX II w/FPA,           46.40 secs

With both, FORTRAN code compatibility with FORTRAN 77 is good.
We ship files around to several machines w/o problems and avoid using 
VAX extensions for this reason. Several students do initial work with
these compilers and later send the source to VAX, CRAY, Perkin-Elmer
(now Concurrent Computer), Definicon co-processors (Silicon Valley
Software Compiler).
  
I have, *ONCE* , used Microsoft FORTRAN ver 3.x . It was terrible.
I still have nightmares. It was a FORTRAN program that had run on
VAX and PR1ME computers. 

Hope this helps. Rob Ogden, rogden@uceng.uc.edu  129.137.33.1