From: glen herrmannsfeldt on
mecej4 <mecej4.nyetspam(a)operamail.com> wrote:
(snip, I wrote)

>> The IBM form of unformatted direct access I/O looks like:

>> WRITE ( UNFDAT'IREC ) FREQ, SIG(II),
>> +D1( JJ ), UMVM(II,JJ), D2( JJ ), BMVM(II,JJ)

>> Someone might have missed that apostrophe and replaced
>> it with a comma.

>> The name IREC looks like a record number, not an ASSIGNed
>> format label. The more modern form is:

>> WRITE ( UNFDAT,REC=IREC ) FREQ, SIG(II),
>> +D1( JJ ), UMVM(II,JJ), D2( JJ ), BMVM(II,JJ)

> I cannot find the non-standard version <unitno>'<recno> in my copy of the
> IBM VS Fortran manual of 1982. The closest mention of something like this
> is under LANGLVL(66) FEATURES NOT IN VS FORTRAN,

> . IBM direct-access READ and WRITE

It goes back at least to the OS/360 G and H compilers.

> Is it the case that DEC replicated this non-standard feature into VAX
> Fortran after IBM itself had abandoned it?

Well, VAX came out in about 1977 or 1978, the first compilers,
I believe, being Fortran 66 compilers.

Also on bitsavers is AA-Y868C-TK Fortran-10-20 and VAX compatibility
from 1987.

Fortran-10 is from TOPS-10 on the PDP-10, some years before VAX.

I used direct access I/O on Fortran-10 in 1977, I believe using
Fortran I/O, though possibly using assembly routines. I do
remember that the record locking was done in assembly.
(That was a Fortran port of the BASIC program PCAVES.
It had to do record locking before modifying the file.)

VS Fortran came out pretty late (for a Fortran 77 compiler).
I am not so sure when DEC first implmented this, but it
is likely before IBM removed it.

-- glen
From: glen herrmannsfeldt on
dpb <none(a)non.net> wrote:
(snip)

> Speaking of "blanket substitution" reminds of a _very_ painful episode
> from many years ago -- so long ago that the DEC 10 was near the king of
> the hill and TECO was the editor of choice (the type your name backwards
> w/o punctuation in and see what it does editor :) ).

I remember TECO, though I used SOS on the 10. It wasn't until
later on RT-11 that I used TECO.

> Anyway, had contract to port a large scientific modeling code w/ it's
> 60-bit word to 32-bit IBM machine which necessitated changing all SP
> constants to DP.

You use a 36 bit machine to convert from 60 bit words to 32 bit?

> On the apostrophe for the direct access, I recall using it on VAX some
> but it's been so long I don't recall what other ramifications it may
> have had. I don't remember any bad experiences on that one... :)

It seesm that Fortran-10 had it, but I don't know when.

-- glen
From: Ron Shepard on
In article <huu85b$njl$1(a)speranza.aioe.org>,
glen herrmannsfeldt <gah(a)ugcs.caltech.edu> wrote:

>
> ASSIGN 234 TO I
>
> WRITE(6,I)
> 234 FORMAT(' HI THERE!')
>
> An interesting, though not so needed, feature, it was then
> removed in Fortran 90. I do wonder if it ever got used in
> any production (as opposed to tests like above) programs.

Yes, I used this feature in some of my codes. I have some library
routines that print real arrays in a nice column format, and I used the
assign statement to select which of two or three formats to use (f or e
or g). When f90 compilers started printing out warning messages, I went
back and changed the assign statement to a character variable assignment
to achieve the same result (or maybe I used a pointer assignment, I
forget which now).

The assign statement has some minor advantages over the alternatives,
one of which is that compilers sometimes verify format statements at
compile time for the correct syntax, whereas they seldom do that for
character variables used as formats. So during code development, you
get a little extra help that way.

$.02 -Ron Shepard
From: Richard Maine on
rfengineer55 <rfengineer55(a)aol.com> wrote:

> t's not reasonable to intermix meaningless comments along with helpful
> suggestions, or worse, post a message that, in the case of this board, has
> nothing to do with fortran troubleshooting. but is meaningless
> information...

And quite a lot along the same vein, all of which I might describe as
having nothing to do with Fortran troubleshooting, but being
"meaningless information" minus the information part.

All this extensive complaint in response to a single post by dpb where
he showed exactly how to duplicate the message in question, which is
certainly useful, and he accurately described the ISAM feature being
used and the general process of how to sucessfully deal with the kind of
code in question.

I do not find myself encouraged to post further help in the matter,
imagining that I might get a simillar treatment. After all, I have
usually found myself quite in agreement with dpb's advice, finding it
useful and welcome (just so that is also "on the record")... including
this time.

My pattern recognition sensor has detected one. I think that's enough
from me.

--
Richard Maine | Good judgment comes from experience;
email: last name at domain . net | experience comes from bad judgment.
domain: summertriangle | -- Mark Twain
From: dpb on
glen herrmannsfeldt wrote:
> dpb <none(a)non.net> wrote:
....

>> Anyway, had contract to port a large scientific modeling code w/ it's
>> 60-bit word to 32-bit IBM machine which necessitated changing all SP
>> constants to DP.
>
> You use a 36 bit machine to convert from 60 bit words to 32 bit?

Sure, makes _perfect_ sense, doesn't it... :)

The powers that be decreed the only machine we had access to for the
editing work was the 10. Once that was to the point it would compile we
then did get time of the IBM to debug.

I'll not go into it, but some of the hacks used by the original coders
(one of the "cleanest" was the use of the upper 18 bits of array
indexing variables used as other control bits since the CDC FTN
compilers only used the lower 42 as addresses; others were far worse)
were so arcane to put into the 32 bit machine the conversion, while it
did run and produced comparable results, was so slow as to be
essentially worthless in the end.

--