本书以及配套的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 章。
f95 符合 ISO/IEC 1539-1:1997 Fortran 标准文档的第一部分。
浮点运算基于 IEEE 标准 754-1985 和国际标准 IEC 60559:1989。
f95 提供了对 SPARC 和 x86 系列处理器体系结构( Solaris 和 Linux (x86) 平台上的 UltraSPARC、SPARC64、AMD64、Pentium Pro 和 Xeon Intel®64)优化开发功能的支持。
Solaris Studio 编译器符合 OpenMP 3.0 共享内存并行化 API 规范。有关详细信息,请参见《OpenMP API 用户指南》。
在本文档中,“标准”是指与上面列出的标准版本相一致。“非标准”或“扩展”是指超出这些标准版本的功能。
负责标准的一方可能会不时地修订这些标准。可能会修订或替换这些编译器所遵循的适用标准的版本,从而导致 Solaris Studio Fortran 编译器未来发行版中的功能与先前发行版不兼容。
Solaris Studio Fortran 编译器 f95 提供以下功能和扩展:
在例程中对参数、公共区等进行全局程序一致性检查。(仅适用于 Solaris 平台)。
优化多处理器系统的自动和显式循环并行化。
VAX/VMS Fortran 扩展,其中包括:
结构、记录、联合和映射
递归
OpenMP 3.0 并行化指令。
全局、窥孔和潜在的并行化优化可产生高性能的应用程序。基准测试表明优化的应用程序的运行速度比未优化的代码快得多。
通用调用惯例允许将使用 C 或 C++ 编写的例程与 Fortran 程序结合使用。
支持启用的 64 位 Solaris 和 Linux 环境。
使用 %VAL 按值进行调用。
Fortran 77 和 Fortran 95/Fortran 2003 程序与目标二进制文件之间的兼容性。
区间运算编程。
某些 Fortran 2003 功能,其中包括流 I/O。
有关每个软件发行版的编译器中添加的新功能和扩展功能的详细信息,请参见附录 B。
另请参见《Oracle Solaris Studio 12.2 发行版的新增功能》,以了解有关本编译器和工具发行版中新增和更改的功能、已知问题、解决方法和限制的最新信息。可以通过 http://www.oracle.com/technetwork/server-storage/solarisstudio/documentation 上的本发行版文档索引页访问该“新增功能”指南。
以下实用程序可为使用 Fortran 进行软件程序开发提供帮助:
Solaris Studio 性能分析器-单线程和多线程应用程序的性能深入分析工具。请参见 analyzer(1)。
asa-此 Solaris 实用程序是一个 Fortran 输出过滤器,用于打印第一列中包含 Fortran 回车控制符的文件。可使用 asa 将按照 Fortran 回车控制惯例设置格式的文件转换为按照 UNIX 行打印机惯例设置格式的文件。请参见 asa(1)。
fdumpmod-显示包含在文件或归档文件中的模块名称的实用程序。请参见 fdumpmod(1)。
fpp-Fortran 源代码预处理程序。请参见 fpp(1)。
fsplit -此实用程序将一个包含几个例程的 Fortran 文件拆分成几个文件,每个文件包含一个例程。请参见 fsplit(1)。
可以使用以下调试实用程序:
Solaris Studio dbx-提供强大、功能丰富的运行时和静态调试器,包含一个性能数据收集器。
Sun 性能库是一个用于计算线性代数和傅立叶变换的优化子例程及函数的库。它基于一般通过 Netlib (www.netlib.org) 提供的标准库 LAPACK、BLAS1、BLAS2、BLAS3、FFTPACK、VFFTPACK 和 LINPACK。
与标准库版本相比,Sun 性能库中的每个子程序执行相同的操作并且具有相同的接口,但通常这些子程序的速度要快得多且准确得多,这些子程序可以用于多处理环境中。
有关详细信息,请参见 performance_library 自述文件和《Sun 性能库用户指南 》。(性能库例程的手册页位于第 3P 节。)
f95 编译器提供编译器标志 -xia 和 -xinterval 以启用新的语言扩展,并生成相应的代码以执行区间运算。有关详细信息,请参见《Fortran 95 区间运算编程指南》。
联机手册 (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) |
目标文件的链接编辑器 |
可通过调用编译器的 -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. |