[MPI3 Fortran] Proposing changes to Fortran 2008
Jeff Squyres
jsquyres at cisco.com
Thu Mar 20 10:19:25 CDT 2008
On Mar 20, 2008, at 11:13 AM, Craig Rasmussen wrote:
> Yes, but the same size hole would exist for the "companion" C struct
> as well. So however you calculate stride information for C would
> work for an interoperable derived type in Fortran as well. Suppose
> foo were,
>
> struct foo {
> char a;
> char b;
> int i;
> char c;
> char d;
> }
Ok, but you said everything in Fortran had to be contiguous. With a
hole, by definition, it's not contiguous (and, per my other mails, you
can be much more arbitrary, such as skipping the "b" field in the
struct above). Does Fortran have a different definition of
"contiguous" than C? :-)
> Don't you have to worry about the C compiler reordering the elements
> of foo?
With C++, perhaps. With C, no.
Regardless, if you construct the MPI datatype (map) at run-time, then
MPI will get the Right values for offsets into the memory map because
you actually measure the distances/offsets at run-time (vs. compile-
time).
--
Jeff Squyres
Cisco Systems
More information about the mpiwg-fortran
mailing list