Cray ポインタには次のようにして値を割り当てることができます。
絶対アドレスに設定します。
例: q = 0
整変数の加減式によって割り当てます。
例: p = q + 100
Cray ポインタは整数ではありません。Cray ポインタを実数変数に割り当てることはできません。
LOC 関数 (非標準) を使用して Cray ポインタを定義することができます。
例: p = LOC( x )
例: Cray ポインタの使用例
SUBROUTINE sub ( n )
COMMON pool(100000)
INTEGER blk(128), word64
REAL a(1000), b(n), c(100000-n-1000)
POINTER ( pblk, blk ), (ia, a ), ( ib, b ), &
( ic, c ), ( address, word64 )
DATA address / 64 /
pblk = 0
ia = LOC( pool )
ib = ia + 4000
ic = ib + n
...前述の例を説明します。
word64 は絶対アドレス 64 の内容を参照します。
blk はメモリーの最初の 128 ワードを占める配列です。
a は無名共通ブロックにある配列で、長さは 1,000 です。
b は a のあとに位置し、長さは n です。
c は b のあとに位置します
a、b、c は pool 領域に関連付けられています
word64 は blk(17) と同じです。Cray ポインタはバイトアドレスであり、blk の整数要素はそれぞれ 4 バイトの長さがあるためです。