MPI for Different Fortran Standard Versions (original) (raw)


PreviousUpNext
Up: Fortran Support Next: Requirements on Fortran Compilers Previous: Interface Specifications, Procedure Names, and the Profiling Interface

This section describes which Fortran interface functionality can be provided for different versions of the Fortran standard.

Only MPI-1.1, MPI-1.2, and MPI-1.3 can be implemented. The use of absolute addresses from MPI_ADDRESS and MPI_BOTTOM may cause problems if an address does not fit into the memory space provided by an INTEGER. (In MPI-2.0 this problem is solved with MPI_GET_ADDRESS, but not for Fortran 77.)

With these features, MPI-1.1 -- MPI-2.2 can be implemented without restrictions. MPI-3.0 can be implemented with some restrictions. The Fortran support methods are abbreviated with S1 = the mpi_f08 module, S2 = the mpi module, and S3 = the mpif.f include file. If not stated otherwise, restrictions exist for each method which prevent implementing the complete semantics of MPI-3.0.

With these features (but still without the features of TS 29113), MPI-1.1 -- MPI-2.2 can be implemented without restrictions, but with one enhancement:

MPI-3.0 can be implemented with the following restrictions:

Using these features, MPI-3.0 can be implemented without any restrictions.

Advice to implementors.

If MPI_SUBARRAYS_SUPPORTED== .FALSE., the choice argument may be implemented with an explicit interface using compiler directives, for example:

INTERFACE SUBROUTINE MPI_...(buf, ...)
!DEC$ ATTRIBUTES NO_ARG_CHECK :: buf
!$PRAGMA IGNORE_TKR buf
!DIR$ IGNORE_TKR buf !IBM* IGNORE_TKR buf REAL, DIMENSION(*) :: buf ... ! declarations of the other arguments END SUBROUTINE END INTERFACE

( End of advice to implementors.)


PreviousUpNext
Up: Fortran Support Next: Requirements on Fortran Compilers Previous: Interface Specifications, Procedure Names, and the Profiling Interface


Return to MPI-3.1 Standard Index
Return to MPI Forum Home Page


(Unofficial) MPI-3.1 of June 4, 2015
HTML Generated on June 4, 2015