On Aug 7, 2012, at 3:13 PM, Paul Romano wrote: > Thanks for your response Jeff. My offset is of kind MPI_OFFSET_KIND which > leads me to believe it is the derived type that is causing the compilation > error. I'm also able to successfully compile and run the same code using > MPICH2.
That's because MPICH2 doesn't include an F90 interface for MPI_FILE_READ_AT, so it falls back to the F77-style matching (meaning: no parameter checking at all :-( ). Alternatively, you could compile OMPI with f90-size set to "small", and then MPI_FILE_READ_AT won't be prototyped, and you should be ok. > Out of curiousity, how is it that some of the more standard MPI routines in > the F90 interface such as MPI_SEND are able to accept derived types for > buffers whereas parallel I/O routines are not? They aren't. You should run into the same issues with MPI_SEND as you do with MPI_FILE_READ AT... FWIW, you might want to try OMPI's trunk tarball from last night with icc/icpc/ifort, and try the new "mpi" module. *All* MPI subroutines are prototyped in the "mpi" module (including those with choice buffers -- we did some magic to make that work). There's no more trivial/small/medium/large size "mpi" module. http://www.open-mpi.org/nightly/ Note that gfortran doesn't yet support the magic we need (although they're working on it), so if you use gfortran, you get essentially the same "mpi" module that is in OMPI 1.6. If you're feeling adventurous, use the new mpi_f08 module. The Big Difference is that MPI handles have unique types (not INTEGER). For example: use mpi_f08 type(MPI_Comm) :: comm comm = MPI_COMM_WORLD But you can interchange the new handle types with legacy MPI code by accessing the MPI_VAL member; it's the same old INTEGER handle that you're used to. use mpi_f08 type(MPI_Comm) :: comm integer :: old_style_comm_handle comm = MPI_COMM_WORLD old_style_comm_handle = comm%MPI_VAL comm%MPI_VAL = old_style_comm_handle -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/