Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

From: Michael Kluskens (michael.kluskens_at_[hidden])
Date: 2006-03-01 12:30:27


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