On Mar 5, 2007, at 9:50 AM, Michael wrote:

I have discovered a problem with the Fortran90 interfaces for all
types of communication when one uses derived datatypes (I'm currently
using openmpi-1.3a1r13918 [for testing] and openmpi-1.1.2 [for
compatibility with an HPC system]), for example

call MPI_RECV(tsk,1,MPI_TASKSTATE,src,
1,MPI_COMM_WORLD,MPI_STATUS_IGNORE,ier)

where tsk is a Fortran 90 structure and MPI_TASKSTATE has been
created by MPI_TYPE_CREATE_STRUCT.

At the moment I can't imagine a way to modify the OpenMPI interface
generation to work around this besides switching to --with-mpi-f90-
size=small.

This is unfortunately a known problem -- not just with Open MPI, but with the F90 bindings specification in MPI. :-( Since there's no F90 equivalent of C's (void*), there's no way to pass a variable of arbitrary type through the MPI F90 bindings. Hence, all we can do is define bindings for all the known types (i.e., various dimension sizes of the MPI types).

--
Jeff Squyres
Server Virtualization Business Unit
Cisco Systems

Reply via email to