Sun Studio 12:Fortran 用户指南

第 5 章 FORTRAN 77 兼容性:迁移到 Fortran 95

Fortran 95 编译器 f95 可编译大多数传统的 FORTRAN 77 程序,其中包括以前使用 f77 编译器编译的、使用非标准扩展的程序。

f95 可直接接受很多 FORTRAN 77 功能。其他功能要求在 FORTRAN 77 兼容性模式 (f95 -f77) 下进行编译。

本章介绍 f95 接受的 FORTRAN 77 功能,并列出了那些与 f95 不兼容的 f77 功能。有关 f77 编译器接受的任何非标准 FORTRAN 77 扩展的详细信息,请参见位于以下网址的《FORTRAN 77 Language Reference 》手册:http://docs.sun.com/source/806-3594/index.html

有关 f95 编译器接受的其他 Fortran 95 语言扩展的信息,请参见第 4 章,Fortran 95 功能和差异

f95 可编译符合标准的 FORTRAN 77 程序。为确保连续可移植性,应当将那些使用非标准 FORTRAN 77 功能的程序迁移到符合标准的 Fortran 95 中。如果使用 -ansi 选项进行编译,则程序中所有非标准的使用情况都会被标记出来。

5.1 兼容的 f77 功能

f95 可直接接受或在 -f77 兼容性模式下编译时接受 FORTRAN 77 编译器 f77 的以下非标准功能:

源代码格式

I/O:

数据类型、声明和用法:

程序、子例程、函数和可执行语句:

其他

有关非标准语言扩展的语法和语义的详细信息,请参见位于以下网址的《FORTRAN 77 Language Reference》:http://docs.sun.com/source/806-3594/index.html

5.2 不兼容问题

下面列出了在使用此发行版的 f95 编译和测试传统 f77 程序时出现的已知不兼容问题。这些问题是由于 f95 中缺少相当的功能或者行为方式不同造成的。下列各项是 f77 中支持的 Fortran 77 非标准扩展,但它们在 f95 中不受支持。

源代码格式

I/O:

数据类型、声明和用法:

程序、子例程、函数和语句:

命令行选项:

f95 不支持的 f77 库例程

5.3 与 f77 编译的例程链接

5.3.1 Fortran 95 内函数

Fortran 95 标准支持 FORTRAN 77 中没有的内函数。《Fortran 库参考》手册中介绍了完整的 Fortran 95 内函数集,其中包括非标准的内函数。

如果在程序中将《Fortran 库参考》中列出的任何内函数名称用作函数名称,则必须添加 EXTERNAL 语句才能让 f95 使用您的例程而不是内例程。

Fortran 库参考》还列出了以前发行版的 f77 编译器能够识别的所有内函数f95 编译器也将这些名称识别为内函数。

如果使用-f77=intrinsics 进行编译,则会将编译器识别的内函数限定为 f77 编译器识别的那些函数,而忽略 Fortran 95 内函数。

5.4 有关迁移到 f95 编译器的附加说明