JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.3:Fortran 用户指南     Oracle Solaris Studio 12.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  简介

2.  使用 Solaris Studio Fortran

3.  Fortran 编译器选项

4.  Solaris Studio Fortran 的功能与扩展

4.1 源语言功能

4.1.1 续行限制

4.1.2 固定格式源代码行

4.1.3 制表符格式

4.1.4 采用的源代码格式

4.1.4.1 混合格式

4.1.4.2 大小写

4.1.5 限制和缺省值

4.2 数据类型

4.2.1 布尔类型

4.2.1.1 控制布尔类型的各种规则

4.2.1.2 布尔常量的替代格式

八进制

十六进制

霍尔瑞斯

4.2.1.3 布尔常量的替代上下文

4.2.2 数值数据类型的缩写大小表示法

4.2.3 数据类型的大小和对齐

4.3 Cray 指针

4.3.1 语法

4.3.2 Cray 指针的用途

4.3.3 声明 Cray 指针和 Fortran 95 指针

4.3.4 Cray 指针的功能

4.3.5 Cray 指针的限制

4.3.6 Cray 指针对象的限制

4.3.7 Cray 指针的用法

4.4 STRUCTUREUNION (VAX Fortran)

4.5 无符号整数

4.5.1 算术表达式

4.5.2 关系表达式

4.5.3 控制构造

4.5.4 输入/输出构造

4.5.5 内部函数

4.6 Fortran 200x 功能

4.6.1 与 C 之间的互操作性

4.6.2 IEEE 浮点异常处理

4.6.3 命令行参数内部函数

4.6.4 PROTECTED 属性

4.6.5 Fortran 2003 异步 I/O

4.6.6 扩展的 ALLOCATABLE 属性

4.6.7 VALUE 属性

4.6.8 Fortran 2003 流 I/O

4.6.9 Fortran 2003 IMPORT 语句

4.6.10 Fortran 2003 FLUSH I/O 语句

4.6.11 Fortran 2003 POINTER INTENT 功能

4.6.12 Fortran 2003 中增强的数组构造函数

4.6.13 面向对象的 Fortran 支持

4.6.14 其他 Fortran 2003 和 Fortran 2008 功能

4.7 其他的 I/O 扩展

4.7.1 I/O 错误处理例程

4.7.2 变量格式表达式

4.7.3 NAMELIST 输入格式

4.7.4 二进制未格式化 I/O

4.7.5 各种 I/O 扩展

4.8 指令

4.8.1 特殊 f95 指令行的格式

4.8.1.1 固定格式源代码

4.8.1.2 自由格式源代码

4.8.2 FIXEDFREE 指令

4.8.2.1 作用域

4.8.2.2 用法

4.8.2.3 限制

4.8.3 并行化指令

4.9 模块文件

4.9.1 搜索模块

4.9.2 -use=list 选项标志

4.9.3 fdumpmod 命令

4.10 内部函数

4.11 向前兼容性

4.12 混合语言

5.  FORTRAN 77 兼容性:迁移到 Solaris Studio Fortran

A.  运行时错误消息

B.  功能发行版历史记录

C.  Fortran 指令摘要

索引

4.3 Cray 指针

Cray 指针是一个变量,其值是另一个实体(称为指针对象)的地址。

f95 支持 Cray 指针;标准 Fortran 95 不支持。

4.3.1 语法

Cray POINTER 语句采用以下格式:

POINTER  ( pointer_name, pointee_name [array_spec] ), …

其中,pointer_namepointee_namearray_spec 如下所示:

pointer_name

指向相应 pointee_name 的指针。

pointer_name 包含 pointee_name 的地址。必须是一个标量变量名称(但不是派生类型)。不能是常量、结构名称、数组或函数。

pointee_name

指向相应 pointer_name 的指针对象

必须是: 变量名、数组声明符或数组名称

array_spec

如果 array_spec 存在,则它必须是显形(常量或非常量边界)或者假定大小。

例如,可以声明指向两个指针对象的 Cray 指针:

    POINTER ( p, b ),  ( q, c )

以上示例声明 Cray 指针 p 及其指针对象 b 以及 Cray 指针 q 及其指针对象 c

还可以声明指向数组的 Cray 指针:

     POINTER ( ix, x(n, 0:m) )

以上示例声明 Cray 指针 ix 及其指针对象 x;并将 x 声明为 n x (m+1) 维数组。

4.3.2 Cray 指针的用途

通过将变量与存储块中的特定位置动态关联起来,您可以使用指针访问用户管理的存储。

Cray 指针允许访问绝对内存地址。

4.3.3 声明 Cray 指针和 Fortran 95 指针

Cray 指针声明如下:

POINTER ( pointer_name, pointee_name [array_spec] )

Fortran 95 指针声明如下:

POINTER object_name

不能混用这两种类型的指针。

4.3.4 Cray 指针的功能

4.3.5 Cray 指针的限制

4.3.6 Cray 指针对象的限制

4.3.7 Cray 指针的用法

可以将 Cray 指针赋值如下:

示例: 按上述方式使用 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
    ...

有关以上示例的说明: