Oracle® Solaris Studio 12.4: Fortran ユーザーズガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

4.2.3 データ型のサイズおよび整列

記憶領域および整列は常にバイト単位で表されます。シングルバイトに収まる値は、バイト整列です。

データ型のサイズおよび整列は、コンパイラのオプションとプラットフォーム、および変数の宣言方法に依存します。COMMON ブロック内のデフォルトの最大の整列は、4 バイトの境界整列です。

デフォルトのデータ整列および記憶領域の割り当ては、-aligncommon-f-dalign-dbl_align_all-xmemalign、および -xtypemap などの特別なオプションを指定してコンパイルすることにより、変更できます。このマニュアルは、これらのオプションが有効でないものとして記述されています。

いくつかのプラットフォームにおける特殊ケースのデータ型および整列については、『Fortran プログラミングガイド』に追加の説明があります。

デフォルトのサイズおよび整列を次の表にまとめます (データ型のその他の点およびオプションは考慮していません)。

表 4-3  デフォルトのデータサイズおよび整列 (バイト)
Fortran のデータ型
サイズ
デフォルトの整列
COMMON 内の整列
BYTE X
CHARACTER X
CHARACTER*n X
1
1
n
1
1
1
1
1
1
COMPLEX X
COMPLEX*8 X
DOUBLE COMPLEX X
COMPLEX*16 X
COMPLEX*32 X
8
8
16
16
32
4
4
8
8
8/16
4
4
4
4
4
DOUBLE PRECISION X
REAL X
REAL*4 X
REAL*8 X
REAL*16 X
8
4
4
8
16
8
4
4
8
8/16
4
4
4
4
4
INTEGER X
INTEGER*2 X
INTEGER*4 X
INTEGER*8 X
4
2
4
8
4
2
4
8
4
2
4
4
LOGICAL X
LOGICAL*1 X
LOGICAL*2 X
LOGICAL*4 X
LOGICAL*8 X
4
1
2
4
8
4
1
2
4
8
4
1
2
4
4

次の点に注意してください。

  • REAL*16 および COMPLEX*32: 64 ビット環境 (-m64 を指定してコンパイル) では、デフォルトの整列は、表で 8/16 と示されるように、8 バイトではなく 16 バイト境界整列になります。このデータ型は、4 倍精度とも呼ばれます。

  • 配列および構造体は、その要素または欄に従って整列します。配列は、配列要素と同じように整列します。構造体は、もっとも広い整列で整列する欄と同じように整列します。

オプション -f または -dalign は、8、16、または 32 バイトのデータすべてを、強制的に 8 バイト境界で整列させます。オプション -dbl_align_all の場合は、すべてのデータが 8 バイト境界で整列します。これらのオプションを使用するプログラムには、移植性がない場合があります。