Q-Logic IB6054601-00 D Switch User Manual


 
C – Troubleshooting
InfiniPath MPI Troubleshooting
C-20 IB6054601-00 D
Q
^
pathf95-389 pathf90: ERROR BORDERS, File = communicate.F, Line =
407, Column = 18
No specific match can be found for the generic subprogram call
"MPI_RECV".
If it is necessary to use a non-standard argument list, it is advisable to create your
own MPI module file, and compile the application with it, rather than the standard
MPI module file that is shipped in the mpi-devel-* RPM.
The default search path for the module file is:
/usr/include
To include your own MPI.mod rather than the standard version, use
-I/your/search/directory which will cause /your/search/directory to be
checked before
/usr/include:
$ mpif90 -I/your/search/directory myprogram.f90
Usage for Fortran95 will be similar to the example for Fortran90.
C.8.10
Extending MPI Modules
MPI implementations provide certain procedures which accept an argument having
any data type, any precision, and any rank, but it isn’t practical for an MPI module
to enumerate every possible combination of type, kind, and rank. Therefore the
strict type checking required by Fortran 90 may generate errors.
For example, if the MPI module tells the compiler that "mpi_bcast" can operate on
an integer but does not also say that it can operate on a character string, you may
see a message similar to the following one:
pathf95: ERROR INPUT, File = input.F, Line = 32, Column = 14
No specific match can be found for the generic subprogram call
"MPI_BCAST".
If you know that an argument can in fact accept a data type which the MPI module
doesn’t explicitly allow, you can extend the interface for yourself. For example, here’s
a program which illustrates how to extend the interface for "mpi_bcast" so that it
accepts a character type as its first argument, without losing the ability to accept an
integer type as well:
module additional_bcast
use mpi
implicit none
interface mpi_bcast
module procedure additional_mpi_bcast_for_character
end interface mpi_bcast
contains
subroutine additional_mpi_bcast_for_character(buffer, count,
datatype, & root, comm, ierror)
character*(*) buffer