[MPI3 Fortran] MPI Fortran bindings
steve.lionel at intel.com
Fri Jun 5 14:16:22 CDT 2009
>> To the MPI-using programmer, it tells them what to put in their
>What more does it tell them than is there already in MPI 1?
Not much of anything, really, if we choose not to go the C_PTR route. I think it would be nice, at least, to show the interface in Fortran 90 style with INTENT, even if it doesn't add much value to the F77 programmer.
> For example, assume the actual is a polymorphic array:
> CLASS(*), DIMENSION(:), ... :: x ! Could be dummy or allocatable
> CALL MPI_...(buffer=x, ...)
> What does your proposed interface tell the programmer about this case?
Just the interface alone, with the placeholder, doesn't say much. I suppose words would have to be added saying that the argument must have a defined type. That the actual is assumed-shape raises the spectre of non-contiguity, but we have that already. The way it would be declared in the actual interface block would not allow a CLASS(*) actual except within a SELECT TYPE block.
> You, for example, proposed:
> <type>, dimension(*), intent(IN) :: BUF
> That does not allow a scalar actual, unless it is an element of an array
> (in which case it means something else than passing the scalar itself).
> Is this the agreed intention?
I am not an MPI programmer - I don't know if passing scalars is something people would expect to be able to do. It can be handled with a generic if that is required.
More information about the mpiwg-fortran