- 视窗 7 64 位
- GNU Fortran (GCC) 4.7.0 20111220 (experimental) --> 使用 Anaconda3/Miniconda3 64 位安装的 MinGW 版本。
大家好,
我正在尝试编译一些 Fortran 代码,以便使用 F2Py 从 Python 中使用。完整的项目是Solcore,以防有人感兴趣。在 Linux 和 MacOS 中一切正常,问题出现在 Windows 上。经过一番努力,我将问题归结为我的 Fortran 代码的四倍精度变量,这些变量没有得到正确处理。
一个在 Linux/MacOS 中运行良好但在 Windows 中运行良好但在 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 版本已经指出的错误不同。
任何建议都将受到欢迎。请记住,最终我需要使用 F2Py 来完成这项工作,而 Anaconda 中包含的 MinGW 是我在阅读了许多说明和教程后最终找到使其工作的唯一方法。因此,如果可能的话,我宁愿坚持下去。
非常感谢,
迭戈