(j3.2006) (SC22WG5.3699) Comment on N1761

Reinhold Bader Reinhold.Bader
Tue Dec 2 08:45:37 EST 2008


Aleksandar Donev schrieb:
> Hi,
>> call MPI_send(y,size(y)) ! Sequence association
>> <----non-conforming?
>> In my opinion, the marked line would be non-conforming even under the
>> additional rules specified by TR29113, since it contravenes p290, para 13
>> of the F2008 draft standard 08-007r2, which disallows matching of actual
>> arguments of arbitrary ranks to the assumed size dummy of rank one *for
>> a generic interface*.
> You are right.
>> If my critique is correct, there are the following choices:
>> * Give up having a generic interface, or use the assumed size only
>>    for 1-d arrays. This would only require correcting the above example.
> This is only an example, so of course one can change it. But ultimately what 
> we want is a facility that can be used with arguments of different ranks. It 
> is not worth sacrificing this just for the generic interface. I guess the 
> user will have to keep track of multiple procedure names instead of a 
> generic.

This will hardly be acceptable to the MPI folks. Note especially that MPI
calls on scalar buffers can not be done in a backward compatible manner at all.

>> * Add an exception to the above-mentioned rule, applying for TYPE(*)
>> arguments  of assumed size.
> I think this is not an acceptable option. The reason for the rank-matching 
> requirement has nothing to do with type matching, so making exception for 
> TYPE(*) only is a hack.

I agree. Isn't it also a hack to enforce rank-matching for assumed-size entities?

  I believe that for DIMENSION(:) this rule
> (p290, para 13) does not and should not apply.

Again, this might give headaches to the MPI people (maybe not as big as the one
mentioned above): Additional C wrapper routines using the extended interop
descriptors would be needed in the MPI interface. This is why they want to
retain passing by address also in the Fortran interface.

> Thanks,
> Aleks


More information about the J3 mailing list