ナビゲーション:前へ 上へ 次へ
11.2 BLOCK 構文 [5.3]
この構文は実行コード部分での宣言を利用可能とします。例を以下に示します。
Do i=1,n
Block
Real tmp
tmp = a(i)**3
If (tmp>b(i)) b(i) = tmp
End Block
End Do
ここで変数 tmp の有効範囲は BLOCK 構文内に限られ、その外側に影響を及ぼしません。
この機能は INCLUDE を利用する場合やマクロ処理で特に有用です。
BLOCK 内では COMMON, EQUIVALENCE, IMPLICIT, INTENT, NAMELIST, OPTIONAL, VALUE, および文関数以外の全ての宣言が許されています。
BLOCK 構文はネストすることが可能です。 他の構文と同様に BLOCK 構文外部から内部への分岐は許されていません。 BLOCK 構文内から外部への分岐は、同構文の実行を完了させます。
BLOCK 内の言語要素で SAVE 属性を持たないものは、同構文が完了した時点で消滅します。 例えば、割付けされた ALLOCATABLE 変数は自動的に開放され、 FINAL 手続きを持つ変数は最終化されます。
