On Nov 13, 2009, at 5:27 PM, Aleksandar Donev wrote:
On Friday 13 November 2009, Craig Rasmussen wrote:
5. Use of generics doesn't seem to help. The generics would apply to integer parameters like tag, dest, ... but not to the datatype. Since the different wrapper compilers would have to used anyway I do not understand this one, please explain. Are you talking about MPI_Datatype and what does not apply to it? I thought the problem we were discussing were exactly the non-count integer parameters and generics cleanly resolve that problem. Aleks
Yes we were talking about the non-count integer parameters in the context of how it might be used to simplify things where the -i8 option is used. Outside of that, it makes no sense to change anything. Suppose I have the following code in file send.f90: integer :: dest, tag integer :: buf(100) call MPI_Send(buf, 100, MPI_INTEGER, dest, tag, MPI_COMM_WORLD) I can compile it with mpif90 and everything works fine: mpif90 send.f90 -o send But if I compile it with the -i8 switch (assuming generics) there is a problem: mpif90 -i8 send.f90 -o send The symbols 100, dest, and tag all work fine because of generic interfaces. However, my new buf array is now a different size than is specified by MPI_INTEGER. However the above code works fine if compiled with the same options as the MPI library was compiled with: mpif90_i8 send.f90 -o send or mpif90 send.f90 -o send I hope this is more clear. -craig