(somehow I apparently never sent this mail! It's been sitting in my drafts folder for weeks. To followup what I said below: I sent a question about this issue to the MPI-3 Fortran working group -- to see exactly what *should* be the right thing to do: http://lists.mpi-forum.org/mpi3-fortran/2010/05/0830.php)
On May 7, 2010, at 6:30 PM, Noam Bernstein wrote:
> As with every array in Fortran, arrays of strings
> are contiguous in memory, and presumably the end of string (1,1)
> is right before the beginning of string(2,1), etc.
Yep -- got all that -- we have some f2c string translation routines in OMPI for just this purpose.
But MPI_COMM_SPAWN_MULTIPLE is a little unique in that it takes a 2D array of character strings. We know the first dimension; it has to be the same as the "count" argument to MPI_COMM_SPAWN_MULTIPLE. And by the hidden argument, we know the length of all of the strings. But we don't know the 2nd dimension of the array.
So OMPI searches for it by looking for an empty string (i.e., all spaces). My gfortran 4.1 isn't doing that, although my ifort 11.1 and pgf90 10.0 are. In my small example that I sent, it *is* apparently doing that for Andrew's ifort 9.0, but it (apparently) isn't in his production tests. Sigh.
For corporate legal information go to: