[comp.lang.fortran] Fortran 88 statement function query

sjc@key.COM (Steve Correll) (11/12/89)

Fortran 77 section 15.4.3 prohibits a statement function from altering its
dummy arguments by passing them as actual arguments to an external function
invocation.  Fortran 88 version 112 section 12.5.4 omits the prohibition. It
does use the word "value" in a fashion that might be intended to mean the same
thing, except that "call by value" is not a concept defined in these standards,
and even so, "call by value" is not the same as being prohibited from altering
the argument.

Without the prohibition, legal Fortran 77 programs would still conform, but
certain compiler optimizations would no longer be legal.

Have I overlooked the prohibition somewhere in Fortran 88? If not, can somebody
from X3J3 tell me whether 12.5.4 is meant to sustain the prohibition, or
whether it was deliberately omitted? Thanks.
-- 
...{sun,pyramid}!pacbell!key!sjc 				Steve Correll

hirchert@uxe.cso.uiuc.edu (11/14/89)

>Have I overlooked the prohibition somewhere in Fortran 88? If not, can somebody
>from X3J3 tell me whether 12.5.4 is meant to sustain the prohibition, or
>whether it was deliberately omitted? Thanks.

There was definitely not intent to remove this prohibition.  It is unclear
whether 12.5.4 is sufficient to sustain the prohibition, or whether the
FORTRAN 77 prohibition was overlooked when 12.5.4 was written.  If you're
writing a public comment letter, I suggest pointing out this problem in it.
(I've written a note to myself to mention it in mine, but I'm in the middle of
changing offices, so there's no guarantee that I will be able to find that
note when it comes time to write my letter.)

Kurt W. Hirchert     hirchert@ncsa.uiuc.edu
National Center for Supercomputing Applications