On Wed, 07 Jul 2010 17:34:44 -0600, "Price, Brian M (N-KCI)" <brian.m.pr...@lmco.com> wrote: > Jed, > > The IBM P5 I'm working on is big endian.
Sorry, that didn't register. The displ argument is MPI_Aint which is 8 bytes (at least on LP64, probably also on LLP64), so your use of kind=8 for that is certainly correct. The count argument is a plain int, I don't see how your code could be correct if you pass in an 8-byte int there when it expects a 4-byte int (since the upper 4 bytes would be used on a big-endian system). > The test program I'm using is written in Fortran 90 (as stated in my > question). Do you "use mpi" or the F77 interface? > I imagine this is indeed a library issue, but I still don't understand what > I've done wrong here. I can reproduce this in C on x86-64, even with displ much smaller than 2^31 (e.g. by setting displ_unit=4). Apparently Open MPI multiplies displ*displ_unit and stuffs the result in an int (somewhere in the implementation), MPICH2 works correctly for me with large displacements. https://svn.open-mpi.org/trac/ompi/ticket/2472 Jed