<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Rolf,<div><br></div><div>The problem is that the standard also requires MPI_SIZEOF to be supported by every version of the Fortran interfaces, even mpif.h.  This was *not* the case in MPI-2.  The standard even acknowledges that MPI_SIZEOF requires overloading, and that overloading definition is required in mpif.h . Thus, mpif.h cannot be implemented in a way that supports a Fortran 77 compiler.  </div><div><br></div><div>Jeff, as I noted before, in MPI-2, MPI_SIZEOF was not required for the Fortran "basic" support, thus MPI-2 did not break the existing practice with Fortran 77 compilers and the mpif.h include file (see the beginning of section 10.2.5 in MPI-2).</div><div><br></div><div>And yes, as has been noted for a long time, the MPI-2 definition of Fortran interfaces for the "Extended" Fortran support were impractical within standard Fortran.  So MPI has been working around limitations in the Fortran since the very beginning.  I think all of us are happy to see Fortran evolving to the point where it is possible to implement a library that can move data (this could be a single-core I/O library; it need not be MPI).  That's not the issue.  The issue is deciding that mpif.h is not a way to compile MPI programs with a Fortran compiler that is for Fortran before 2008 + TS29113 but simply a different interface to the one true and only Fortran interface - which isn't even yet standard (since it requires TS29113).</div><div><br></div><div>Bill</div><div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div style="font-size: 12px; ">William Gropp</div><div style="font-size: 12px; ">Director, Parallel Computing Institute</div></div></div></span><span class="Apple-style-span" style="font-size: 12px; ">Thomas M. Siebel Chair in Computer Science</span><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div style="font-size: 12px; ">University of Illinois Urbana-Champaign</div></div><div><br></div></div></span><br class="Apple-interchange-newline"></div></span><br class="Apple-interchange-newline"></span><br class="Apple-interchange-newline">
</div>
<br><div><div>On Jun 10, 2014, at 3:48 PM, Rolf Rabenseifner wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><blockquote type="cite">As far as I can tell from the<br></blockquote><blockquote type="cite">requirement that MPI_SIZEOF be supported, mpif.h also requires<br></blockquote><blockquote type="cite">Fortran 2008 + TS29113, meaning that many legacy MPI programs cannot<br></blockquote><blockquote type="cite">be compiled with a standard conforming MPI implementation and a<br></blockquote><blockquote type="cite">Fortran compiler that implements only, say, Fortran 2008 (but not<br></blockquote><blockquote type="cite">the TS29113, which is *not* part of the standard) or Fortran 2003.<br></blockquote><br>Section 17.1.6 on page 609 "MPI for Different Fortran Standard Versions"<br>tries to define the rules for standard compliant MPI-3.0 with <br>a Fortran 77, 90, 95, 2003, and 2003/2008+TS29113 compiler,<br>i.e., MPI-3.0 can be implemented with the restrictions, <br>e.g., MPI_SUBARRAYS_SUPPORTED needs to be set to .FALSE..<br><br>Rolf <br><br><br><br>----- Original Message -----<br><blockquote type="cite">From: "William Gropp" <<a href="mailto:wgropp@illinois.edu">wgropp@illinois.edu</a>><br></blockquote><blockquote type="cite">To: "MPI-WG Fortran working group" <<a href="mailto:mpiwg-fortran@lists.mpi-forum.org">mpiwg-fortran@lists.mpi-forum.org</a>><br></blockquote><blockquote type="cite">Sent: Tuesday, June 10, 2014 3:06:08 PM<br></blockquote><blockquote type="cite">Subject: Re: [MPIWG Fortran] Another MPI_SIZEOF question<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">This naming corresponds to MPI-3 but not to the use in MPI-1 nor to<br></blockquote><blockquote type="cite">what some users may still want, which is what Jeff is talking about.<br></blockquote><blockquote type="cite"> <br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">And note: When the original MPI Fortran interface was defined, it was<br></blockquote><blockquote type="cite">known not to be standard conformant - in fact, I raised that issue<br></blockquote><blockquote type="cite">and raised a straw man alternative that was not accepted by the MPI<br></blockquote><blockquote type="cite">Forum.  The fact at the time was that it was widely recognized that<br></blockquote><blockquote type="cite">Fortran's (meaning Fortran 77) strict rules with the absence of any<br></blockquote><blockquote type="cite">escape combined with no real general data mechanism, needed by many<br></blockquote><blockquote type="cite">different libraries, not just MPI, made the type checking rules<br></blockquote><blockquote type="cite">impractical, and virtually no compiler of the time implemented this<br></blockquote><blockquote type="cite">check (the only one I knew of was WATFOR, and you could turn it<br></blockquote><blockquote type="cite">off). <br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Despite this, many applications were written using Fortran.  Those<br></blockquote><blockquote type="cite">applications in practice, despite not conforming to the letter of<br></blockquote><blockquote type="cite">the standard, were portable and contributed to the success of MPI.<br></blockquote><blockquote type="cite"> I don't find comments about "MPI never supported Fortran" to be<br></blockquote><blockquote type="cite">useful, even if they are technically true.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">In my opinion, the use of "mpif.h" should have been to support<br></blockquote><blockquote type="cite">existing programs in their existing compilation environments.  That<br></blockquote><blockquote type="cite">might be fixed-format early Fortran, either Fortran 77 or perhaps<br></blockquote><blockquote type="cite">Fortran 90 or Fortran 95. The goal of MPI-3 should have been to<br></blockquote><blockquote type="cite">ensure that new programs used the mpi or mpi_f08 modules and that<br></blockquote><blockquote type="cite">existing programs could continue to be used.  That is *not* the<br></blockquote><blockquote type="cite">situation that we have now.   As far as I can tell from the<br></blockquote><blockquote type="cite">requirement that MPI_SIZEOF be supported, mpif.h also requires<br></blockquote><blockquote type="cite">Fortran 2008 + TS29113, meaning that many legacy MPI programs cannot<br></blockquote><blockquote type="cite">be compiled with a standard conforming MPI implementation and a<br></blockquote><blockquote type="cite">Fortran compiler that implements only, say, Fortran 2008 (but not<br></blockquote><blockquote type="cite">the TS29113, which is *not* part of the standard) or Fortran 2003.  <br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Bill<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">William Gropp<br></blockquote><blockquote type="cite">Director, Parallel Computing Institute Thomas M. Siebel Chair in<br></blockquote><blockquote type="cite">Computer Science<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">University of Illinois Urbana-Champaign<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">On Jun 10, 2014, at 2:44 PM, Jeff Squyres (jsquyres) wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">On Jun 10, 2014, at 8:35 AM, Jeff Hammond < <a href="mailto:jeff.science@gmail.com">jeff.science@gmail.com</a> ><br></blockquote><blockquote type="cite">wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">What shorthand will you permit for what is meant when Bill and I<br></blockquote><blockquote type="cite">refer<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">to Fortran 77 support in MPI that distinguishes it from F90 and F08<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">module support?<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">I usually say "the mpif.h interface", "the (Fortran) mpi module", and<br></blockquote><blockquote type="cite">"the mpi_f08 module".  Indeed, I have renamed the "ompi/mpi/f77" and<br></blockquote><blockquote type="cite">"ompi/mpi/f90" directories from previous versions of OMPI to<br></blockquote><blockquote type="cite">"ompi/mpi/fortran/mpifh" and "ompi/mpi/fortran/use-mpi".  <br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Meaning: I have seen the error of my ways and corrected myself.  You<br></blockquote><blockquote type="cite">can, too.  :-)<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">--<br></blockquote><blockquote type="cite">Jeff Squyres<br></blockquote><blockquote type="cite"><a href="mailto:jsquyres@cisco.com">jsquyres@cisco.com</a><br></blockquote><blockquote type="cite">For corporate legal information go to:<br></blockquote><blockquote type="cite"><a href="http://www.cisco.com/web/about/doing_business/legal/cri/">http://www.cisco.com/web/about/doing_business/legal/cri/</a><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">mpiwg-fortran mailing list<br></blockquote><blockquote type="cite"><a href="mailto:mpiwg-fortran@lists.mpi-forum.org">mpiwg-fortran@lists.mpi-forum.org</a><br></blockquote><blockquote type="cite"><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</a><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">mpiwg-fortran mailing list<br></blockquote><blockquote type="cite"><a href="mailto:mpiwg-fortran@lists.mpi-forum.org">mpiwg-fortran@lists.mpi-forum.org</a><br></blockquote><blockquote type="cite"><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</a><br></blockquote><br>-- <br>Dr. Rolf Rabenseifner . . . . . . . . . .. email <a href="mailto:rabenseifner@hlrs.de">rabenseifner@hlrs.de</a><br>High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530<br>University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832<br>Head of Dpmt Parallel Computing . . . <a href="http://www.hlrs.de/people/rabenseifner">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>http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</div></blockquote></div><br></div></body></html>