変数は定義済み、または未定義のどちらかで、その定義状況をプログラムの実行中に変更することができます。 名前付き定数は、値を持っています。 名前付き定数をプログラムの実行時に定義または再定義することはできません。
文字型または複素数型の配列 (セクションを含む)、 構造体、および変数は、0 以上のサブオブジェクトからなるオブジェクトです。 変数とサブオブジェクト間、および異なる変数のサブオブジェクト間に 関連付けを確立することができます。
DATA ステートメント、型 宣言ステートメント、STATIC ステートメントで 初期値を持つように指定された変数は、最初は定義済みです。 さらに、デフォルトの初期化によって、変数の初期値定義される場合があります。 ゼロ・サイズの配列およびゼロ長の文字オブジェクトは、常に定義されます。
それ以外の変数はすべて、最初は未定義です。
以下に示すイベントは、変数を定義済みにします。
または FORALL 割り当てステートメント
を
実行すると、等号の前の変数は定義済みになります。
定義済みの割り当てステートメントを実行すると、 等号の前の全部または一部の変数が定義済みになる場合があります。
非同期入力ステートメントを実行すると、 対応する WAIT ステートメントが実行されるまで 変数は定義済みになりません。
+---------------------------------Fortran 95---------------------------------+
+-----------------------------End of Fortran 95------------------------------+
仮引き数に対応する実引き数の対応サブオブジェクトが定義済みの場合、プロシージャーに対する参照に よって、INTENT(OUT) を持たない仮引き数のサブオブジェクトは定義済みになります。
+-------------------------Fortran 2003 ドラフト標準--------------------------+
+----------------------End of Fortran 2003 ドラフト標準----------------------+
+----------------------------------IBM 拡張----------------------------------+
NUM= 指定子が入っている非同期 READ また は WRITE ステートメントを実行すると、指定された整変数は 定義済みになります。 整変数は、対応する WAIT ステートメントの実行時に定義されます。
+------------------------------End of IBM 拡張-------------------------------+
数値記憶単位が定義済みであれば、同じ型で、関連した 数値記憶単位はすべて定義済みとなります。ただし、ASSIGN ステートメントが 実行される場合には、ASSIGN ステートメント内の 変数に関連した変数は、未定義となります。 型のエンティティー DOUBLE PRECISION が定義済みになると、 その全体が関連した倍精度実数型のエンティティーはすべて 定義済みとなります。
デフォルト以外の整数型、デフォルトまたは倍精度以外の 実数型、デフォルト以外の論理型、デフォルト以外の複素数型、 任意の長さを持つデフォルト以外の文字型、または非順序型のポインターなしの スカラー・オブジェクトは、各ケースごとに異なる未指定の単一記憶単位を占有します。 他のポインターと、型、種類、ランクの少なくとも 1 つが 明らかに異なるポインターは、未指定の単一記憶単位を占有します。 未指定の記憶単位が定義済みとなると、関連するすべての未指定記憶単位は、 定義済みとなります。
+---------------------------------Fortran 95---------------------------------+
+-----------------------------End of Fortran 95------------------------------+
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
以下に示すイベントは、変数を未定義にします。
XL Fortran は、これらの変数を未定義にはしません。
XL Fortran は、これらの変数を未定義にはしません。
数値記憶単位が未定義になると、関連したすべての数値記憶単位は 未定義になります。ただし、異なる型の関連した数値記憶単位を 定義したことにより、未定義になった場合を除きます (前述の (1) 参照)。
倍精度の実数型のエンティティーが未定義になると、 それに全体が関連している倍精度の実数型エンティティーは すべて、未定義になります。
未指定の記憶単位が未定義になると、関連した未指定の 記憶単位がすべて、未定義になります。
+---------------------------------Fortran 95---------------------------------+
+-----------------------------End of Fortran 95------------------------------+
+-------------------------Fortran 2003 ドラフト標準--------------------------+
+----------------------End of Fortran 2003 ドラフト標準----------------------+
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+