<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">MPICH’s `use mpi` module does not define function interfaces. Functions such as `MPI_Send` and `MPI_Bcast` are directly linked to the C symbols. Fortran 90 used to have very poor support for “choice buffers”, which probably resulted in
 the decision not to define the function interface in our legacy “use mpi” module. We recommend to try “use mpi_f08” instead. The `mpi_f08` interface has the full interface defined and adopts the C interoperability features.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal">-- <br>
Hui Zhou<o:p></o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in">
<b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">Brian Dobbins via discuss <discuss@mpich.org><br>
<b>Date: </b>Tuesday, June 1, 2021 at 7:53 PM<br>
<b>To: </b>discuss@mpich.org <discuss@mpich.org><br>
<b>Cc: </b>Brian Dobbins <bdobbins@gmail.com><br>
<b>Subject: </b>[mpich-discuss] Q: Why doesn't "use mpi, only : mpi_bcast" (or similar) work in MPICH?<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">Hi all,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">  I figure this is one of those things in the standard, but I figured I'd get a better explanation asking here than digging through that myself.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">  Long story short, if I try the following code:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><i><span style="font-family:"Courier New"">program foo</span></i><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><i><span style="font-family:"Courier New"">  use mpi, only: mpi_bcast</span></i><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><i><span style="font-family:"Courier New"">end program foo</span></i><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">  ... This fails to compile in MPICH (3.4.2, at least), IntelMPI and MVAPICH, but
<i>does</i> work on OpenMPI and SGI MPT, at least on systems I've tried.  Replacing the 'use, only' with just a 'use' directive works fine.  And MPI_BCAST is just an example here; things like 'MPI_Finalize' and 'MPI_Integer' appear to be in the module, but
 MPI_Send also fails.  Is this a scenario where the standard doesn't support this, but OpenMPI and MPT do it as a matter of convenience vs strict adherence found in the MPICH-based libraries?  Or am I missing some simple issue?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">  Any insight would be greatly appreciated!<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">  Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">  - Brian<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
</div>
</div>
</div>
</body>
</html>