将python变量转换为真正的* 16 fortran变量

时间:2013-10-02 16:17:55

标签: variables python-2.7 fortran

我正在用Python编写一个代码,调用一些用Fortran编写的子程序。当变量在Fortran中定义为:

real*8, intent(in)   :: var1,var2

和分别在Python中,

var1 = 1.0
var1 = 1.0
一切都很好。但如果我定义一个扩展的真实,那就是:

real*16, intent(in)   :: var1,var2

并在python中使用

import numpy as np

var1 = np.float16(2)

var2 = np.float16(2)

当将变量传递给fortran例程时,变量会带有一个奇怪的数字。谁能看到我做错了什么?

1 个答案:

答案 0 :(得分:0)

去年的

This numpy-discussion thread表明,numpy的四倍精度因机器而异。我的猜测是你的上下铺数据来自两种不同语言的四位精度意味着不一致。

另请注意,f2py实际上只了解<type>(kind=<precision>) <type> REAL / INTEGER / COMPLEX<precision>是{{1}}整数1,2,4,8(参见FAQ)。