


Up:  Language Binding
Next:  C Binding Issues
Previous:  Deprecated Names and Functions
  
 MPI-1.1   
  
provided bindings for Fortran 77.  MPI-2 retains  
these bindings but they are now interpreted in the  
context of the Fortran 90 standard.  MPI can still  
be used with most Fortran 77 compilers, as noted below.  
  
When the term Fortran is used it means Fortran 90.   
  
 
All  MPI names have an  MPI_ prefix, and all characters are  
capitals.  Programs must not declare variables, parameters, or  
functions with names beginning with the prefix  MPI_.  To avoid  
conflicting with the profiling interface, programs should also avoid  
functions with the prefix  PMPI_.  
This is mandated to avoid possible name collisions.  
 
All  MPI Fortran subroutines have a return code in the last argument.  A few  
 MPI operations which are functions do not have the return code argument.  
The return code value for successful completion is  
 MPI_SUCCESS.  Other error codes are implementation dependent;  
see the error codes in Chapter 7 of the  MPI-1 document and  
Annex Language Binding 
 in the  MPI-2 document.  
 
  
Constants representing the maximum length of a string are one smaller  
in Fortran than in C and C++ as discussed in Section Constants 
.  
  
 
Handles are represented in Fortran as  INTEGERs.  Binary-valued  
variables are of type  LOGICAL.  
 
Array arguments are indexed from one.  
 
The  MPI Fortran binding is inconsistent with the Fortran 90   
standard in several respects. These   
  
inconsistencies, such as register optimization problems,  
  
have  
implications for user codes that are discussed in detail  
in Section A Problem with Register Optimization 
. They are also inconsistent with  
Fortran 77.   
 
 
 
- An  MPI subroutine with a choice argument may be  
called with different argument types.   
 
- An  MPI subroutine with an assumed-size dummy argument may  
be passed an actual scalar argument.     
 
- Many  MPI routines assume that actual arguments are  
passed by address and that arguments are not copied on  
entrance to or exit from the subroutine.   
 
- An  MPI implementation may read or modify user data (e.g.,  
communication buffers used by nonblocking communications) concurrently  
with a user program executing outside  MPI calls.  
 
- Several named ``constants,'' such as  MPI_BOTTOM,   
 MPI_STATUS_IGNORE, and  MPI_ERRCODES_IGNORE,  
are not ordinary Fortran constants and require a special  
implementation. See Section Named Constants 
 for more information.  
 
Additionally,  MPI is inconsistent with Fortran 77 in a number of   
ways, as noted below.   
 
 
-  MPI identifiers exceed 6 characters.   
 
-  MPI identifiers may contain underscores after the first character.   
 
-  MPI requires an include file,  mpif.h. On systems  
that do not support include files, the implementation should specify  
the values of named constants.   
 
- Many routines in  MPI-2 have KIND-parameterized integers  
(e.g.,  MPI_ADDRESS_KIND and  MPI_OFFSET_KIND)  
that hold address information.   
On systems that do not support Fortran 90-style parameterized  
types,  INTEGER*8 or  INTEGER should be used instead.   
 
- The memory allocation routine  MPI_ALLOC_MEM can't  
be usefully used in Fortran without a language extension that allows  
the allocated memory to be associated with a Fortran variable.   
 



Up:  Language Binding
Next:  C Binding Issues
Previous:  Deprecated Names and Functions
Return to MPI-2 Standard Index
Return to MPI Standard Index
Return to MPI Forum Home Page
Return to MPI Home Page
MPI-2.0 of July 18, 1997
HTML Generated on November 1, 2000