[MPI3 Fortran] MPI buffer arguments - void and call-by-reference

Jeff Squyres jsquyres at cisco.com
Tue Feb 17 14:55:26 CST 2009


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




More information about the mpiwg-fortran mailing list