ALLOCATABLE (Fortran 2003)

目的

ALLOCATABLE 属性によって、割り振り可能オブジェクトを宣言できます。ALLOCATE ステートメントを実行することによって、または派生型代入ステートメントによって、これらのオブジェクトのストレージ・スペースを動的に割り振ることができます。オブジェクトが配列である場合、そのオブジェクトは据え置き形状配列または想定ランク配列です。

構文

構文図を読む構文図をスキップする
>>-ALLOCATABLE--+----+------------------------------------------>
                '-::-'   

   .-,---------------------------------------------------.   
   V                                                     |   
>----object_name--+------------------------------------+-+-----><
                  '-+-(--deferred_shape_spec_list--)-+-'     
                    '-assumed_rank_spec--------------'       

object_name
割り振り可能オブジェクトの名前です。
deferred_shape_spec
コロンです。各コロンは、次元を表します。
assumed_rank_spec
2 つのピリオド。詳しくは、『Assumed_rank_spec』を参照してください。

規則

オブジェクトは、ポインティング先にしないでください。

オブジェクトが、DIMENSION 属性を使用して有効範囲単位内の他の場所で指定された配列の場合、配列仕様は、deferred_shape_spec または assumed_rank_spec である必要があります。

割り振り可能オブジェクトは、ストレージ・スペースの割り振り後に初期化できます。-qinitalloc を使用してプログラムをコンパイルすると、割り振り済みのすべての未初期化オブジェクトが初期化されます。

表 1. ALLOCATABLE 属性と互換性のある属性
ASYNCHRONOUS OPTIONAL SAVE
AUTOMATIC  2  PRIVATE STATIC  2 
DIMENSION PROTECTED  1  TARGET
INTENT PUBLIC VOLATILE
注:
  •  1  Fortran 2003
  •  2  IBM 拡張

! Two-dimensional array a declared but no space yet allocated
REAL, ALLOCATABLE :: a(:, :)  
READ (5, *) i, j
ALLOCATE(a(i, j))

関連情報