On Mar 1, 2006, at 9:56 AM, George Bosilca wrote:
Now I look into this problem more and your right it's a missing
interface. Somehow, it didn't get compiled.
From "openmpi-1.0.1/ompi/mpi/f90/mpi-f90-interfaces.h" the interface
says:
subroutine MPI_Comm_spawn(command, argv, maxprocs, info, root, &
comm, intercomm, array_of_errcodes, ierr)
use mpi_kinds
character(len=*), intent(in) :: command
character(len=*), dimension(*), intent(in) :: argv
integer, intent(in) :: maxprocs
integer, intent(in) :: info
integer, intent(in) :: root
integer, intent(in) :: comm
integer, intent(out) :: intercomm
integer, dimension(*), intent(out) :: array_of_errcodes
integer, intent(out) :: ierr
end subroutine MPI_Comm_spawn
My call is (mostly from the Using MPI-2 book):
call MPI_Comm_spawn('subprocess', MPI_ARGV_NULL, universe_size-1,
MPI_INFO_NULL, 0, &
MPI_COMM_WORLD, slavecomm, MPI_ERRCODES_IGNORE, ierr )
looking at "mpif.h" included by mpi_kinds.f90:
double complex MPI_ARGV_NULL
integer MPI_INFO_NULL
integer MPI_COMM_WORLD
double complex MPI_ERRCODES_IGNORE
What I don't understand how the "double complex" MPI_ARGV_NULL could
work with the "character(len=*), dimension(*), intent(in) :: argv"
interface or how the "double complex" MPI_ERRCODES_IGNORE could work
with the "integer, dimension(*), intent(out) :: array_of_errcodes"
interface.
I have the following for my variables:
integer :: ierr,slavecomm
integer (kind=MPI_ADDRESS_KIND) :: universe_size
My usage of MPI_ADDRESS_KIND and MPI_Comm_spawn is based on pages
236 and 244 of "Using MPI-2"
I'd to resolve the specific error involving the f90 interfaces so I
can continue to "USE MPI" in order to check my interface errors
quickly as I move forward on my project.
Michael