下面列出了在使用此发行版的 f95 编译和测试传统 f77 程序时出现的已知不兼容问题。这些问题是由于 f95 中缺少相当的功能或者行为方式不同造成的。下列各项是 f77 中支持的 Fortran 77 非标准扩展,但它们在 f95 中不受支持。
源代码格式
在指定 -f77 选项时,如果名称长度超过 6 个字符,则会发出 ANSI 警告。
I/O:
f95 不允许对直接访问文件使用 ENDFILE。
f95 无法识别在直接访问 I/O 中指定记录编号时使用的 'n 格式:READ (2 ’13) X,Y,Z
f95 无法识别传统 f77 "R" 格式编辑描述符。
f95 不允许在 CLOSE 语句中使用 DISP= 说明符。
不允许在 WRITE 语句中使用位常量。
Fortran 95 NAMELIST 不允许使用长度可变的数组和字符串。
使用 RECL=1 打开的直接访问文件不能用作“流”文件。请改用 FORMAT='STREAM'。
Fortran 95 将非法 I/O 说明符报告为错误,而 f77 只发出警告。
数据类型、声明和用法:
f95 只允许 7 个数组下标;而 f77 允许 20 个。
f95 不允许在 PARAMETER 语句中使用非常量。
不能在 CHARACTER 类型声明的初始化函数中使用整数值。
REAL() 内部函数返回复数参数的实部,而不是将参数转换为 REAL*4。当参数为 DOUBLE COMPLEX 或 COMPLEX*32 时,这将产生不同的结果。
Fortran 95 不允许在数组声明之前在边界表达式中使用数组元素。例如:
subroutine s(i1,i2) integer i1(i2(1):10) dimension i2(10) ...ERROR: "I2" has been used as a function, therefore it must not be declared with the explicit-shape DIMENSION attribute. end |
程序、子例程、函数和语句:
名称的最大长度为 127 个字符。
命令行选项:
f95 不支持的 f77 库例程: