[net.micro] MS FORTRAN 3.31 : a question and a flame.

isabel@uw-june (Isabel Domenech) (04/04/86)

Does anybody know how to patch the Microsoft FORTRAN compiler v. 3.2, or the
resulting executable files, so that the presence of a 287 math co-processor is
properly checked at run time?

The check works well on a PC, but on an AT it seems the code always decides
that there is a 287, even when one is not present. As a result the machine
hangs, waiting for the 287 to respond.

I bought the current version (3.31) because it has fixed the problem, but it
is unusable to me right now because Microsoft has decided to change the memory
model and my programs will no longer work.

I wrote a finite element analysis package, which requires big arrays. To avoid
having to create different versions for machines with different memory sizes
(512K, 640K, ...) the programs check the available amount of memory in the
machine at runtime and use it if needed.

This is possible because in version 3.2 the named COMMON blocks are allocated
after everything else and, therefore, the last one may be expanded to the top
of the memory very easily.

But now the last thing allocated is the stack, with the named COMMON blocks
buried somewhere in the middle. Of course, to expand the stack is now a piece
of cake, but what good does it do in FORTRAN?

I suspect that Microsoft wants us to use FORTRAN the same way we would use C,
which in my opinion is not the way to go. Their compiler still has many things
missing from the 77 standard but they seem more interested in adding
non-standard features (C strings, INTERFACE, Attributes (ALIAS, NEAR, HUGE...))
than in supporting the full ANSI standard. What a joke!

Another thing that irks me is that their documentation still shows the old
memory model (Section 10.3.2) and you don't discover the problems until you
either look at the map provided by the linker or notice that a table in one
of the appendices (A.11) contradicts the information presented in much more
detail in the main text.

In summary, I am most unhappy with this product and with the unprofessional
attitude of Microsoft. Anybody looking for a FORTRAN 77 compiler should try
to look elsewhere because Microsoft efforts to support the language do not seem
very serious.

Thanks in advance to anybody that may help me fixing the 287 bug.

                                        Fernando G. Loygorri (isabel@uw-june)

steve@jplgodo.UUCP (Steve Schlaifer x3171 156/224) (04/14/86)

In the reference, the author complains (bitterly :-)) about the microsoft
MSDOS Fortran compiler.  After looking at what was available, we chose the
Lahey Fortran compiler for our use in porting a set of large libraries from
our mainframes to micros.  The main reason we chose Lahey was that it
supported the full F77 ANSI standard not just the subset.  We have since
found fewer bugs in the compiler than the people around here who chose the
Microsoft compiler and what we feel is a much more professional attitude toward
the user.  Take a look and I think you will like it.
-- 

...smeagol\			Steve Schlaifer
......wlbr->!jplgodo!steve	Advance Projects Group, Jet Propulsion Labs
....group3/			4800 Oak Grove Drive, M/S 156/204
				Pasadena, California, 91109
					+1 818 354 3171