compiler-errors - 最大艾芬特18艾芬特19

标签 compiler-errors fortran intel-fortran data-management

运行这个小程序

program main
  implicit none

  integer(8) :: irecl
  irecl= 4147483646_8
  open(3,file='STORE.data',form='unformatted',access='direct',recl=irecl)
end

使用ifort 19.0.0.117进行编译不会给我带来任何问题,但是使用ifort 18.0.1进行编译会给我一个forrtl: severe (118)。我知道这是因为ifort具有最大记录长度(至少18版本有)。我找不到关于ifort 19的最大记录长度的任何信息。它消失了吗?或有多高?它似乎低于int * 8的范围(9223372036854775807)。

最佳答案

比较版本18和19之间的英特尔文档,我发现记录长度值的限制已删除。 (关于格式记录,文档尚不完全清楚,但我认为它也适用于此。)实际上,您将只能直接访问适合带符号的64位的字节偏移量整数。请注意,默认情况下,您在OPEN中显示的RECL =单位为4字节单位(除非您已启用“assume byterecl”选项(也由standard_semantics隐含))。

我回想起我在英特尔时的经历,那是一个错误,在该错误中,编译器和运行时库不同意它们对大于2 ** 32的RECL值的支持。该问题可能在版本19中已修复。

我同意弗拉基米尔F的观点,您最好直接问英特尔。您可以在英特尔论坛上提问,尽管可能需要一些时间,但可能会得到熟悉的答复。

关于compiler-errors - 最大艾芬特18艾芬特19,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53757862/

相关文章:

linux - cmake 在 Linux 上复制 Fortran 模块失败

c - Windows 中的混合编程

arrays - 我可以在 Fortran 中使用可分配数组作为意图(输出)矩阵吗?

fortran - 当输入字符而不是数字时防止 FORTRAN 关闭

fortran - 适用于非常旧的代码的 ifort 方言选项

c++ - 你如何修复 C++ 预期的主表达式错误?

c++ - 如何修复 pimpl 实现中预期的主表达式编译错误?

java - 它不断出现 'Cannot find symbol'错误

c# - 在初始化后的事件定义中,为什么我会收到错误 18 使用未分配的局部变量 'beforeEvntDrawArg'