【发布时间】:2020-02-16 12:47:11
【问题描述】:
我有二维数组
real triangle(0:2, 0:1)
其中“三角形”是一个向量数组(一维数组) 我也有子程序
subroutine vecSub(lhs, rhs, result)
real lhs(0:1), rhs(0:1), result(0:1)
result(0) = lhs(0) - rhs(0)
result(1) = lhs(1) - rhs(1)
return
end
有没有办法将“三角形”变量中的一个向量传递给这个子程序? Fortran-90 可以做到这一点:triangle(0, :) 它给出了第一个三角形数组,但我只能使用 FORTRAN-77,所以这不行,有什么建议吗?
【问题讨论】:
-
不,您不能在 Fortran 77 中传递数组的一部分。有一种方法可以做类似的事情,但是要传递“向量”,请使用 Fortran 2003 或更高版本,这就是你应该在所有新代码中做。 Fortran 77 已经死了,它仍然在抽搐,因为人们仍然在教它,从而损害了他们的学生。请帮助它最终摆脱困境。
-
只是想知道,你提到你只能使用 Fortran77,你是在暗示你必须严格遵循它的标准,还是人们将 Fortran77 与固定格式源连接而 Fortran90 与免费连接是一种常见的误解- 形式来源。真的已经没有很多编译器可以针对 ANSI Fortran77 进行编译了。
-
没办法,单个学生不可能为俄罗斯的整个教育系统做点什么:D 我们应该使用 fortran 77 并且不能使用任何更高版本的标准
-
我们应该只使用标准77,正如老师所说(多次,如果你好奇的话),我们应该使用的IDE是WATCOM
-
由于您需要重写整个子例程(F77 编译器不会理解任何一行),您是否接受有关 50 年前如何编写这样的东西以适应这个愿望?