英特尔 Fortran 编译器在三倍精度上被碾压

问题描述 投票:0回答:1

我试图编译一个具有三重精度的 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

floating-point fortran intel-fortran
1个回答
4
投票

我认为 r16 是四倍精度,至少在常见用法中是这样,因为 4 字节被视为单精度。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.