pr32512 - efficiency of RESHAPE and SPREAD
Janne Blomqvist
blomqvist.janne@gmail.com
Tue Aug 14 13:50:00 GMT 2007
On 8/13/07, Paul Thomas <paulthomas2@wanadoo.fr> wrote:
> Dear All,
>
> In contemplating this excellent suggestion from Jaroslav Hajek, I have
> run into an interesting puzzle.
>
> trans-array.c (gfc_conv_array_transpose) implements a transpose in which
> the operation is entirely performed inline and only acts on the
> descriptor. Jaroslav suggests that we do the same for reshape and spread.
>
> In investigating this, I found the rather wierd and wonderful property
> of gfortran; gfc_conv_array_transpose only works when it is the actual
> argument of something. If I lift this constraint, it still works fine.
>
> Does anybody know why this is so?
The standard say that arrays must be stored in column-major order
(F2003 6.2.2.2, Array element order)? But perhaps we can cheat anyways
and do
b = transpose (a)
by descriptor manipulation if b is a local variable which is not used
as an actual argument, not used in any way that requires sequence
association etc.
--
Janne Blomqvist
More information about the Fortran
mailing list