[MPI3 Fortran] Deprecate mpif.h?
N.M. Maclaren
nmm1 at cam.ac.uk
Sun Mar 7 03:36:29 CST 2010
On Mar 6 2010, Rolf Rabenseifner wrote:
>
>I've done a test with assumed-shape and assumed-size formal
>arguments as buffer and using a strided actual argument when calling the
>routine (e.g. MPI_IRECV).
>
>With assumed-size, the compiler did call-by-in-and-out-copy,
>with assumed-shape, the compiler did call-by-reference.
>
>To overcome the restrictions shown in "Problems Due to Data Copying",
>one needs call-by-reference.
Roughly, yes, but PLEASE don't assume that Fortran specifies those two
mechanisms explicitly - there is nothing stopping other ones being used.
>With assumed-shape, we have also assumed-rank (is this correct?)
>and therefore we have to 15 times overload a function with one buffer
>and 225 times with two buffers?
No. The point of assumed-rank is to avoid that.
>And we cannot use our wrappers to current C routines, because now,
>the array descriptor is handed over, and the extracting of
>the data from the strided input must be done by MPI.
Right.
>If the user itself uses additionally a strided datatype handle,
>then both mechanisms must be applied to the unstrided array
>handed over by Fortran to C.
Right.
>Do I miss something?
Not much, that I can see.
>Or is it such complicated?
Yes, regrettably.
>Do we want this implementation effort?
No, but can you see how to avoid it?
Regards,
Nick Maclaren.
More information about the mpiwg-fortran
mailing list