[MPIWG Fortran] Data type of F08 subarray
Junchao Zhang
jczhang at mcs.anl.gov
Tue May 13 10:08:30 CDT 2014
p626 of MPI-3.0 gives such an example
REAL s(100), r(100)
CALL MPI_Isend(s(1:100:5), 3, MPI_REAL, ..., rq, ierror)
All nonblocking MPI functions behave as if the user-specified elements of
choice buffers are copied to a contiguous scratch buffer in the MPI runtime
environment. All datatype descriptions (in the example above, “3,
MPI_REAL”) read and store data from and to this virtual contiguous scratch
buffer ...
Here, data type of s(100) match with MPI_REAL, so everything is fine. But
I want to know if MPI permits mismatched types, for example, can s(100) be
an integer array? If the answer is no, then compilers can not detect this
error ; if yes, then it is hard to implement that. To avoid memory copying
to a scratch buffer, I want to use MPI datatypes. But if I have two types,
one is given by the choice buffer itself, the other is given by the
MPI_Datatype argument, how could I do that?
Any thoughts?
Thanks
--Junchao Zhang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-fortran/attachments/20140513/692e9ebc/attachment.html>
More information about the mpiwg-fortran
mailing list