FORTRAN错误-未定义对';jfix';

FORTRAN错误-未定义对';jfix';,fortran,Fortran,我是FORTRAN的新手。我有一些用英特尔FORTRAN编写的FORTRAN程序,现在我正在用gfortran编译它们 其中一个子例程使用JFIX()函数。当我编译时,抛出以下错误 undefined reference to 'jfix_' 子例程在顶部引用了该内在函数,如External::JFIX 有人能帮我解决这个问题吗?JFIX是FORTRAN的英特尔扩展。它将其参数转换为整数(4) 可能有一个GNU FORTRAN等价物,或者您必须自己提供 “英特尔FORTRAN语言参考”可从we

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

其中一个子例程使用JFIX()函数。当我编译时,抛出以下错误

undefined reference to 'jfix_'
子例程在顶部引用了该内在函数,如
External::JFIX


有人能帮我解决这个问题吗?

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

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


“英特尔FORTRAN语言参考”可从web上的多个位置获得。以下是。

JFIX可能是您需要的,但您应该小心,因为JFIX不仅将实数转换为整数(就像INT那样),而且还将所有其他类型的内容转换为整数(4)

根据找到的“英特尔Fortran语言参考”,它将转换

整数(1)、整数(2)、整数(4)、整数(8), 实数(4)、实数(8)、实数(16)、复数(4), 综合体(8),综合体(16)

整数(4)

这只是想对你和未来的读者说:虽然在你的例子中它相当于INT,但并非所有地方都是如此


由于您是Fortran新手,让我再给您一个精度:括号之间的数字是变量的精度类型。例如,REAL(4)是“传统”体系结构上的简单精度,REAL(8)是双精度。

谢谢,我找到了JFIX()的等价函数,在我的例子中,我不得不使用INT(a)。只是一个小问题,内在函数不需要
外部::JFIX
(例如)声明。
external
语句用于引用在程序或模块外部定义的例程。通常用于引用库中包含的例程。因此,我的猜测是(如答案中所述),
JFIX
是Intel编写的扩展库的一部分。