On 5/5/20 12:09 AM,
robin....@gmail.com wrote:
> On Tuesday, May 5, 2020 at 3:51:39 AM UTC+10, Ron Shepard wrote:
>> On 5/3/20 8:01 PM, t......@antispam.ham wrote:
>>> How many Fortran courses actually taught the standard, as opposed to
>>> whatever the compiler at hand would accept?
>>
>> I had the same first experiences with fortran. Especially with pre-f77
>> fortran, the standard language was simply too restrictive and too
>> primitive to do many things that were necessary.
>
> Nonsense.
Where is your evidence?
>
>> Yes, you could write
>> some small simple programs entirely within the standard, but anything
>> beyond that required nonstandard intrinsic functions and nonstandard
>> syntax.
>
> Rubbish.
Evidence?
>
>> Pre-f77 fortran did not allow query of command line options,
>
> True, but who needed it?
Enough people so that it was a common vendor-specific extension.
>
>> it did not support any kind of character or character strings,
>
> Character strings were provided via Hollerith constants, otherwise
> how could you write out headings etc?
Mostly that was done with hollerith strings in format statements, not
with variables initialized with hollerith data statements.
>
> Portable character handling was possible pre-FORTRAN 77.
Hollerith strings made it possible, but it was not portable, much less
efficient. Even simple things, such as the number of characters in the
character set, or the number of those characters that could be stored in
each integer, or the order of the characters within each integer was
different from machine to machine. And if you actually did operations on
the characters, such as comparisons for ranges or incrementing to the
next character in a sequence, or converting between upper and lower
case, then the underlying character set caused portability issues. Not
all of that was due to limitations in the fortran standard, but it all
added to the difficulty of writing portable programs in pre-f77 fortran.
f77 made a big difference in all of that, it actually was practical to
write portable character processing code in f77.
>> you could not query for the date or time,
>
> True. But the operating system provided printed evidence of that.
The need for this was sufficient for every vendor to supply their own
nonportable extension. One often needed to do more with the date and
time than just print it, for example, the ability to time a section of
code in order to assess efficiency or to choose between different
algorithms for different data sets.
>> there were no bit operators,
>
> You could write your own.
In portable fortran? If not, then your statement is irrelevant.
Again, every vendor provided their own nonportable extensions for bit
operators. Fortran itself would not provide this until f90.
>
>> no namelist i/o,
>
> You can use ordinary READ and WRITE statements for that.
Again, every vendor provided their own nonportable extension for
namelist i/o. This would become standard in f90.
>
>> no implicit none, no double precision complex,
>
> You can do double precision complex operations using DOUBLE PRECISION (real).
Yet again, every vendor provided double precision complex as an extension.
>
>> and on and on. Even
>> after f77, which included character variables, many of these other
>> things persisted. All of those standard libraries that everyone used
>> back then (eispak, linpack, and later lapack)
>
> IBM, at least, provided the large library: "Scientific
> Subroutine Package", from 1966 and probably earlier for
> pre-S/360 machines.
A vendor-specific library does not provide portability to other machines.
> The ACM also published many scientific subroutines.
> Numerical algorithms were published in book form:
> Reinsch & Wilkinson, Handbook for Automatic Computation: Linear
> Algegra", vol II, 1971.
>
>> that used Z* as the
>> convention for complex*16 did so with compiler extensions.
>
> Again, you can do double precision complex operations
> using DOUBLE PRECISION (real).
Yet, that is not how those libraries were written. They all used the
common vendor extensions to provide double precision complex. An
exception to this general trend was that many fft routines were written
with just real arithmetic; that is because in that particular case the
real and imaginary operations naturally separate.
$.02 -Ron Shepard