Oracle® Solaris Studio 12.4:Fortran 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

4.3.7 Cray 指针的用法

可以将 Cray 指针赋值如下:

  • 设置为绝对地址

    示例:q = 0

  • 赋值给整数变量、加或减表达式或从整数变量、加或减表达式中赋值

    示例:p = q + 100

  • 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 是块公用区中长度为 1000 的数组

  • b 跟在 a 的后面,其长度为 n

  • c 跟在 b 的后面

  • abcpool 相关联

  • word64blk(17) 相同,因为 Cray 指针是字节地址,而且 blk 的每个整数元素都是 4 字节长