FORTRAN错误 - 对'jfix'的未定义引用

时间:2012-01-09 21:19:18

标签: fortran

我是FORTRAN的新手。我有一些用英特尔FORTRAN编写的FORTRAN程序,现在我正在使用gfortran编译它们。

其中一个子程序使用JFIX()函数。当我complie时抛出以下错误。

undefined reference to 'jfix_'

子程序在顶部引用了这个内在函数,如External::JFIX

任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

JFIX是FORTRAN的英特尔扩展。它将其参数转换为INTEGER(4)。

可能有GNU FORTRAN等价物,或者您可能必须自己提供。

英特尔FORTRAN语言参考可从网络上的各个位置获得。这是one

答案 1 :(得分:0)

JFIX可能是你需要的那个,但是你应该小心,因为JFIX不仅将real转换为整数(如INT所做),还将所有其他类型的东西转换为整数(4)。

here找到的英特尔Fortran语言参考中,它会转换

INTEGER(1),INTEGER(2),INTEGER(4),INTEGER(8), REAL(4),REAL(8),REAL(16),COMPLEX(4), COMPLEX(8),COMPLEX(16)

INTEGER(4)

这只是对你和未来的读者说:虽然它在你的案例中相当于INT,但在任何地方都不是这样。

当你是Fortran的新手时,让我再给出一个精度:括号之间的数字是变量的精确类型。例如,REAL(4)在“常规”架构上是简单的精度,REAL(8)双精度。