回 帖 发 新 帖 刷新版面

主题:如何判断一段代码是fortran77 还是fortran95编写的

运行的环境是windowXP 使用CVF6.5.
我接触fortran是直接使用的彭国伦的fortran95那本书,使用自由格式编写.f90的代码。使用imsl中的函数都没有问题。

最近接触了一些代码采用的是固定格式编写的.f文件,其中的变量沿用的是不定义直接使用,按照默认的i-n开头的为整数类型。
我在这些.f文件的基础上想通过使用use imsl或者其他一些imsl的模块,来使用比如线性方程组求解,求奇异值等函数,都在链接的时候无法识别,认为是不能识别的外部函数。

我现在想请教一下,是不是以.f结尾的文件是用fortran 77编写的?他们不能使用imsl?也不能是用类似use等语法,来表示全局变量,只能用common?如何来判断一段代码是用fortran77编写的还是用fortran95编写的?

我现在彻底搞糊涂了。另外CVF所提供的编译器是可以编译fortan77和fortan95的代码的,是吗

请高手指点一下,非常感谢

回复列表 (共2个回复)

沙发

Fortran77 和 Fortran90 语法没有很大的差别,他们有很大一部分交集。差别只是很小一部分。

而且 Fortran90 保留了绝大多数 F77 的语法,是提供向下兼容的。

所以很难说一段代码是 Fortran90 的还是 Fortran77 的。也没必要深究。

.f 通常是固定格式,.f90 通常是自由格式。这是两种代码形式,与语法规范没有直接关系。

固定格式也可以使用 F90 的语法。至于你不能使用 IMSL,可能需要详细的错误提示才能判断。

板凳

雪球,我是在使用lin_sol_gen的时候,链接的时候总是报出external unresolved 
我已经在调用该函数的子函数最前面使用了use lin_sol_gen_int
    use rand_gen_int
    use error_option_packet
在include和link目录都指定了imsl/include 和imsl/lib

以前使用.f90编程的时候也用过此函数,使用方法也是这样。但是这次就死活链接的时候找不到

我来回复

您尚未登录,请登录后再回复。点此登录或注册