Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在f2py中处理字符数组_Python_Fortran_F2py - Fatal编程技术网

Python 在f2py中处理字符数组

Python 在f2py中处理字符数组,python,fortran,f2py,Python,Fortran,F2py,我在使用f2py时遇到字符数组正常工作的问题。我无法从python访问字符数组,但它们似乎是用fortran正确定义的。下面是一个名为“example.f90”的fortran模块示例 我使用f2py编译fortran:f2py-c example.f90-m example。然后运行python脚本example.py: from example import mod mod.test() print(mod.a) print(mod.b) print(mod.c) 结果是 hi a

我在使用f2py时遇到字符数组正常工作的问题。我无法从python访问字符数组,但它们似乎是用fortran正确定义的。下面是一个名为“example.f90”的fortran模块示例

我使用f2py编译fortran:
f2py-c example.f90-m example
。然后运行python脚本example.py:

from example import mod
mod.test()
print(mod.a)
print(mod.b)
print(mod.c)
结果是

 hi a    
 hi b1   hi b2   hi b3   
 hi c1   hi c2   hi c3   
b'hi a    '
b'hi '
Traceback (most recent call last):
  File "example.py", line 7, in <module>
    print(mod.c)
ValueError: data type must provide an itemsize
你好
高b1高b2高b3
高c1高c2高c3
嗨,a
嗨
回溯(最近一次呼叫最后一次):
文件“example.py”,第7行,在
打印(c版)
ValueError:数据类型必须提供itemsize
Fortran似乎正确定义了
b
c
,尽管我无法从python访问
b
c


我做错了什么?为什么我不能从python访问
b
c
?为什么打印
c
会返回
ValueError
?非常感谢您的建议。

我尝试了一个类似的代码,只使用了“character,allocatable::…”,但失败了,出现了相同的错误。。。(尽管它适用于reals等)可能,字符被视为相当特殊的角色?@roygvib,从python访问reals对我来说也很有用。即使对于可分配数组,我也尝试了一个类似的代码,只使用了“character,allocatable::…”,但失败了,出现了相同的错误。。。(尽管它适用于reals等)可能,字符被视为相当特殊的角色?@roygvib,从python访问reals对我来说也很有用。即使对于可分配阵列也是如此。
 hi a    
 hi b1   hi b2   hi b3   
 hi c1   hi c2   hi c3   
b'hi a    '
b'hi '
Traceback (most recent call last):
  File "example.py", line 7, in <module>
    print(mod.c)
ValueError: data type must provide an itemsize