我在 Fortran 中得到了这个简单的模块:
测试.f90:
module test
implicit none
contains
subroutine foo(chid)
implicit none
character(len=*),intent(out):: chid ! char. identifier
chid = "foo"
end subroutine foo
end module test
program bar
use test
character(len=20) text
call foo(text)
write(*,*) text
end program bar
编译它(在 Windows 上)gfortran test.f90 -o test.exe
并运行它,正如预期的那样:
foo
我也可以使用 f2py 编译它:c:\Python27\python.exe c:\Python27\Scripts\f2py.py --fcompiler=gnu95 --compiler=mingw32 -c -m test \test.f90
当我运行这个 Python 脚本时:
测试.py:
from id_map import test
print "This should be 'foo':"
print test.foo()
print "was it?"
我得到以下输出:
This should be 'foo':
was it?
如您所见,应为“foo”的字符串为空。为什么是这样?