> On 10/3/19 10:01 PM, Thomas Koenig wrote:
>> If you use a slightly newer version, the error message will become
>> 420 | CALL SCOPY( N, D, 1, WORK( IETGK ), 2 )
>> | 2
>> 777 | CALL SCOPY( N*2, Z( 1,I ), 1, WORK, 1 )
>> | 1
>> Fehler: Rank mismatch between actual argument at (1) and actual
>> argument at (2) (scalar and rank-1)
>> This is a violation of the Fortran standard by the Lapack code.
>> To allow this idiom, you can add the -fallow-argument-mismatch
>> argument to the OPTS variable in make.inc before building.
> For simplicity I use the wording in the Fortran 77 Standard - I don't
> think subsequent Standards changed this or made it obsolescent.
> 220.127.116.11 Arrays as Dummy Arguments
> Within a program unit, the array declarator given for an array provides
> all array declarator information needed for the array in an execution of
> the program unit. The number and size of dimensions in an actual
> argument array declarator may be different from the number and size of
> the dimensions in an associated dummy argument array declarator.
> A dummy argument that is an array may be associated with an actual
> argument that is an array, array element, or array element substring.
> Of course, you need to read much more of the F77 Standard to find the
> definitions of all these terms, but I think the last line quoted
> actually *allows* passing WORK( IETGK ) as an actual argument associated
> with an array dummy argument.
I wonder if this is still valid, and if the change (if any) is intentional.
From F18, 18.104.22.168 Ordinary dummy variables
14 If the actual argument is a noncoindexed scalar, the
corresponding dummy argument shall be scalar unless the actual
argument is default character, of type character with the
C character kind (18.2.2), or is an element or substring of an
element of an array that is not an assumed-shape, pointer, or
polymorphic array, the dummy argument has assumed-rank, or the
dummy argument is an assumed-type assumed-size array.
Hm, I think you're right. I will submit a patch which corrects this.