使用Mingw(Anaconda版)在Fortran中使用四倍精度的奇怪行为

时间:2018-01-31 06:41:31

标签: windows fortran mingw quadruple-precision

  • Windows 7 64位
  • GNU Fortran(GCC)4.7.0 20111220(实验性) - >与Anaconda3 / Miniconda3 64位一起安装的MinGW版本。

大家好,

我尝试编译一些使用F2Py从Python中使用的Fortran代码。整个项目是Solcore,以防任何人感兴趣。在Linux和MacOS中一切正常,Windows出现问题。经过一番努力,我已经将问题解决了我的Fortran代码的四重精度变量,这些变量没有被正确处理。

在Linux / MacOS中运行良好但在Windows中运行良好的最小示例是:

program foo
  real*16 q, q2
  q = 20
  q2 = q+q
  print*, q, q2
end program foo

在Linux / MacOS中按预期打印:

20.0000000000000000000000000000000000         40.0000000000000000000000000000000000

然而,在Windows中我得到:

2.00000000000000000000000000000000000E+0001 1.68105157155604675313133890866087630E-4932

撇开科学记数法,显然这不是我的预期。每次我尝试使用四倍精度变量进行操作时都会出现相同的结果,我无法弄清楚。

这与Fortran中的四倍精度变量和Anaconda中包含的MinGW版本的error already pointed不同。

任何建议都将受到欢迎。请记住,最终我需要使用F2Py进行此工作,并且包含在Anaconda中的MinGW是我在阅读了许多说明和教程后最终找到的唯一方法。因此,如果可能的话,我宁愿坚持下去。

非常感谢,

迭戈

0 个答案:

没有答案