XL Fortran for AIX V8.1.1

ランゲージ・リファレンス

DEALLOCATE

目的

DEALLOCATE ステートメントは、割り振り可能オブジェクトとポインター・ターゲットを動的に割り振り解除します。ターゲットと関連する他のポインターが未定義である場合、指定したポインターとの関連は解除されます。

構文



>>-DEALLOCATE--(--allocate_object_list--+-----------------------------+--)-><
                                        '-,--STAT-- = --stat_variable-'
 
 

object
ポインターまたは割り振り可能オブジェクトです。

stat_variable
スカラー整変数です。

規則

DEALLOCATE ステートメントで指定する割り振り可能オブジェクトは、現在割り振り済みでなければなりません。関連するポインターを介して、TARGET 属性を持つ割り振り可能オブジェクトの割り振りを解除することはできません。そのようなオブジェクトの割り振りを解除すると、関連するポインターの関連付け状況は未定義になります。未定義の割り振り状況を持つ割り振り可能オブジェクトに対して、その時点で、参照、定義、割り振り、または割り振り解除を行うことはできません。 DEALLOCATE ステートメントが正常に実行されると、割り振り可能オブジェクトの割り振り状況は、割り振られていないという状況になります。

派生型の変数の割り振りが解除されると、割り振り済みサブオブジェクトの割り振りも解除されます。

組み込み割り当てステートメントが実行されると、割り当てが行われる前に、変数の割り振り済みサブオブジェクトの割り振りが解除されます。

DEALLOCATE ステートメント内のポインターは、ALLOCATE ステートメントで作成されたターゲット全体と関連を持たなければなりません。ポインター・ターゲットの割り振りを解除すると、ターゲット全体あるいは一部と関連を持つ他のポインター関連付け状況は未定義になります。

ヒント

割り振り済みストレージに関連したポインターが他にない場合は、NULLIFY ではなく DEALLOCATE ステートメントを使用してください。

ポインター関数が割り振られたストレージの割り振りを解除してください。

STAT= 指定子を指定せず、このステートメントの実行中にエラーが発生した場合、プログラムは終了します。 STAT= 指定子を指定した場合、stat_variable には以下の値の 1 つが割り当てられます。

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


Stat 値 エラー状態
0 エラーなし
1 割り振り解除を試みているシステム・ルーチンにエラー
2 割り振り解除に無効なデータ・オブジェクトが指定された
3 1 と 2 の両方のエラーが発生した

+--------------------------------IBM 拡張の終り-------------------------------+

allocate_object は、同じ DEALLOCATE ステートメント内の別の allocate_object の値、境界、割り振り状況、または関連付け状況に依存せず、また、同じ DEALLOCATE ステートメント内の stat_variable の値にも依存しません。

stat_variable は、同じ DEALLOCATE ステートメント内で割り振りを解除することはできません。また、同じ DEALLOCATE ステートメント内の allocate_object の値、境界、割り振り状況、または関連付け状況に依存しません。

INTEGER, ALLOCATABLE :: A(:,:)
INTEGER X,Y
      
  ·
  ·
  ·
ALLOCATE (A(X,Y))  
  ·
  ·
  ·
DEALLOCATE (A,STAT=I) END

関連情報


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]