Malcolm Cohen wrote:
Craig Rasmussen wrote:
Please vote for one of the options.
I don't see the option I prefer, viz all interfaces to be generic and not specific.
I would vote for a generic option.
Bill Long wrote:
Of course, the ideal situation would be to outlaw completely the use of the -i8 and -r8 (and even worse, one and not the other) options. Perhaps this could be an MPI requirement - no program that uses MPI is allowed to use these switches. That would be an enormous step in the right direction.
Use of -i8 without -r8 and vice versa are already prohibited by the Fortran standard, where it says that default integer and default real take the same storage size. I don't see what saying it again in MPI gains you.
You know the rules, as do I and a few other people. And some vendors likely enforce this restriction - we used to until the benchmark group put on the pressure since so many benchmarks are (poorly) written to assume the combination of -i4 -r8. I still get complaints/blank stares when we issue non-conformance messages about this. So, for the 90% who don't know this rule, the MPI statement is educational; for the other 10%, is says "we really mean it this time".
MPI could pick REAL(C_DOUBLE from ISO_C_BINDING) as Bill suggested, though C_DOUBLE is not guaranteed to be available,
Though if C_DOUBLE is not available, it is a bit questionable how interoperability is achieved, since (double) is what the C routine is returning. Maybe better to be up front about the issue, and give the user an error. Alternatively, since Fortran already provides timing intrinsics, it might be better to just omit these MPI routines from the Fortran interface entirely. [I know - there is a legacy code issue...] Cheers, Bill -- Bill Long [email protected] Fortran Technical Support & voice: 651-605-9024 Bioinformatics Software Development fax: 651-605-9142 Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120