Fortran 编译器通过针对 Fortran77、Fortran90 和 Fortran95 标准的创纪录运行时性能和兼容性选项来支持技术和科学应用程序开发。包括大多数 Fortran 2003 功能和 OpenMP 4.0 支持。Fortran 编译器与 C 和 C++ 编译器使用相同的高性能代码生成技术,从而确保结果应用程序为最新的基于 SPARC 和 x86 的 Oracle 系统生成最高性能的并行代码。
Fortran 编译器更改包括编译器通用的新增和更改的功能中所述的更改。
下面列出了此 8.7 发行版的 Fortran 编译器的新增和更改的功能。有关更多信息,请参见 f95 (1) 手册页和Oracle Solaris Studio 12.4:Fortran 用户指南 。
–xM 选项可用于自动生成 makefile 相关项。与新的 – keepmod=yes 选项一起,它允许使用模块在 Fortran 应用程序上进行最优递增构建。新的 – keepmod 选项用于保留编译时不更改的模块。缺省为 –xkeepmod=yes,它取代每次创建新模块文件时的旧行为,即使没有对先前编译进行任何更改也是如此。
使用模块的应用程序的编译时间显著改进,不再出现由于模块处理导致的内存溢出。
#pragma ident 可用于源文件中,标识编译的对象的源版本。
支持延迟类型参数(冒号)作为声明中使用的字符类型中的 LEN 类型参数。例如:
character(LEN=:), pointer :: str
支持过程指针。
针对 ISO_C_BINDING 模块支持 Fortran 2003 函数 C_F_PROCPOINTER()。C_FUNLOC() 函数扩展为支持过程指针作为参数。
完全支持面向对象的 Fortran。现在已允许具有以下属性的类型限制过程:
GENERIC
DEFERRED
NON-OVERRIDABLE
PASS
NOPASS
支持 Fortran 2003 功能让派生类型和通用函数具有相同的名称。
支持 Fortran 2008 功能将 TARGET 对象传递到 INTENT(IN) 指针哑元。
将支持扩展到允许在 Fortran 2003 标准中指定的初始化表达式中使用所有基本内部函数(每个参数本身都是一个初始化表达式)。以前,在该上下文中使用的基本内部函数限于仅返回整数和字符类型的函数。
支持 –fserialio,该选项指定程序不能一次在多个线程中执行 I/O。