POINTER属性
  TARGET属性
copyright

green dot POINTER属性,TARGET属性

ポインタは、データを格納している領域のアドレスを代入することが できる変数である。その変数を指定する場合、POINTER属性を指定する。
ポインタが参照する変数は、TARGET属性を指定する。POINTER属性または、 TARGET属性を指定したとき、TARGET属性,INTENT属性,EXTERNAL属性, INTRINSIC属性は、指定できない。

[例]
変数xは、ポインタ属性で宣言する。変数yは、TARGET属性で宣言されて、 10が入っている。xのポインタの指示先をyにすることによって、xとyは、 同じ記憶場所を指す。結果として同じ値が表示される。

    INTEGER,POINTER :: x           !ポインタ宣言
    INTEGER,TARGET  :: y           !TARGET属性による宣言
    y=10
    x=>y                           !ポインタの指示の指定
    WRITE(*,*) x                   !xを出力
    WRITE(*,*) y                   !yを出力

green dotポインタ

ポインタは、データを格納している領域のアドレス(データの記憶場所)を 代入することができる変数である。そのとき、データ型はポインタが 指すデータの型を指定する。例えば、ポインタが指すデータの型が整数で あるとき、データ型はINTEGERとする。以下のように変数を宣言するとき POINTER属性を指定する。

  データ型,POINTER :: 変数名,変数名,変数名,…

[例1]
ポインタを宣言する。ポインタa,bが指す領域には、整数を代入する。

    INTEGER,POINTER :: a,b
[例2]
ポインタを宣言する。
    INTEGER,DIMENSION(:,:),POINTER :: i,j
    REAL,POINTER :: x,y

green dotポインタ代入文

ポインタの指示先を変更する。指示先はポインタかTARGET属性で宣言 されている変数である。

  ポインタ => 指示先

[例]
ポインタjにiが指しているアドレスを指すようにする。

j => i

green dotTARGET属性

変数をポインタが参照するとき、TARGET属性を指定する。

  データ型,TARGET :: 変数名,変数名,変数名,…

[例]
ポインタはTARGET属性を指定している変数を参照することができる。

    INTEGER,POINTER :: n
    INTEGER,TARGET  :: m
    n => m
     :
[例]
ポインタはTARGET属性を指定していない変数を参照することができない。 以下のプログラムはエラーを出力する文である。
    INTEGER,POINTER :: n
    INTEGER :: m
    n => m
     :
line-end