The following options control whether the Visual Fortran compiler adds padding (when needed) to naturally align multiple data items in common blocks, derived-type data, and Compaq Fortran record structures:
Requests that data in common blocks be aligned on up to 4-byte boundaries, by adding padding bytes as needed. Unless you specify /fast, the default is /align:nocommons or arbitrary byte alignment of common block data. In this case, unaligned data can occur unless the order of data items specified in the COMMON statement places the largest numeric data item first, followed by the next largest numeric data (and so on), followed by any character data.
Requests that data in common blocks be aligned on up to 8-byte boundaries, by adding padding bytes as needed. Unless you specify /fast, the default is /align:nocommons or arbitrary byte alignment of data items in a common data.
Specify the /align:dcommons option for applications that use common blocks, unless your application has no unaligned data or, if the application might have unaligned data, all data items are four bytes or larger. For applications that use common blocks where all data items are four bytes or smaller, you can specify /align:commons instead of /align:dcommons.
Requests that multiple data items in derived-type data and record structures (a Compaq Fortran extension) be aligned arbitrarily on byte boundaries instead of being naturally aligned. The default is /align:records.
Requests that multiple data items in record structures and derived-type data without the SEQUENCE statement be naturally aligned, by adding padding bytes as needed. The default is /align:records.
Controls alignment of derived types with the SEQUENCE statement. Specifying the /align:sequence option means that derived types with the SEQUENCE statement obey whatever alignment rules are currently in use. Consequently, since /align:records is a default value, then /align:sequence alone on the command line will cause the fields in these derived types to be naturally aligned. Specifying /fast implies /align:sequence.
Controls alignment of derived types with the SEQUENCE statement. The default /align:nosequence option means that derived types with the SEQUENCE statement are packed regardless of any other alignment rules.
The default behavior is that multiple data items in derived-type data and record structures will be naturally aligned; data items in common blocks will not be naturally aligned (/align:records) with /align:nocommons. In derived-type data, using the SEQUENCE statement without specifying /align:sequence prevents /align:records from adding needed padding bytes to naturally align data items.