我试图编译一个具有三重精度的 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
我认为 r16 是四倍精度,至少在常见用法中是这样,因为 4 字节被视为单精度。
由于有一个编译器选项可以启用 16 字节实数,我怀疑它是否已彻底损坏。
我建议逐段编译以找出问题所在。快速测试(计算 2 的根)应该可以告诉您编译器是否基本上可以处理 16 字节实数。
您在代码中使用指针、公共块、模块或外部库吗?