記憶単位と記憶列

記憶単位は,特定のデータに割り付けられた物理メモリーの固定された単位のことです。記憶列は,記憶単位の列です。記憶列の大きさは,記憶列に含まれる記憶単位の数です。記憶単位には数値,文字,または不特定のものがあります。

基本実数型,整数型,または論理型の非ポインタ・スカラは,数値記憶単位を 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 基本整数型によって,LOGICALINTEGER2,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 文は,記憶列の完全な,または部分的な記憶列結合を引き起こすことができます。

関連情報