On Tue, 2007-03-06 at 09:51 -0500, Jeff Squyres wrote:
> 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).
> 

What about the "Fortran 2003 ISO_C_BINDING" couldn't a C_LOC be used
here?
(I probably don't know what i'm talking about but i just saw a reference
to it.)

-- 
Ake Sandgren, HPC2N, Umea University, S-90187 Umea, Sweden
Internet: a...@hpc2n.umu.se   Phone: +46 90 7866134 Fax: +46 90 7866126
Mobile: +46 70 7716134 WWW: http://www.hpc2n.umu.se

Reply via email to