SAVE

文と属性:副プログラムの RETURN または END 文が実行された後も,オブジェクトの値と定義が保たれるようになります。

SAVE 属性は,型宣言文または SAVE 文で指定することができ,以下のいずれかの形式を取ります。

形式

型宣言文

type, [att-ls,] SAVE [,att-ls] :: [object [,object]...]

SAVE [object [,object]...]

type
データ型指定子。

att-ls
省略可能な属性指定子並び。

object
オブジェクトの名前,または斜線で囲まれた共通ブロックの名前 (/common-block-name/)。

規則と振る舞い

Compaq Fortran では,基本設定として特定の変数に SAVE 属性を与えられるものと与えられないものがあります。

移植性を高め,コンパイラの警告メッセージが生成されるのを防ぐために,副プログラムの呼び出しの前後で値を保存したい変数については,SAVE 文を使用することをお勧めします。

SAVE 文が明示的な並びを含んでいない場合,有効域中の対象となりうるすべての項目が保存されます。

SAVE 文で以下のものを指定することはできません (これらの値は保存できません)。

共通ブロックを SAVE 文で指定することは可能ですが,共通ブロック中の個々の変数は,他の有効域では不定となります (または再定義されます)。

共通ブロックが (主プログラム以外の) プログラムのいずれかの有効域で保存されている場合,その共通ブロックが現れるすべての有効域で保存しなくてはなりません。

SAVE 文は主プログラム中では効果を持ちません。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

COMMONDATAMOLULEMODULE PROCEDURERECURSIVE型宣言属性の互換性

次の例は,SAVE 属性を指定する型宣言文を示しています。

	SUBROUTINE TEST()
	  REAL, SAVE :: X, Y

次に SAVE 文の例を示します。

	SAVE A, /BLOCK_B/, C, /BLOCK_D/, E

以下に別の例を示します。

	SUBROUTINE MySub
	  COMMON /z/ da, in, a, idum(10)
	  real(8) x,y
	  ...
	
	  SAVE x, y, /z/
	  ! 別の宣言
	  REAL(8), SAVE :: x, y
	  SAVE /z/