Description of MPI-CHECK

Message Passing Interface (MPI) is commonly used to write parallel programs for distributed memory parallel computers. MPI-CHECK is a tool developed to aid in the debugging of MPI programs that are written in free or fixed format Fortran 90 and Fortran 77. MPI-CHECK provides automatic compile-time and run-time checking of MPI programs. MPI-CHECK automatically detects the following problems in the use of MPI routines:

(i)   mismatch in argument type, kind, rank or number; 
(ii)  messages which exceed the bounds of the source/destination array; 
(iii) negative message lengths; 
(iv)  illegal MPI calls before MPI_INITIALIZE or after MPI_FINALIZE; 
(v)   inconsistencies between the declared type of a message and its associated 
         DATATYPE argument; and 
(vi)  actual arguments which violate the INTENT attribute.

Full details may be found in the paper: 
MPI-CHECK: a Tool for Checking Fortran 90 MPI Programs

Full source and examples may be found at:
To License Agreement and Download 

 Deadlock detection has been added to MPI-CHECK, which we refer to as MPI-CHECK 2.0.
Full details may be found in the paper 
DEADLOCK DETECTION IN MPI PROGRAMS

Limitations:
MPI-CHECK and MPI-CHECK 2.0 have been tested on SGI Origins and Cray T3E's,
but should work in any UNIX environment where the .f90 extension indicates
that Fortran source is in free format, and .f indicates that it is in 
fixed format.