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