記憶単位は,特定のデータに割り付けられた物理メモリーの固定された単位のことです。記憶列は,記憶単位の列です。記憶列の大きさは,記憶列に含まれる記憶単位の数です。記憶単位には数値,文字,または不特定のものがあります。
基本実数型,整数型,または論理型の非ポインタ・スカラは,数値記憶単位を 1 つ占有します。倍精度実数型または基本複素数型の非ポインタ・スカラは,2 つの連続した数値記憶単位を占有します。Compaq Fortran では,数値記憶単位 1 つは 4 バイトのメモリーに対応します。
文字長 1 の基本文字型の非ポインタ・スカラは,文字記憶単位を 1 つ占有します。文字長 len の基本文字型の非ポインタ・スカラは,len 個の連続した文字記憶単位を占有します。Compaq Fortran では,文字記憶単位 1 つは 1 バイトのメモリーに対応します。
非基本データ型の非ポインタ・スカラは,1 つの不特定記憶単位を占有します。不特定記憶単位に対応するバイト数は,データ型によって変わります。
次表に,組込みデータ型の記憶列要件 (バイト数) を示します。
データ型 | 記憶列要件 (バイト数) |
---|---|
BYTE | 1 |
LOGICAL | 2, 4, または 8 1 |
LOGICAL(1) | 1 |
LOGICAL(2) | 2 |
LOGICAL(4) | 4 |
LOGICAL(8) | 8 |
INTEGER | 2, 4, または 8 1 |
INTEGER(1) | 1 |
INTEGER(2) | 2 |
INTEGER(4) | 4 |
INTEGER(8) | 8 |
REAL | 4, 8, または 16 2 |
REAL(4) | 4 |
DOUBLE PRECISION | 8 |
REAL(8) | 8 |
REAL(16) 3 | 16 |
COMPLEX | 8, 16, または 32 2 |
COMPLEX(4) | 8 |
DOUBLE COMPLEX | 16 |
COMPLEX(8) | 16 |
COMPLEX(16) 3 | 32 |
CHARACTER | 1 |
CHARACTER*len | len 4 |
CHARACTER*(*) | 引継ぎ文字長 5 |
1 基本整数型によって,LOGICAL と INTEGER は 2,4,または 8 バイトです。基本割付けは 4 バイトです。
2 基本実数型によって,REAL は 4,8,または 16 バイト,COMPLEX は 8,16,または 32 バイトです。基本割付けは,REAL では 4 バイト,COMPLEX では 8 バイトです。 3 VMS, U*X 4 len の値は,指定された文字数です。最も大きい有効な値は,Tru64 UNIX,Linux,および Windows システムでは 2147483647 (2**31-1),OpenVMS システムでは 65535 です。負の値はゼロとして扱われます。 5 引継ぎ文字長書式 *(*) は,仮引数,PARAMETER 文,または文字関数に適用され,使用される実引数または関数の長さを示します (「引継ぎ文字長引数」と,プログラマーズ・ガイドを参照してください)。 |
連続型の非ポインタ・スカラは,構造体の構成要素に対応する記憶列の列を,構造型定義中での順に占有します (連続型は SEQUENCE 文を持ちます)。
ポインタは,1 つの不特定記憶単位を占有します。これは,どの非ポインタ・オブジェクトとも異なり,型,型パラメタ,および次元数の個々の組み合わせによって異なります。
定義状態とデータ・オブジェクトの値は,記憶列に結合された要素の定義状態と値に影響を与えます。
2 つのオブジェクトが同じ記憶列を占有している場合,それらは完全に記憶列結合されています。2 つのオブジェクトが同じ記憶列の一部を占有している場合,それらは部分的に結合されています。EQUIVALENCE 文,COMMON 文,または ENTRY 文は,記憶列の完全な,または部分的な記憶列結合を引き起こすことができます。
関連情報
COMMON 文については,「COMMON」を参照してください。
ENTRY 文については,「ENTRY 文」を参照してください。
EQUIVALENCE 文については,「EQUIVALENCE 文」を参照してください。
データ型のハードウェア表現については,プログラマーズ・ガイドを参照してください。