Oracle® Developer Studio 12.5:Fortran 用户指南

退出打印视图

更新时间: 2016 年 6 月
 
 

5.2 Oracle Solaris Studio 12.4 Fortran 发行版

Oracle Solaris Studio Fortran 95 编译器 8.7 版是 Oracle Solaris Studio 12.4 发行版中的一个组件。

  • 用于 x86 上的 Intel Ivy Bridge 处理器的新的 -xarch-xchip-xtarget 值。

  • 用于 SPARC T5、M5、M6 和 M10+ 处理器的新的 -xarch-xchip-xtarget 值。

  • 支持 Ivy Bridge 汇编程序指令。

  • 支持 Ivy Bridge 内部函数,可在 solstudio-install-dir/lib/compilers/include/cc/immintrin.h 中找到这些函数。

  • -xarch=generic 的缺省值针对 x86 上的 -m32 设置为 sse2

  • 支持 x86 上的 -xlinkopt。对适用于现代 Intel 处理器的大型企业应用程序进行的模块间、过程间代码排序优化。大型应用程序中的完全优化的二进制代码使性能提升了 5%。

  • 增强的 -xs 选项,用于在可执行文件大小与为了调试而保留对象文件的需求之间进行权衡。

  • 支持 Linux 上的 -xanalyze-xannotate

  • 支持 -fopenmp-xopenmp=parallel 等效。

  • 对使用模块的应用程序进行编译的时间有明显改进,消除了由于模块处理而导致的内存溢出。

  • !$pragma ident 可用于源文件中,标识编译的对象的源版本。

    f90 源文件的格式为:

    !$pragma ident "$Id: <Identification String> $"

    请注意,<Identification String> 前后各需要一个空格。

    例如:

    !$PRAGMA IDENT "$Id: Identification String $"
    program foobar
       character (LEN=120) :: versionid
       parameter (versionid = "$Id: string $")
       character*120 v2
       data v2/"$Id$"/
       print *,"hello world",versionid,v2
    end program

    在 Linux 平台上,可使用 ident 命令显示标识字符串。在 Oracle Solaris 上,可使用 mcs –p 命令。

    此外,如果源文件中已将标识字符串包含为参数常量,例如上述示例中的 versionid,则可使用以下命令将 versionid 参数常量的值转换为标识字符串。

    –qoption f90comp –ident=versionid
  • 支持延迟类型参数(冒号)作为在声明中使用的字符类型中的 LEN 类型参数。例如:

    character(LEN=:), pointer :: str
  • 支持过程指针。

  • 支持 Fortran 2003 标准中 ISO_C_BINDING 模块的 C_F_PROCPOINTER 函数。C_FUNLOC 函数扩展为允许过程指针作为参数。

  • 支持 Fortran 2003 功能的 ABSTRACT 接口。

  • 完全支持面向对象的 Fortran。现在允许使用具有 GENERICDEFERREDNON_OVERRIDABLEPASSNOPASS 属性的类型绑定过程。

  • 支持 Fortran 2003 功能,使派生类型和通用函数有相同的名称。

  • 支持 Fortran 2008 功能,允许将 TARGET 对象传递到 INTENT(IN) 指针哑元。

  • 支持 Fortran 2003 功能,允许在派生类型中完成例程。

  • 新编译器选项:

    • -fma,启用自动生成浮点混合乘加指令。

    • -fserialio,指定程序不能一次在多个线程中执行 I/O。

    • (x86) -preserve_argvalues,在堆栈中保存基于寄存器的函数参数的副本。

    • -xdebuginfo,控制发出多少调试和监测信息。

    • -xglobalize,控制文件静态变量的全局化,但是不控制函数的全局化。

    • -xinline_param,可用于更改编译器用来确定何时内联函数调用的试探式方法。

    • -xinline_report,在编译器内联函数时生成报告并写入标准输出。

    • -xipo_build,通过避免在初始传递期间通过编译器进行优化(仅在链接时优化)而缩短编译时间。

    • -xkeep_unref,保留未引用函数和变量的定义。

    • -keepmod,保留编译时未发生更改的模块。缺省值是 -xkeepmod=yes,它代替了每次创建新模块文件时的旧行为,即使与上次编译相比没有任何变化。

    • -xM,自动生成 makefile 依赖性。与新的 -keepmod=yes 选项结合使用,允许使用模块在 Fortran 应用程序上实现最佳增量生成。

    • -xpatchpadding,在各函数启动之前保留内存区域。

    • (Oracle Solaris) -xsegment_align,使驱动程序在链接行上包括特殊映射文件。

    • -xthroughput,指示当多个进程同时在系统上运行时运行应用程序。

    • -xunboundsym,指定程序是否包含对动态绑定符号的引用。

  • 自从 2005 年发行 Sun Studio 10 以来,Studio Fortran 编译器就没有使用 SPARC 平台上的库 libfmaxlailibfmaxvailibfminlailibfminvailibfprodailibfsumai

    未来的发行版中将删除这些库。到那时候,将不再使用由 Sun Studio 10 发行版之前的 Studio 编译器生成的对象文件和可执行文件,并且必须在更新的 Studio 编译器中对这些文件重新进行编译。如果您有需要使用任何这些库的旧对象文件和可执行文件,但重新编译又不可行,则应保留旧编译器安装,或将所需的特定库从旧编译器安装复制到新编译器安装。