在此 f95 编译器发行版中应注意以下问题:
在此发行版中删除过时的 FORTRAN 77 库的操作意味着使用依赖于共享库 libF77、libM77 和 libFposix 的传统 Sun WorkShop f77 编译器编译的旧的可执行文件将不会运行。
使用增强的数组构造函数设置参数常量(类型为指定长度的字符)将导致字符元素的值串联在一起。解决方法是使用数组构造函数中所使用的字符长度(而不是指定长度)来定义参数常量。
使用空白名称指定 C 绑定过程是错误的处理方式,将导致为该过程使用空白名称。解决方法是指定 C 绑定名称,如果不需要,也可以不使用 C 绑定名称。
f95 编译器的早期发行版引入了某些不兼容性,并被此编译器发行版所继承,如果您是从 f95 早期发行版进行更新,应注意这一点。请注意下面的不兼容性:
数组内部函数 ANY、ALL、COUNT、MAXVAL、MINVAL、SUM、PRODUCT、DOT_PRODUCT 和 MATMUL 针对相应 SPARC 平台体系结构进行了高度优化。因此,它们使用全局寄存器 %g2、%g3 和 %g4 作为临时寄存器。
如果调用了上述所列的数组内在函数,则用户代码不应该认为这些寄存器可用于暂时存储。当调用数组内在函数时,这些寄存器中的数据将被覆盖。
调试器 dbx 要求编译中使用的所有目标文件都包含在可执行文件中。通常,无需用户执行额外操作,程序即可满足此要求。但使用含有模块的归档文件时例外。如果程序使用了一个模块,但没有引用模块中的任何过程或变量,则产生的目标文件不会包含对模块中定义的符号的引用。仅当引用目标文件中定义的符号时,链接程序才会链接归档文件中的目标文件。如果不存在此类引用,目标文件将不包括在可执行文件中。当 dbx 尝试查找与使用的模块相关联的调试信息时,将发出警告。对于缺少调试信息的符号,则无法提供有关这些符号的信息。
使用 -u 链接程序选项可以解决这个问题。此选项使用一个符号作为其选项参数。它会将该符号添加到未定义的链接程序符号集中,这就需要解析此符号。与模块关联的链接程序符号通常是模块名称,其所有字母均为小写,后面跟有一条下划线。
例如,为了强制包含模块 MODULE_1 的目标文件被归档文件采用,请指定链接程序选项 -u module_1_。如果使用 f95 命令进行链接,请在命令行上使用 -Qoption ld -umodule_1_。