+----------------------------------IBM 拡張----------------------------------+

AUTOMATIC

目的

AUTOMATIC 属性は、変数に自動のストレージ・クラスを持たせることを指定します。 つまり、プロシージャーが終了すると、変数は定義されていない状態になります。

構文



>>-AUTOMATIC--+----+--automatic_list---------------------------><
              '-::-'
 
 

automatic
明示的形状指定リストか据え置き形状指定リストを持つ、変数名または配列宣言子です。

規則

automatic が関数結果である場合、文字型または派生型であってはなりません。

ポインターまたは配列である関数結果、仮引き数、ステートメント関数、 自動オブジェクト、またはポインティング先には、AUTOMATIC 属性 を指定してはなりません。 AUTOMATIC 属性を持つ変数をモジュールの有効範囲単位内で定義することはできません。 共通ブロック項目に、AUTOMATIC 属性によって明示的に 宣言された変数を指定することはできません。

同じ有効範囲単位内で 1 つの変数に対して複数の AUTOMATIC 属性を指定してはなりません。

スレッドの作業範囲内で AUTOMATIC と宣言された 変数はすべて、そのスレッドに対してローカルになります。

AUTOMATIC 属性属性を持つ変数は、DATA ステートメントや型宣言ステートメントで初期化することはできません。

automatic がポインターの場合、AUTOMATIC 属性は ポインター自身に設定されるのであり、そのポインターに関連する (あるいは 関連する可能性のある) ターゲットに設定されることはありません。

注:
AUTOMATIC 属性を持つオブジェクトを自動オブジェクトと混同 しないでください。 自動オブジェクトを参照してください。
AUTOMATIC 属性と互換性のある属性





CALL SUB
CONTAINS
  SUBROUTINE SUB
    INTEGER, AUTOMATIC :: VAR
    VAR = 12
  END SUBROUTINE                  ! VAR becomes undefined
END

関連情報

+------------------------------End of IBM 拡張-------------------------------+

IBM Copyright 2003