Re: Sun f90 bad optimization for assumed-shape array

From: Robert Corbett (robert.corbett_at_sun.com)
Date: 07/30/04


Date: 29 Jul 2004 18:28:29 -0700

*** Hendrickson <***.hendrickson@att.net> wrote in message news:<Yt8Oc.347678$Gx4.312105@bgtnsc04-news.ops.worldnet.att.net>...

> > So use of an explicit shape array guarantees that a copy of the argument
> > will be made (at least on the compilers I tested, pgf90 5.2, ifort 8.0,
> > and lf95 v6.2 on linux). Is that a Fortran Standard detail or an
> > implementation one?
>
> It's an implementation detail. Nothing in the standard
> requires that a copy of an argument be made. And that
> includes passing vector valued sections. There is one
> (I think) obscure case that effectively disallows passing
> a copy when enough pointers are used.

Which case do you have in mind? The only cases I know where
a copy cannot be used are when the dummy argument is scalar
or is an assumed-shape or deferred-shape array, and some
other conditions apply. I can't think of a case where a
copy of an array actual argument cannot be passed to an
explicit-shape dummy argument.

                                              Sincerely,
                                              Bob Corbett