Oracle Solaris Studio 12.2:Fortran 用户指南

第 1 章 简介

本书以及配套的Fortran 编程指南中介绍的 Solaris Studio Fortran 编译器 f95 可在 SPARC、UltraSPARC 和 x64/x86 平台上的 Solaris 操作环境下以及 x86/x64 平台上的 Linux 环境下使用。此编译器符合发布的 Fortran 语言标准,并提供很多扩展的功能,其中包括多处理器并行化、高级的优化代码编译以及混合的 C/Fortran 语言支持。

f95 编译器还提供接受大多数传统 Fortran 77 源代码的 Fortran 77 兼容性模式。不再包含单独的 Fortran 77 编译器。有关 FORTRAN 77 兼容性和迁移问题的信息,请参见第 5 章。

1.1 标准一致性

负责标准的一方可能会不时地修订这些标准。可能会修订或替换这些编译器所遵循的适用标准的版本,从而导致 Solaris Studio Fortran 编译器未来发行版中的功能与先前发行版不兼容。

1.2 Fortran 编译器的功能

Solaris Studio Fortran 编译器 f95 提供以下功能和扩展:

有关每个软件发行版的编译器中添加的新功能和扩展功能的详细信息,请参见附录 B。

另请参见《Oracle Solaris Studio 12.2 发行版的新增功能》,以了解有关本编译器和工具发行版中新增和更改的功能、已知问题、解决方法和限制的最新信息。可以通过 http://www.oracle.com/technetwork/server-storage/solarisstudio/documentation 上的本发行版文档索引页访问该“新增功能”指南。

1.3 其他 Fortran 实用程序

以下实用程序可为使用 Fortran 进行软件程序开发提供帮助:

1.4 调试实用程序

可以使用以下调试实用程序:

1.5 Sun 性能库

Sun 性能库是一个用于计算线性代数和傅立叶变换的优化子例程及函数的库。它基于一般通过 Netlib (www.netlib.org) 提供的标准库 LAPACK、BLAS1、BLAS2、BLAS3、FFTPACK、VFFTPACK 和 LINPACK。

与标准库版本相比,Sun 性能库中的每个子程序执行相同的操作并且具有相同的接口,但通常这些子程序的速度要快得多且准确得多,这些子程序可以用于多处理环境中。

有关详细信息,请参见 performance_library 自述文件和《Sun 性能库用户指南 》。(性能库例程的手册页位于第 3P 节。)

1.6 区间运算

f95 编译器提供编译器标志 -xia-xinterval 以启用新的语言扩展,并生成相应的代码以执行区间运算。有关详细信息,请参见《Fortran 95 区间运算编程指南》。

1.7 手册页

联机手册 (man) 页提供了关于命令、函数、子例程或这些项的集合的当前文档。要访问 Solaris Studio 的手册页,应将用户的 MANPATH 环境变量设置为 Solaris Studio 安装目录 man

可以通过运行以下命令来显示手册页:


demo% man topic

在整个 Fortran 文档中,出现的手册页参考带有主题名称和手册章节号: 可使用 man f95 访问 f95(1)。例如,可在 man 命令中使用 -s 选项来访问 ieee_flags(3M) 指示的其他部分:


demo% man -s 3M ieee_flags

Fortran 库例程是在手册页第 3F 节中介绍的。

下面列出了对于 Fortran 用户非常重要的 man 页:

f95(1)

Fortran 95 命令行选项 

analyzer(1)

Solaris Studio 性能分析器 

asa(1)

Fortran 回车控制打印输出后处理器 

dbx(1)

命令行交互调试器 

fpp(1)

Fortran 源代码预处理器 

cpp(1)

C 源代码预处理器 

fdumpmod(1)

显示模块 (.mod) 文件的内容

fsplit(1)

预处理器将 Fortran 源例程分成单个文件 

ieee_flags(3M)

检查、设置或清除浮点异常位 

ieee_handler(3M)

处理浮点异常 

matherr(3M)

数学库错误处理例程 

ld(1)

目标文件的链接编辑器 

1.8 命令行帮助

可通过调用编译器的 -help 选项来查看 f95 命令行选项的简短描述(如下所示):


%f95 -help=flags
Items within [ ] are optional. Items within < > are variable parameters.
Bar | indicates choice of literal values.
-someoption[={yes|no}] implies -someoption is equivalent to -someoption=yes
_______________________________________________________________
-a                 Collect data for tcov basic block profiling
-aligncommon[=<a>] Align common block elements to the specified 
                   boundary requirement; <a>={1|2|4|8|16}
-ansi              Report non-ANSI extensions.
-autopar           Enable automatic loop parallelization
-Bdynamic          Allow dynamic linking
-Bstatic           Require static linking
-C                 Enable runtime subscript range checking
-c                 Compile only; produce .o files but suppress
                   linking
...etc.