[MPIWG Fortran] MPI_SIZEOF: Errata required (was: Another MPI_SIZEOF question)

Jeff Squyres (jsquyres) jsquyres at cisco.com
Wed Jun 11 15:18:49 CDT 2014


On Jun 11, 2014, at 4:07 PM, "Jeff Squyres (jsquyres)" <jsquyres at cisco.com> wrote:

> I open to suggestions.
> 
> 1. One obvious possibility is to re-instate "extended Fortran support"-like language, a la MPI-2.2.  This does not make it possible to have MPI_SIZEOF in mpif.h, however, so I don't think it really solves the problem.
> 
> 2. Another possibility is to say that MPI_SIZEOF is only available in the mpi and mpi_f08 modules (e.g., add an exception in MPI-3.x 17.1.4 saying that MPI_SIZEOF support is excluded from mpif.h).  Per Bill Gropp's email (http://lists.mpi-forum.org/mpiwg-fortran/2014/06/1572.php), we'll actually have to add exceptions / remove references to overloading for all mpif.h cases -- not just MPI_SIZEOF.


I accidentally hit "send" before adding:

3. Bill Gropp's suggestion (http://lists.mpi-forum.org/mpiwg-fortran/2014/06/1592.php) of removing "Fortran 77" support entirely.

I'm not a big fan of effectively removing support for older Fortran compilers in a point release of MPI (i.e., 3.1 -- 4.0 might be a better candidate for this).  But I acknowledge Bill's warning (the "As an alternative..." paragraph is the above-cited email) about selectively editing the text to allow "Fortran 77" compilers.

Indeed, the problem is more insidious than we initially thought -- because it's not just "Fortran 77" codes that are affected, but any source.f code, because it will likely invoke compiler defaults that will preclude using INTERFACE blocks and other modern Fortran constructs.  

Hence, mpif.h really is stuck in the past.  It is possible that the only reasonable solution is to make mpif.h safe for source.f-like behavior, and then deprecate mpif.h in MPI-4.0.

-- 
Jeff Squyres
jsquyres at cisco.com
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/




More information about the mpiwg-fortran mailing list