That certainly was not my understanding - I expected that these would be defined only for F08, allowing code in F08 to move status data to/from the integer status array for the prior Fortran bindings. I am in favor of clarifying the standard to make this clear.

Bill

William Gropp
Director and Chief Scientist, NCSA
Thomas M. Siebel Chair in Computer Science
University of Illinois Urbana-Champaign






On Jul 9, 2020, at 7:54 PM, Jeff Squyres (jsquyres) via mpiwg-fortran <mpiwg-fortran@lists.mpi-forum.org> wrote:

MPI-3.1 Figure 17.1 (in section 17.2.5, starting on page 656) defines the following routines:

1. MPI_Status_c2f() (from MPI-2)
2. MPI_Status_f2c() (from MPI-2)
3. MPI_Status_c2f08() (new in MPI-3)
4. MPI_Status_f082c() (new in MPI-3)
5. MPI_Status_f2f08() (new in MPI-3)
6. MPI_Status_f082f() (new in MPI-3)

All of the functions are fairly straightforward to implement in C.

But per the bottom part of Figure 17.1, two of the routines are supposed to be implemented in Fortran: #5 and #6.

Does this mean that TYPE(MPI_Status) needs to be defined in mpif.h and the mpi module?

I'm not sure how an MPI application would be able to invoke functions #5 and #6 without a definition of TYPE(MPI_Status) -- or even have a variable of that type that they need to convert to INTEGER(MPI_STATUS_SIZE).

--
Jeff Squyres
jsquyres@cisco.com

_______________________________________________
mpiwg-fortran mailing list
mpiwg-fortran@lists.mpi-forum.org
https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran