On Aug 6, 2013, at 8:40 AM, Hugo Gagnon <opensource.open...@user.fastmail.fm> 
wrote:

> Does this mean that for now I can just replace the MPI_Get_address calls
> to MPI_Address?
> 
> I tried it and I got:
> 
> $openmpif90 test.f90
> test.f90:11.32:
> 
> call MPI_Address(a,address,ierr)
>                                1
> Error: There is no specific subroutine for the generic 'mpi_address' at
> (1)

No.  Because in the old/deprecated MPI_Address call, the "address" parameter 
type is "INTEGER", not "INTEGER(KIND=MPI_ADDRESS_KIND)", which typically is not 
sufficient on 64 bit machines.  :-(  (which is why the MPI Forum introduced the 
MPI_Get_address function, which uses ADDRESS_KIND, and will be big enough for 
64 bit values, etc.)

You should be able to apply the attached patch to an OMPI 1.7.x tarball to add 
the MPI_Get_address implementation (which is a little difficult for you because 
you're installing via macports, but...). 

> On a unrelated note, I noticed that I always get this generic message
> for MPI-related compiling errors; is there a way to get more descriptive
> error messages?

Unfortunately not; this is a compiler message -- it's not from Open MPI.

It typically means that either a) you have either the wrong subroutine name or 
b) you have the wrong type for one of the parameters.  Specifically, it means 
that the compiler was unable to match your source code with any of the 
interfaces specified in the module file.  In the case above, your code was 
calling MPI_Address with "address" of type INTEGER(KIND=MPI_ADDRESS_KIND), but 
the module only has interfaces with MPI_Address with "address" of type INTEGER. 
 So no match was able to be found.

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to