我正在用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例程时,变量会带有一个奇怪的数字。谁能看到我做错了什么?
答案 0 :(得分:0)
This numpy-discussion thread表明,numpy的四倍精度因机器而异。我的猜测是你的上下铺数据来自两种不同语言的四位精度意味着不一致。
另请注意,f2py
实际上只了解<type>(kind=<precision>)
<type>
REAL
/ INTEGER
/ COMPLEX
和<precision>
是{{1}}整数1,2,4,8(参见FAQ)。