Intel® Fortran Compiler 16.0 User and Reference Guide

ASSUME_ALIGNED

General Compiler Directive: Specifies that an entity in memory is aligned.

!DIR$ ASSUME_ALIGNED address1:n1 [, address2:n2]...

address

A memory reference. It can be of any data type, kind, or rank. It cannot be any of the following:

  • An entity in COMMON (or an entity EQUIVALENCEd to something in COMMON)

  • A component of a variable of derived type or a record field reference

  • An entity accessed by use or host association

n

A positive integer initialization expression. Its value must be a power of 2 between 1 and 256, that is, 1, 2, 4, 8, 16, 32, 64, 128, 256. It specifies the memory alignment in bytes of address.

If you specify more than one address:n item, they must be separated by a comma.

If address is a Cray POINTER or it has the POINTER attribute, it is the POINTER and not the pointee or the TARGET that is assumed aligned.

If the check assume option is specified and address is not aligned on an n-byte boundary at run-time, an error message is displayed and execution is aborted.

For more information, see the example in the description of the ASSUME directive.

See Also