整数 POINTER ステートメントによって、変数 int_pointer の値を、ポインティング先 への参照用アドレスとして使用することを指定します。
Fortran 90 POINTER ステートメントと区別するために、このステートメントの名前は、POINTER から整数 POINTER に変更されました。
コンパイラーは、ポインティング先にストレージを割り振りません。ストレージは、ポインターへのストレージのブロックのアドレスの割り当てによって、実行時にポインティング先と関連付けられます。ポインティング先は、静的ストレージまたは動的ストレージのいずれかと関連付けることができます。ポインティング先の参照には、関連付けられるポインターが定義されていることが必要です。
整数ポインターは、型を明示的に代入することができない 32 ビット・モードの INTEGER(4) 型、および 64 ビット・モードの INTEGER(8) 型のスカラー変数です。整数ポインターと同じ型の変数が使用できる式またはステートメントで、整数ポインターを使用できます。ポインティング先には、すべてのデータ型を代入することができます。ただし、ポインティング先への記憶クラスまたは初期値は代入することができません。
整数 POINTER ステートメントにポインティング先として指定される実配列を、ポインティング先配列と呼びます。型宣言ステートメント、DIMENSION ステートメント、または整数 POINTER ステートメントそれ自体に、ポインティング先配列の次元を指定できます。
-qddim コンパイラー・オプションを指定した場合、メインプログラムに現れるポインティング先配列は、調整可能な配列仕様を持つこともできます。 メインプログラムとサブプログラムで、次元サイズは、ポインティング先が参照される際に評価されます (動的次元設定)。
-qddim コンパイラー・オプションを指定しない場合、サブプログラムに現れるポインティング先配列は、調整可能な配列仕様を持つことができ、次元サイズは、ポインティング先が評価される時ではなく、サブプログラムへの入口で評価されます。
INTEGER A,B
POINTER (P,I)
IF (A<>0) THEN
P=LOC(A)
ELSE
P=LOC(B)
ENDIF
I=0 ! Assigns 0 to either A or B, depending on A's value
END