4

我试图编译一个具有三重精度的 f90 文件(我知道这并不常见,但无论如何......)。几分钟后,它说:

ifort: error #10106: Fatal error in /opt/intel/Compiler/11.1/072/bin/intel64/fortcom, terminated by kill signal
compilation aborted for foo.f90 (code 1)

我的编译命令只是:

ifort -r16 foo.f90

但是,当我使用双精度时,一切都很好,通过-r16-r8.

你能告诉我这可能的原因是什么吗?我检查了我的代码,我想没有问题。当然,如果你需要我可以给你看。

我的编译器版本是Version 11.1 Build 20100414

4

1 回答 1

4

我认为 r16 是四倍精度,至少在常用的情况下,因为 4 个字节被认为是单精度。

由于有一个编译器选项可以启用 16 字节实数,我怀疑它被彻底破坏了。

我建议逐个编译以找出问题所在。快速测试(计算 2 的根)应该会告诉您编译器是否基本上可以处理 16 字节实数。

您是否在代码中使用指针、公共块、模块或外部库?

于 2012-04-10T20:45:43.337 回答