24.05.2014 Views

XL Fortran Enterprise Edition for AIX : User's Guide - IBM

XL Fortran Enterprise Edition for AIX : User's Guide - IBM

XL Fortran Enterprise Edition for AIX : User's Guide - IBM

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

a derived type are stored with sufficient padding that components<br />

will be stored on their natural alignment boundaries, unless<br />

storage association requires otherwise. The natural alignment<br />

boundaries <strong>for</strong> objects of a type that appears in the left-hand<br />

column of the following table is shown in terms of a multiple of<br />

some number of bytes in the corresponding entry in the right-hand<br />

column of the table.<br />

Type<br />

Natural Alignment (in<br />

multiples of bytes)<br />

INTEGER(1), LOGICAL(1), BYTE, CHARACTER 1<br />

INTEGER(2), LOGICAL(2) 2<br />

INTEGER(4), LOGICAL(4), REAL(4) 4<br />

INTEGER(8), LOGICAL(8), REAL(8), COMPLEX(4) 8<br />

REAL(16), COMPLEX(8), COMPLEX(16) 16<br />

Derived<br />

Maximum alignment of its<br />

components<br />

port<br />

If the natural suboption of the struct option is specified, arrays of<br />

derived type are stored so that each component of each element is<br />

stored on its natural alignment boundary, unless storage<br />

association requires otherwise.<br />

If the port suboption of the struct option is specified,<br />

v<br />

v<br />

Storage padding is the same as described above <strong>for</strong> the natural<br />

suboption, with the exception that the alignment of components<br />

of type complex is the same as the alignment of components of<br />

type real of the same kind.<br />

The padding <strong>for</strong> an object that is immediately followed by a<br />

union is inserted at the begining of the first map component <strong>for</strong><br />

each map in that union.<br />

Restrictions<br />

The port suboption does not affect any arrays or structures with the AUTOMATIC<br />

attribute or arrays that are allocated dynamically. Because this option may change<br />

the layout of non-sequence derived types, when compiling programs that read or<br />

write such objects with un<strong>for</strong>matted files, use the same setting <strong>for</strong> this option <strong>for</strong><br />

all source files.<br />

You must use -qalign=4k if you are using the I/O techniques that are described in<br />

“Increasing Throughput with Logical Volume I/O and Data Striping” on page 333.<br />

Related In<strong>for</strong>mation<br />

You can tell if an array has the AUTOMATIC attribute and is thus unaffected by<br />

-qalign=4k if you look <strong>for</strong> the keywords AUTOMATIC or CONTROLLED<br />

AUTOMATIC in the listing of the “-qattr Option” on page 133. This listing also<br />

shows the offsets of data objects.<br />

126 <strong>XL</strong> <strong>Fortran</strong> <strong>Enterprise</strong> <strong>Edition</strong> <strong>for</strong> <strong>AIX</strong> : User’s <strong>Guide</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!