[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.


>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.


>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?

Nick Maclaren.

More information about the mpiwg-fortran mailing list