<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Hi Matt,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
Are you able to test `<code>use mpi_f08</code>` instead? We'll open an issue to track this for "use mpi". In the meantime, you may be able to bypass this issue by adding the `-fallow-argument-mismatch<code> flag to mpifort</code>​.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
Hui<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Thompson, Matt (GSFC-610.1)[SCIENCE SYSTEMS AND APPLICATIONS INC] via discuss <discuss@mpich.org><br>
<b>Sent:</b> Friday, September 22, 2023 9:11 AM<br>
<b>To:</b> discuss@mpich.org <discuss@mpich.org><br>
<b>Cc:</b> Thompson, Matt (GSFC-610.1)[SCIENCE SYSTEMS AND APPLICATIONS INC] <matthew.thompson@nasa.gov><br>
<b>Subject:</b> [mpich-discuss] MPI_alloc_mem call code compiles with Open MPI, not MPICH</font>
<div> </div>
</div>
<style>
<!--
@font-face
        {font-family:"Cambria Math"}
@font-face
        {font-family:Calibri}
@font-face
        {font-family:Consolas}
@font-face
        {}
p.x_MsoNormal, li.x_MsoNormal, div.x_MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif}
span.x_EmailStyle17
        {font-family:Consolas;
        color:windowtext;
        font-weight:normal;
        font-style:normal}
.x_MsoChpDefault
        {font-family:"Calibri",sans-serif}
@page WordSection1
        {margin:1.0in 1.0in 1.0in 1.0in}
div.x_WordSection1
        {}
-->
</style>
<div lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="x_WordSection1">
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">All,</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">I'm sort of new to MPICH and I'm encountering one call that works with Open MPI but not MPICH. As such, I'm wondering if I built MPICH incorrectly or incompletely (always easy to miss
 a configure flag!).</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">To wit, I have a code like:</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">program main</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">   use mpi</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">   use iso_fortran_env, only: INT64</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">   use iso_c_binding, only: C_PTR</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">   integer(kind=INT64) :: sz</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">   type (c_ptr) :: ptr</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">   call MPI_Alloc_mem(sz, MPI_INFO_NULL, ptr, ierror)</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">end program main</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">If I compile with GCC 12.1 + Open MPI 4.1.3, all is well:</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">$ mpifort --showme:version</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">mpifort: Open MPI 4.1.3 (Language: Fortran)</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">mathomp4@discover23 ~/MPITests/CPtr master ?25</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">$ mpifort support_for_mpi_alloc_mem_cptr.F90</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">mathomp4@discover23 ~/MPITests/CPtr master ?25</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">$ echo $?</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">0</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">I'll also say Intel MPI builds this code as well.</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">But with MPICH 4.1.2 I just built:</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">$ mpifort support_for_mpi_alloc_mem_cptr.F90</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">support_for_mpi_alloc_mem_cptr.F90:9:53:</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">    9 |    call MPI_Alloc_mem(sz, MPI_INFO_NULL, ptr, ierror)</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">      |                                                     1</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">Error: Type mismatch in argument 'baseptr' at (1); passed TYPE(c_ptr) to INTEGER(8)</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">Now, my configure lines to Open MPI and MPICH are pretty boring, so the resulting mpiforts are as well:</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">$ mpifort -show</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">gfortran -I/discover/swdev/gmao_SIteam/MPI/openmpi/4.1.3/gcc-12.1.0/include -pthread -I/discover/swdev/gmao_SIteam/MPI/openmpi/4.1.3/gcc-12.1.0/lib -L/discover/swdev/gmao_SIteam/MPI/openmpi/4.1.3/gcc-12.1.0/lib
 -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">$ mpifort -show</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">gfortran -I/discover/swdev/gmao_SIteam/MPI/mpich/4.1.2/gcc-12.1.0/include -I/discover/swdev/gmao_SIteam/MPI/mpich/4.1.2/gcc-12.1.0/include -L/discover/swdev/gmao_SIteam/MPI/mpich/4.1.2/gcc-12.1.0/lib
 -lmpifort -Wl,-rpath -Wl,/discover/swdev/gmao_SIteam/MPI/mpich/4.1.2/gcc-12.1.0/lib -Wl,--enable-new-dtags -lmpi</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">But I see Open MPI has that "mpi_usempi_ignore_tkr", is it possible that's what is doing it?</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">Perhaps we just need to recode the code (using transfer, etc?)</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"> </span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">Thanks for any help,</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">Matt</span></p>
<div>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">--</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">Matt Thompson, SSAI, Sr Scientific Programmer/Analyst</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">NASA GSFC,    Global Modeling and Assimilation Office</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">Code 610.1,  8800 Greenbelt Rd,  Greenbelt,  MD 20771</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas">Phone: 301-614-6712                 Fax: 301-614-6246</span></p>
<p class="x_MsoNormal"><span style="font-size:12.0pt; font-family:Consolas"><a href="http://science.gsfc.nasa.gov/sed/bio/matthew.thompson"><span style="color:#0563C1">http://science.gsfc.nasa.gov/sed/bio/matthew.thompson</span></a></span></p>
</div>
</div>
</div>
</body>
</html>