Q-Logic IB6054601-00 D manual Extending MPI Modules

Models: IB6054601-00 D

1 122
Download 122 pages 48.66 Kb
Page 94
Image 94
^
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/directorywhich will cause /your/search/directory to be checked before /usr/include:
Usage for Fortran95 will be similar to the example for Fortran90.
mpif90 -I/your/search/directory myprogram.f90
$
C – Troubleshooting InfiniPath MPI Troubleshooting

Q

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

C-20

IB6054601-00 D

Page 94
Image 94
Q-Logic IB6054601-00 D manual Extending MPI Modules