Q-Logic IB6054601-00 D 用户手册

下载
页码 122
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