On Feb 17, 2009, at 3:08 PM, Craig Rasmussen wrote:
This means that actual argument associated with the dummy argument buf, can be an array or scalar of any type. If it is an array, it can have any rank. The major impact to the MPI implementation is that the buf argument will be passed by descriptor.
Two knee-jerk questions: 1. Is there a standard layout / struct / whatever for this descriptor? Or does it vary by compiler? (I really hope you answer "yes" to the first question...) 2. Is the descriptor available via C, or only available via Fortran? (meaning: does the MPI wrapper function *have* to be written in Fortran? I really hope you answer "yes, it's available in C"...)
I think using TYPE(*) and DIMENSION(..) is an excellent solution for MPI 3.0. The advantages are:
1. Current user code won't have to change beyond using the MPI3 module.
Remember that we wanted to make Fortran MPI handles just like C handles, so users will need to change that as well. It won't just be s/use mpi/use mpi3/g. -- Jeff Squyres Cisco Systems