<div dir="ltr">Thanks, Rolf.  And I feel there is a jump from contiguous subarray to non-contiguous subarray.<div><div><br></div><div>For contiguous subarray, such as <br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
<div><div><span style="font-family:arial,sans-serif;font-size:13px">REAL s(100)</span></div></div><div><div>MPI_SEND(s(2:50), 3, dtype, ...) </div></div></blockquote>s only gives the start address. dtype can be anything, e.g., either a basic type or a derived type created by MPI_Type_vector() etc. <div>
<br></div><div><div>For non-contiguous subarray, such as <br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><span style="font-family:arial,sans-serif;font-size:13px">REAL s(100)</span></div>
<div>MPI_SEND(s<span style="font-family:arial,sans-serif;font-size:13px">(1:100:5)</span>, 3, dtype, ...) </div></blockquote></div><div>dtype can only be MPI_REAL. In other words, dtype is kind of redundant here since the type map is actually specified by the subarray. <br>
<div><br></div></div></div></div><div class="gmail_extra"><br clear="all"><div><div dir="ltr">--Junchao Zhang</div></div>
<br><br><div class="gmail_quote">On Tue, May 13, 2014 at 10:20 AM, Rolf Rabenseifner <span dir="ltr"><<a href="mailto:rabenseifner@hlrs.de" target="_blank">rabenseifner@hlrs.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear Junchao,<br>
<br>
MPI-3.0 p25:7-8 describes only communication with language type<br>
of the buffer argument matches to the MPI datatype used<br>
in the datatype argument.<br>
Same p83:36-37.<br>
<br>
Therefore, the answer is no and the compiler cannot detect<br>
a mismatch beteen language buffer specification and<br>
MPI datatype specification.<br>
<br>
I hope my answer could help.<br>
<br>
Best regards<br>
Rolf<br>
<div><div class="h5"><br>
<br>
----- Original Message -----<br>
> From: "Junchao Zhang" <<a href="mailto:jczhang@mcs.anl.gov">jczhang@mcs.anl.gov</a>><br>
> To: "MPI-WG Fortran working group" <<a href="mailto:mpiwg-fortran@lists.mpi-forum.org">mpiwg-fortran@lists.mpi-forum.org</a>><br>
> Sent: Tuesday, May 13, 2014 5:08:30 PM<br>
> Subject: [MPIWG Fortran] Data type of F08 subarray<br>
><br>
><br>
><br>
><br>
> p626 of MPI-3.0 gives such an example<br>
><br>
><br>
> REAL s(100), r(100)<br>
> CALL MPI_Isend(s(1:100:5), 3, MPI_REAL, ..., rq, ierror)<br>
><br>
> All nonblocking MPI functions behave as if the user-specified<br>
> elements of choice buffers are copied to a contiguous scratch buffer<br>
> in the MPI runtime environment. All datatype descriptions (in the<br>
> example above, “3, MPI_REAL”) read and store data from and to this<br>
> virtual contiguous scratch buffer ...<br>
><br>
> Here, data type of s(100) match with MPI_REAL, so everything is fine.<br>
> But I want to know if MPI permits mismatched types, for example, can<br>
> s(100) be an integer array? If the answer is no, then compilers can<br>
> not detect this error ; if yes, then it is hard to implement that.<br>
> To avoid memory copying to a scratch buffer, I want to use MPI<br>
> datatypes. But if I have two types, one is given by the choice<br>
> buffer itself, the other is given by the MPI_Datatype argument, how<br>
> could I do that?<br>
><br>
> Any thoughts?<br>
><br>
> Thanks<br>
><br>
> --Junchao Zhang<br>
</div></div>> _______________________________________________<br>
> mpiwg-fortran mailing list<br>
> <a href="mailto:mpiwg-fortran@lists.mpi-forum.org">mpiwg-fortran@lists.mpi-forum.org</a><br>
> <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</a><br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Dr. Rolf Rabenseifner . . . . . . . . . .. email <a href="mailto:rabenseifner@hlrs.de">rabenseifner@hlrs.de</a><br>
High Performance Computing Center (HLRS) . phone <a href="tel:%2B%2B49%280%29711%2F685-65530" value="+4971168565530">++49(0)711/685-65530</a><br>
University of Stuttgart . . . . . . . . .. fax <a href="tel:%2B%2B49%280%29711%20%2F%20685-65832" value="+4971168565832">++49(0)711 / 685-65832</a><br>
Head of Dpmt Parallel Computing . . . <a href="http://www.hlrs.de/people/rabenseifner" target="_blank">www.hlrs.de/people/rabenseifner</a><br>
Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307)<br>
_______________________________________________<br>
mpiwg-fortran mailing list<br>
<a href="mailto:mpiwg-fortran@lists.mpi-forum.org">mpiwg-fortran@lists.mpi-forum.org</a><br>
<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</a></font></span></blockquote></div><br></div>