Oracle® Solaris Studio 12.4: Fortran ユーザーズガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

4.3.7 Cray ポインタの使用法

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 です。

  • ba のあとに位置し、長さは n です。

  • cb のあとに位置します

  • abcpool 領域に関連付けられています

  • word64blk(17) と同じです。Cray ポインタはバイトアドレスであり、blk の整数要素はそれぞれ 4 バイトの長さがあるためです。