[MPIWG Fortran] Another MPI_SIZEOF question

Bill Long longb at cray.com
Tue Jun 10 16:42:09 CDT 2014


On Jun 10, 2014, at 3:55 PM, William Gropp <wgropp at illinois.edu> wrote:

> On SIZEOF, the language in the standard for the argument is 
> 
> a Fortran variable of numeric intrinsic type (choice)
> 
> I read this as different from "a *scalar* Fortran variable of numeric intrinsic type (choice)", but I may be interpreting the language too broadly.   My reading is probably intended, however, because the Advice to users says:


My assumption is that arrays are acceptable arguments. 

The problem with treating the argument to MPI_SIZEOF the same was as a choice buffer (using directives like IGNORE_TKR) is that the routine does need to know the TYPE of the argument. 


> 
> 
> If you want an errata, I'd consider this:
> 

I’d be generally in favor of avoiding mention of “Fortran 77”.  The operational issues are only whether mpif.h is still supported, and if it is, whether it is compatible with fixed source form. 

As a practical matter, I don’t know of any vendor that supplies a “Fortran 77” compiler that does not also supply a more modern Fortran compiler - at least F95.  In practice, the “F77” compiler, if it exists at all, is the same compiler as the modern one, except with different default options (for source form, for example).  



> 
> Page 616, line 32.  The following is suspicious: "MPI provides named datatypes corresponding to standard Fortran 77 numeric types:".  Is there a way to describe this that does not refer to Fortran 77?

Just delete the “77”. The list of intrinsic numeric types is the same in F08 as it was in F77. 


Cheers,
Bill

> 
> There are a few other places where Fortran 77 is mentioned, but I think they're ok, if dated.  But as long as mpif.h must contain, for example, any interface blocks, then MPI-3 cannot be used with Fortran 77 and it is incorrect and misleading to suggest otherwise.
> 
> An alternative is to remove all of the functions that were not present in the "basic" Fortran support from the mpif.h module, at least as a requirement.  This route, however, will require a very careful search through the document for other places where there may be requirements that make it impossible to implement against standard-practice Fortran 77 compilers (and given the MPI-3 standard's endorsement of the use of non-standard extensions to permit the newer interfaces to be compiled, lets not argue about whether only fully and strictly Fortran 77 should be considered).  Given both the age and the complexity of the task, I believe a more robust solution is to explicitly drop support for Fortran 77.  It may *also* be necessary to weaken the requirement for MPI_SIZEOF in order to permit any but the most recent Fortran compilers to be used.
> 
> Bill
> 
> William Gropp
> Director, Parallel Computing Institute
> Thomas M. Siebel Chair in Computer Science
> University of Illinois Urbana-Champaign
> 
> 
> 
> 
> 
> On Jun 10, 2014, at 4:41 PM, Jeff Squyres (jsquyres) wrote:
> 
>> On Jun 10, 2014, at 10:10 AM, William Gropp <wgropp at illinois.edu> wrote:
>> 
>>> Jeff, as I noted before, in MPI-2, MPI_SIZEOF was not required for the Fortran "basic" support, thus MPI-2 did not break the existing practice with Fortran 77 compilers and the mpif.h include file (see the beginning of section 10.2.5 in MPI-2).
>> 
>> Sorry, you're right -- you even said this earlier in the thread.  My mistake.
>> 
>>> The issue is deciding that mpif.h is not a way to compile MPI programs with a Fortran compiler that is for Fortran before 2008 + TS29113 but simply a different interface to the one true and only Fortran interface - which isn't even yet standard (since it requires TS29113).
>> 
>> Same question as I asked before: 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*.
>> 
>> -- 
>> Jeff Squyres
>> jsquyres at cisco.com
>> For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
>> 
>> _______________________________________________
>> mpiwg-fortran mailing list
>> mpiwg-fortran at lists.mpi-forum.org
>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran
> 
> _______________________________________________
> mpiwg-fortran mailing list
> mpiwg-fortran at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran

Bill Long                                                                       longb at cray.com
Fortran Technical Suport  &                                  voice:  651-605-9024
Bioinformatics Software Development                     fax:  651-605-9142
Cray Inc./ Cray Plaza, Suite 210/ 380 Jackson St./ St. Paul, MN 55101





More information about the mpiwg-fortran mailing list