Re: AMD/Linux vs Intel/Microsoft

From: glen herrmannsfeldt (gah_at_ugcs.caltech.edu)
Date: 01/25/04


Date: Sun, 25 Jan 2004 21:56:32 GMT

Greg Lindahl wrote:

> In article <4013DEE8.2E6D1042@sympaticoREMOVE.ca>,
> Eric <eric_pattison@sympaticoREMOVE.ca> wrote:

>>2) VMS Fortran was mostly recursively reentrant. IBM Fortran was not.
>> Many Fortran IO statements included function calls which themselves
>> used IO statements. Worked fine on VMS, not on IBM.
>> Lots of rewrite for this one.

> The Fortran standard says the IBM way is right. Non-standard programs
> are often painful to port, especially when the problem can only be
> caught at run-time, not compile-time.

A common implementation of Fortran I/O statements is one call to start
the operation and supply the unit number and FORMAT information, one
for each variable or array in the I/O list, and one to end. With an
implementation like that, a function in the I/O list, such as an
array subscript expression, gets called in the middle of the I/O
operation.

The programs may be recursive and reentrant, but as they save state
(unit and FORMAT information) things get very confused if they
are used that way.

Note that F66 has a very restricted set of allowed expressions in
subscripts, but lifting this restriction was a common extension.

-- glen