(j3.2006) (SC22WG5.3699) Comment on N1761
Tue Dec 2 08:45:37 EST 2008
Aleksandar Donev schrieb:
>> call MPI_send(y,size(y)) ! Sequence association
>> 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
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.
More information about the J3