文と属性:ALLOCATABLE 属性は,配列が形状無指定割付け配列であることを指定します。割付け配列の形状は,ALLOCATE 文が実行され,配列の空間が動的に割り付けられた時点で決定されます。
ALLOCATABLE 属性は型宣言文または ALLOCATABLE 文で指定することができ,以下のいずれかの形式を取ります。
形式
型宣言文
type, [att-ls,] ALLOCATABLE [,att-ls] :: a[(d-spec)] [,a[(d-spec)]]...
文
ALLOCATABLE [::] a[(d-spec)] [,a[(d-spec)]]...
type
データ型指定子。
att-ls
省略可能な属性指定子の並び。
a
割付け配列の名前。仮引数または関数結果であってはなりません。
d-spec
形状無指定宣言 (: [,:]...)。各コロンは配列の中の 1 つの次元を表しています。
規則と振る舞い
プログラムの他の場所で,配列に DIMENSION 属性が与えられている場合,その配列は形状無指定配列として宣言されなくてはなりません。
割付け配列が不要になった場合,DEALLOCATE 文を実行することで割付けを解除することができます。
割付け配列は,COMMON,EQUIVALENCE,DATA,または NAMELIST 文では宣言できません。
割付け配列は基本設定では保存されません。割付け配列の値を手続呼び出しの前後で保存したい場合,配列に対して SAVE 属性を宣言する必要があります。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
DEALLOCATE,SAVE,型宣言文,属性の互換性,配列,割付け配列の割付け
例
! 形状無指定配列を作成し割り付ける方法 INTEGER, ALLOCATABLE :: matrix(:,:) REAL, ALLOCATABLE :: vector(:) ... ALLOCATE(matrix(3,5),vector(-2:N+2)) ...
次の例は,ALLOCATABLE 属性を指定する型宣言文を示しています。
REAL, ALLOCATABLE :: Z(:, :, :)
次は ALLOCATABLE 文の例です。
REAL A, B(:) ALLOCATABLE :: A(:,:), B