What version of Open MPI are you using? I just checked a trivial f90 MPI program and MPI_TYPE_CREATE_SUBARRAY seemed to work ok.
I am not a fortran expert, but when I have seen this type of error message before, it *usually* meant that there was a type mismatch between the types passed to the function and the function signature available in the f90 module. I.e., the compiler found a function matching the *name*, but wasn't able to find a match for the *type signature*. Here's Open MPI's declaration of MPI_TYPE_CREATE_SUBARRAY: ----- interface MPI_Type_create_subarray subroutine MPI_Type_create_subarray(ndims, size_array, subsize_array, start_array, order, & oldtype, newtype, ierr) integer, intent(in) :: ndims integer, dimension(*), intent(in) :: size_array integer, dimension(*), intent(in) :: subsize_array integer, dimension(*), intent(in) :: start_array integer, intent(in) :: order integer, intent(in) :: oldtype integer, intent(out) :: newtype integer, intent(out) :: ierr end subroutine MPI_Type_create_subarray end interface ----- One thing you might want to double check is that OMPI was compiled with MPI_REAL8 support (since MPI_REAL8 was passed to the subroutine). Run this: ----- shell$ ompi_info --all | grep real8 Fort have real8: yes Fort real8 size: 8 Fort real8 align: 8 shell$ ----- Finally, note that Open MPI doesn't have many of the F90 symbols that you might expect in libmpi_f90.so because most of our F90 support is "direct pass through" to the F77 subroutines. Specifically, our F90 mpi module simply provides compile-time checking for expected signatures, but the subroutine call is actually automatically linked against the corresponding symbol in libmpi_f77.so. Only a few subroutines -- i.e., the ones that have multiple different type signatures -- actually appear in libmpi_f90.so. Meaning: MPI_TYPE_CREATE_SUBARRAY only has one type signature. So it's normal / expected that you don't see /mpi_type_subarray/i in libmpi_f90.so. On Feb 15, 2011, at 1:18 PM, Petit, George (Cont, ARL/CISD) wrote: > A user posted the following ticket to our site. Should the referenced MPI > routine be included in the mpif90 library? If not, why? And is there a way > to get it added. > > ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > I receive the following error when I try to compile my code with ifort with > the > openmpi library: > > grid.f(38): error #6285: There is no matching specific subroutine for this > generic > subroutine call. [MPI_TYPE_CREATE_SUBARRAY] > call > mpi_type_create_subarray(3,isizes,isubs,istarts,MPI_ORDER_FORTRAN,MPI_REAL8,DTghost(1),ierr) > -------------^ > > It looks like the 'mpi_type_create_subarray' routine is missing from the > openmpi > library libmpi_f90.so. The routine is in libmpi_f77.so. Is it possible to add > it > to the f90 library? The fortran 90 versions of mpi for sgi_mpt, xt-mpt, > ibm-mpi and > intelmpi all include this routine. Thanks. -Rob > > George Petit > Lockheed Martin > ARL DSRC Customer Support Team Lead > george.pe...@us.army.mil > 410-278-9283 > > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/