我是FORTRAN的新手。我有一些用英特尔FORTRAN编写的FORTRAN程序,现在我正在使用gfortran编译它们。
其中一个子程序使用JFIX()函数。当我complie时抛出以下错误。
undefined reference to 'jfix_'
子程序在顶部引用了这个内在函数,如External::JFIX
任何人都可以帮我解决这个问题吗?
答案 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)双精度。