<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Adding something to the MPI_Status_f2f08/f082f bindings to specify these are only for the MPI module is a good idea.<div class=""><br class=""></div><div class="">Bill</div><div class=""><br class=""><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">William Gropp<br class="">Director and Chief Scientist, NCSA<br class="">Thomas M. Siebel Chair in Computer Science<br class="">University of Illinois Urbana-Champaign</div><br class="Apple-interchange-newline"></div></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<div><br class=""><blockquote type="cite" class=""><div class="">On Jul 16, 2020, at 9:19 AM, Jeff Squyres (jsquyres) via mpiwg-fortran <<a href="mailto:mpiwg-fortran@lists.mpi-forum.org" class="">mpiwg-fortran@lists.mpi-forum.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Thanks Rolf, Hubert, and Bill.  It all makes sense.<br class=""><br class="">Rolf has proposed that we add the following at the end of the sentence on MPI-3.1 p657 line 11:<br class=""><br class="">    (only in the mpi_f08 and mpi modules)<br class=""><br class="">This sounds reasonable to me, but do we need some additional annotation in the MPI_Status_f2f08 and _f082f bindings to indicate that the all-caps Fortran binding is only for the mpi module, and not mpif.h?<br class=""><br class=""><br class=""><br class=""><blockquote type="cite" class="">On Jul 15, 2020, at 3:08 PM, Rolf Rabenseifner via mpiwg-fortran <<a href="mailto:mpiwg-fortran@lists.mpi-forum.org" class="">mpiwg-fortran@lists.mpi-forum.org</a>> wrote:<br class=""><br class="">Dear Hubert and Jeff,<br class=""><br class=""><blockquote type="cite" class="">Ø I'm a little curious as to why we conspicuously left it out of mpif.h.<br class=""></blockquote><br class="">I expect, we didn't want that mpif.h must include the overloading <br class="">of the operators .NE. and .EQ. for all TYPE(MPI_....).<br class="">I'm not sure whether such declaration is allowed outside of a module.<br class=""><br class="">The use of mpif.h was already deprecated, i.e., if somebody<br class="">wants to use mpi_f08 stuff in old code, he or she must <br class="">first substitute the include mpif.h by use mpi.<br class=""><br class=""><blockquote type="cite" class="">... But it was never intended that the programmer<br class="">does this transformation within the old Fortran subroutine (and old Fortran 77<br class="">compiler or using Fortran 77 language kind wouldn’t support Type(MPI_Status) in<br class="">mpif.h).<br class=""></blockquote><br class="">It was intended that you can convert from old INTEGER variable or array<br class="">to new TYPE(MPI_...) within source code using the mpi module<br class="">or using the mpi_f08 module.<br class=""><br class="">But we excluded mpif.h because it need not to provide compile-time<br class="">argument checking and it use is therefore "strongly discouraged".<br class="">Why should we add something to this "strongly discouraged" mpif.h<br class="">area. <br class=""><br class="">And, to add it in a later version of MPI is simple. To remove it later<br class="">is not backward compatible. This may be another reason for not<br class="">adding it to mpif.h <br class=""><br class="">Best regards<br class="">Rolf<br class=""><br class="">----- Original Message -----<br class=""><blockquote type="cite" class="">From: "MPI-WG Fortran working group" <<a href="mailto:mpiwg-fortran@lists.mpi-forum.org" class="">mpiwg-fortran@lists.mpi-forum.org</a>><br class="">To: "MPI-WG Fortran working group" <<a href="mailto:mpiwg-fortran@lists.mpi-forum.org" class="">mpiwg-fortran@lists.mpi-forum.org</a>><br class="">Cc: "Hubert Ritzdorf" <<a href="mailto:Hubert.Ritzdorf@EMEA.NEC.COM" class="">Hubert.Ritzdorf@EMEA.NEC.COM</a>><br class="">Sent: Wednesday, July 15, 2020 6:15:58 PM<br class="">Subject: Re: [MPIWG Fortran] Question about MPI_Status_f2f08() and _f082f()<br class=""></blockquote><br class=""><blockquote type="cite" class="">Ø I'm a little curious as to why we conspicuously left it out of mpif.h.<br class=""><br class=""><br class=""><br class="">When I remember correctly, MPI_Status_f2f08() and _f082f() subroutines were for<br class="">a smooth transition from Fortran 77 to Fortran 08.<br class=""><br class="">I.e. if a programmer has changed some functions from old Fortran to Fortran 08<br class="">and uses other libraries or subroutines which still use the old Fortran status<br class="">as input or output argument, it was possible to transfer the old Fortran status<br class="">within the Fortran 08 subroutine. But it was never intended that the programmer<br class="">does this transformation within the old Fortran subroutine (and old Fortran 77<br class="">compiler or using Fortran 77 language kind wouldn’t support Type(MPI_Status) in<br class="">mpif.h).<br class=""><br class=""><br class=""><br class="">Hubert<br class=""><br class=""><br class=""><br class=""><br class="">From: mpiwg-fortran [<a href="mailto:mpiwg-fortran-bounces@lists.mpi-forum.org" class="">mailto:mpiwg-fortran-bounces@lists.mpi-forum.org</a>] On Behalf<br class="">Of Jeff Squyres (jsquyres) via mpiwg-fortran<br class="">Sent: Wednesday, July 15, 2020 5:26 PM<br class="">To: MPI Fortran WG <<a href="mailto:mpiwg-fortran@lists.mpi-forum.org" class="">mpiwg-fortran@lists.mpi-forum.org</a>><br class="">Cc: Jeff Squyres (jsquyres) <<a href="mailto:jsquyres@cisco.com" class="">jsquyres@cisco.com</a>><br class="">Subject: Re: [MPIWG Fortran] Question about MPI_Status_f2f08() and _f082f()<br class=""><br class=""><br class=""><br class=""><br class="">Just to bring this thread back on-track about TYPE(MPI_Status)...<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">Off list, I asked Rolf R. about this issue -- he cited the same things I did,<br class="">plus a few more:<br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class="">On your question on TYPE(MPI_Status), TYPE(MPI_Comm), ...:<br class=""><br class=""><br class="">MPI-3.1<br class=""><br class=""><br class="">- page 607 lines 18-24 require these types and the overloaded<br class=""><br class=""><br class="">operators .EQ./.NE. for mpi_f08 module<br class=""><br class=""><br class="">- page 609 lines 34-36 require these types and the overloaded<br class=""><br class=""><br class="">operators .EQ./.NE. for mpi module<br class=""><br class=""><br class="">- there is no such text on page 611-612 on mpif.h<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">And page 802 lines 9-15 also Show that it was never intented to add<br class=""><br class=""><br class="">These types anf routines to old mpif.h.<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">It would be helpful, to add at least on page 657 line 11<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">C, some in both C and Fortran (only in the mpi_f08 and mpi modules).<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">Can you fix this with an one-vote-bug-fix-issue?<br class=""><br class=""><br class="">Because it is not good if the information must be taken from the change-log.<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">---<br class=""><br class=""><br class="">Summary:<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">Does this mean that TYPE(MPI_Status)<br class=""><br class=""><br class="">[ and the Fortran routines MPI_STATUS_F2F08 and _F082F ]<br class=""><br class=""><br class="">needs to be defined in<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">- mpif.h? NO<br class=""><br class=""><br class="">- and the mpi module? YES<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">Bug-fix needed in MPI-3.1 page 657 line 11: add<br class=""><br class=""><br class="">"(only in the mpi_f08 and mpi modules)" at the end.<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">I hope this helps.<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">Best regards<br class=""><br class=""><br class="">Rolf<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">So I think there's at least a clarification here: the TYPE(MPI_Status) and<br class="">associated functions is -- at a minimum -- supposed to be in the mpi module.<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">I'm a little curious as to why we conspicuously left it out of mpif.h.<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">Bill: this is somewhat counter to the clarification you proposed.<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">Are you ok with this? I think the text in the standard supports what Rolf<br class="">proposes.<br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class="">On Jul 10, 2020, at 12:11 PM, Jeff Squyres (jsquyres) via mpiwg-fortran < [<br class=""><a href="mailto:mpiwg-fortran@lists.mpi-forum.org" class="">mailto:mpiwg-fortran@lists.mpi-forum.org</a> | <a href="mailto:mpiwg-fortran@lists.mpi-forum.org" class="">mpiwg-fortran@lists.mpi-forum.org</a> ]<br class=""><blockquote type="cite" class="">wrote:<br class=""></blockquote><br class=""><br class=""><br class=""><br class=""><br class="">On Jul 10, 2020, at 11:18 AM, Bill Long < [ <a href="mailto:longb@cray.com" class="">mailto:longb@cray.com</a> |<br class=""><a href="mailto:longb@cray.com" class="">longb@cray.com</a> ] > wrote:<br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class="">In the “change” section there is this txt:<br class=""><br class="">• Within the mpi_08 Fortran module, the status was defined as TYPE(MPI_Status).<br class="">Additionally, within both the mpi and the mpi_f08 modules, the constants<br class="">MPI_STATUS_SIZE, MPI_SOURCE, MPI_TAG, MPI_ERROR, and TYPE(MPI_Status) are<br class="">defined. New conversion routines were added: MPI_STATUS_F2F08,<br class="">MPI_STATUS_F082F, MPI_Status_c2f08, and MPI_Status_f082c, In mpi.h, the new<br class="">type MPI_F08_status, and the external variables MPI_F08_STATUS_IGNORE and<br class="">MPI_F08_STATUSES_IGNORE were added.<br class=""><br class=""><br class="">Good point.<br class=""><br class="">Just to be clear, you're referring to the changelog section in MPI-3.1,<br class="">specifically bullet 30 on p802.<br class=""><br class="">That being said:<br class=""><br class="">- the changelog is non-binding ...but it does indicate our intent from that time<br class="">- the changelog text states that the mpi module has TYPE(MPI_Status) -- but it<br class="">does not say it was added to mpif.h<br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class="">1) Why would the F08 status be defined different from the C definition? (If that<br class="">were the case, conversions between f08 and C would be irrelevant).<br class=""><br class=""><br class="">I remember that there was a lot of discussion about this at the time, which is<br class="">what resulted in Figure 17.1.<br class=""><br class="">I know there were discussions about making the F08 and C statuses the same, but<br class="">for some reason we chose not to mandate it. Perhaps we wanted to allow<br class="">implementations to do whatever they wanted...? (e.g., allow Status_c2f08 be a<br class="">no-op if the implementation wanted to, but not mandate it)<br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class="">2) \begin{unpopular} Why are the legacy mpi module and mpif.h still included in<br class="">the spec? These are embarrassingly obsolete. If this was fixed, none of the<br class="">above mentioned conversion routines would be needed. \end(unpopular}<br class=""><br class=""><br class=""><br class="">I would love it if we could ditch -- at a minimum -- mpif.h.<br class=""><br class="">However, there's oodles of legacy code out there that uses it. That's why even<br class="">deprecating it gets shouted down at Forum meetings.<br class=""><br class="">--<br class="">Jeff Squyres<br class="">[ <a href="mailto:jsquyres@cisco.com" class="">mailto:jsquyres@cisco.com</a> | <a href="mailto:jsquyres@cisco.com" class="">jsquyres@cisco.com</a> ]<br class=""><br class="">_______________________________________________<br class="">mpiwg-fortran mailing list<br class="">[ <a href="mailto:mpiwg-fortran@lists.mpi-forum.org" class="">mailto:mpiwg-fortran@lists.mpi-forum.org</a> | <a href="mailto:mpiwg-fortran@lists.mpi-forum.org" class="">mpiwg-fortran@lists.mpi-forum.org</a> ]<br class="">[ <a href="https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran" class="">https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran</a> |<br class=""><a href="https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran" class="">https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran</a> ]<br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class="">--<br class="">Jeff Squyres<br class="">[ <a href="mailto:jsquyres@cisco.com" class="">mailto:jsquyres@cisco.com</a> | <a href="mailto:jsquyres@cisco.com" class="">jsquyres@cisco.com</a> ]<br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class="">Click [<br class=""><a href="https://www.mailcontrol.com/sr/HjGlLo600jvGX2PQPOmvUuToodiywuSOXttD3rcwKg2CvP2Zmks-Y-w2Bv6lGox3acbEaKe314w5W2BPFL9JFA==" class="">https://www.mailcontrol.com/sr/HjGlLo600jvGX2PQPOmvUuToodiywuSOXttD3rcwKg2CvP2Zmks-Y-w2Bv6lGox3acbEaKe314w5W2BPFL9JFA==</a><br class="">|<br class="">here ] to report this email as spam.<br class=""><br class="">_______________________________________________<br class="">mpiwg-fortran mailing list<br class="">mpiwg-fortran@lists.mpi-forum.org<br class="">https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran<br class=""></blockquote><br class="">-- <br class="">Dr. Rolf Rabenseifner . . . . . . . . . .. <a href="mailto:rabenseifner@hlrs.de" class="">email rabenseifner@hlrs.de</a> .<br class="">High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530 .<br class="">University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832 .<br class="">Head of Dpmt Parallel Computing . . . <a href="http://www.hlrs.de/people/rabenseifner" class="">www.hlrs.de/people/rabenseifner</a> .<br class="">Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307) .<br class="">_______________________________________________<br class="">mpiwg-fortran mailing list<br class=""><a href="mailto:mpiwg-fortran@lists.mpi-forum.org" class="">mpiwg-fortran@lists.mpi-forum.org</a><br class="">https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran<br class=""></blockquote><br class=""><br class="">-- <br class="">Jeff Squyres<br class=""><a href="mailto:jsquyres@cisco.com" class="">jsquyres@cisco.com</a><br class=""><br class="">_______________________________________________<br class="">mpiwg-fortran mailing list<br class="">mpiwg-fortran@lists.mpi-forum.org<br class="">https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran<br class=""></div></div></blockquote></div><br class=""></div></body></html>