As noted in the original MPI-/ specification, the interface violates the Fortran standard in several ways. While these cause few problems for Fortran 77 programs, they become more significant for Fortran 90 programs, so that users must exercise care when using new Fortran 90 features. The violations were originally adopted and have been retained because they are important for the usability of MPI-/. The rest of this section describes the potential problems in detail. It supersedes and replaces the discussion of Fortran bindings in the original MPI-/ specification (for Fortran 90, not Fortran 77).
The following MPI-/ features are inconsistent with Fortran 90.
MPI-/ contained several routines that take address-sized information
as input or return address-sized information as output. In C
such arguments were of type MPI_Aint and in Fortran of
type INTEGER. On machines where integers are smaller than
addresses, these routines can lose information. In MPI-// the
use of these functions has been deprecated
and they have been replaced by
routines taking INTEGER arguments of KIND=MPI_ADDRESS_KIND.
A number of new MPI-// functions also take INTEGER arguments
of non-default KIND. See Section 2.6
on page and Section 4.14
on page
for more information.