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


Reply via email to