Re: [MPIWG Fortran] Another MPI_SIZEOF question
On Jun 10, 2014, at 9:06 AM, William Gropp <[email protected]> wrote:
This naming corresponds to MPI-3 but not to the use in MPI-1 nor to what some users may still want, which is what Jeff is talking about.
There are really two issues at play here: 1. Which MPI interface an application is using: C, Fortran mpif.h, Fortran mpi module, or Fortran mpi_f08 module 2. Which Fortran compiler an application needs Trying to munge these two issues into a single label has led to all kinds of confusion and silly religious debates ...like this one.
In my opinion, the use of "mpif.h" should have been to support existing programs in their existing compilation environments. That might be fixed-format early Fortran, either Fortran 77 or perhaps Fortran 90 or Fortran 95. The goal of MPI-3 should have been to ensure that new programs used the mpi or mpi_f08 modules and that existing programs could continue to be used. That is *not* the situation that we have now.
Fair enough; but note that this has been true since 1996 (MPI_SIZEOF was introduced in MPI 2.0).
As far as I can tell from the requirement that MPI_SIZEOF be supported, mpif.h also requires Fortran 2008 + TS29113, meaning that many legacy MPI programs cannot be compiled with a standard conforming MPI implementation and a Fortran compiler that implements only, say, Fortran 2008 (but not the TS29113, which is *not* part of the standard) or Fortran 2003.
Is 2003 or 2008+TS29113 required for SIZEOF? I have no knowledge of when INTERFACE blocks were added to Fortran. I'm asking this because DIMENSION(..) is *useful* to implement MPI_SIZEOF succinctly/easily, but it is not *required*. Put differently: if 2003/2008+TS is required for MPI_SIZEOF, then MPI-2.0 made a terrible error in defining MPI_SIZEOF. -- Jeff Squyres [email protected] For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
participants (1)
-
Jeff Squyres (jsquyres)