問合せ組込み関数 (総称):ポインタ引数の結合状態を返すか,ポインタが指示先に結合されているかどうかを示します。
形式
result = ASSOCIATED (pointer [, target])
pointer
(入力) 任意のデータ型のポインタ。
target
(省略可能,入力) ポインタまたは指示先。(pointer または target 中の) ポインタは,不定の結合状態を持っていてはなりません。
結果
結果の型は基本論理型スカラです。
pointer だけが指定されている場合,その結果は,ポインタが指示先に現在結合されている場合には真,そうでない場合には偽となります。
target も指定されており,それが指示先である場合,結果は,pointer が現在 target に結合されている場合には真,そうでない場合には偽となります。
target がポインタである場合,結果は,pointer と target の両方が現在同じ指示先に結合されている場合には真,そうでない場合には偽となります (pointer または target が空状態にある場合,結果は偽となります)。
整数の大きさを指定するコンパイラ・オプション /integer_size の設定は,この関数に影響を与えることがあります。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
例
REAL C (:), D(:), E(5) POINTER C, D ARGET E LOGICAL STATUS C => E ! ポインタ代入 D => E ! ポインタ代入 STATUS = ASSOCIATED(C) ! TRUE を返します。C が結合されています。 STATUS = ASSOCIATED(C, E) ! TRUE を返します。C が E に結合されています。 STATUS = ASSOCIATED (C, D) ! TRUE を返します。C と D が同じ指示先に ! 結合されています。
次に例を示します。
REAL, TARGET, DIMENSION (0:50) :: TAR REAL, POINTER, DIMENSION (:) :: PTR PTR => TAR PRINT *, ASSOCIATED (PTR, TAR) ! 真を返す
PTR の添字範囲は 0:50 です。次のポインタ代入文を考えます。
(1) PTR => TAR (:) (2) PTR => TAR (0:50) (3) PTR => TAR (0:49)
文 1 と 2 では,ASSOCIATED (PTR, TAR) は,TAR が変更されていないので真となります (PTR の添字範囲は,形状引継ぎ配列の規則に従って,どちらの場合でも 1:51 となります)。文 3 では,ASSOCIATED (PTR, TAR) は,TAR の上限が変更されているので偽となります。
次に例を示します。
REAL, POINTER, DIMENSION (:) :: PTR2, PTR3 ALLOCATE (PTR2 (0:15)) PTR3 => PTR2 PRINT *, ASSOCIATED (PTR2, PTR3) ! 真を返す ... NULLIFY (PTR2) NULLIFY (PTR3) PRINT *, ASSOCIATED (PTR2, PTR3) ! 偽を返す