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

POINTER (整数)

目的

整数 POINTER ステートメントによって、変数 int_pointer の 値を pointee の参照用アドレスとして使用することを指定できます。

Fortran 90 POINTER ステートメントと区別するために、 このステートメントの名前は POINTER から整数 POINTER に 変更されました。

構文



            .-,-----------------------------.
            V                               |
>>-POINTER----(--int_pointer--,--pointee--)-+------------------><
 
 

int_pointer
整数ポインター変数の名前です。

pointee
変数名、あるいは配列宣言子です。

規則

コンパイラーはポインティング先にストレージを割り振りません。 ストレージは、実行時に、ポインターのストレージ・ブロック・アドレスを割り当てることに よって、ポインティング先に関連付けられます。 ポインティング先は静的または動的ストレージのいずれにも関連付けることができます。 ポインティング先を参照するには、関連付けられるポインターが定義済みでなければなりません。

整数ポインターは、32 ビット・モードでは INTEGER(4) 型、64 ビット・モードでは INTEGER(8) 型のスカラー変数であり、型を明示的に割り当てることはできません。 整数ポインターと同じ型の変数を使用できる式またはステートメントで、 整数ポインターを使用することができます。 ポインティング先には任意のデータ型を割り当てることができますが、 ストレージ・クラスや初期値を割り当てることはできません。

整数 POINTER ステートメントの中でポインティング先として指定された 実際の配列をポインティング先配列といいます。 ポインティング先配列の次元は、型宣言ステートメント、 DIMENSION ステートメント、 または整数 POINTER ステートメント自体の中で指定することができます。

-qddim コンパイラー・オプションを指定した場合は、メインプログラム 内に現れるポインティング先配列には、調整可能配列仕様も指定できます。 メインプログラムでもサブプログラムでも、次元のサイズはポインティング先が 参照されるときに評価されます (動的に次元指定)。

-qddim コンパイラー・オプションを指定しなかった場合は、サブプログラム内に現れる pointee 配列には調整可能な配列仕様を指定でき、次元サイズは、pointee の評価時ではなくサブプログラムに入った時点で計算されます。

ポインティング先と整数ポインターの定義および使用に関しては、 次の制約事項が適用されます。

     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

関連情報

+------------------------------End of IBM 拡張-------------------------------+

IBM Copyright 2003