2

我试图在 FORTRAN[real(kind=16)] 上进行四倍精度,但我不断收到错误

C:\User\User\AppData\Local\Temp/ccUMY6b.0:forcefunction.f95:(.text+0x437):
undefined reference to 'qcos_'

我试图改变qcoscos但是,

C:\User\User\AppData\Local\Temp/ccM5CBUM.0:forcefunction.f95:(.text+0x2fd1):
undefined reference to '_g95_qcos_r16'

sin, abs, acos, asin,同样的问题sqrt

4

2 回答 2

2

kind=16不一定是四精度。kind 值不是由语言标准定义的,也不能跨编译器移植。在您的编译器上,16 可能不是四精度的类型值。

并非所有编译器在所有架构上都支持四精度。您可以通过打印以下值进行检查:

selected_real_kind (14)
selected_real_kind (17)
selected_real_kind (32)

第一个请求双精度,下一个请求有时在 Intel 处理器上可用的中间精度(10 字节),最后一个四元组。如果编译器不支持请求的十进制位数,selected_real_kind函数将返回-1.

于 2013-11-18T00:46:15.343 回答
1

我可以用 g95 4.0.3 在我的系统上确认您的问题。

根据这个线程http://coding.derkeiler.com/Archive/Fortran/comp.lang.fortran/2009-02/msg00668.html,内部函数尚未实现四精度。因此,您必须更改编译器,或仅使用双精度。

于 2013-11-18T11:54:04.373 回答