无法使用 s = system() 将值从 python 传输到 Fortran 中定义的变量

Cannot transfer values from python to variable defined in Fortran by using s = system()

我想调用 Fortran 中的 python 代码,并使用 system() 命令将 python 中生成的值传输到 Fortran。但是,它不起作用。 这是我的 Fortran 代码:

program SystemTest
  character(len=256) :: cmd
  integer :: py
  print *, "FORTRAN: BLOCKING"
  py = system("python python_number.py")
  print *, py
  py = 2
  print *, py
  print *, "FORTRAN: EXIT"
end program SystemTest

这是我要调用的 python 代码:

def generate_a_number(a):
    return a
generate_a_number(2)

我得到了这个打印结果:

 FORTRAN: BLOCKING
           0
           2
 FORTRAN: EXIT

Process returned 0 (0x0)   execution time : 0.141 s
Press any key to continue.

返回值一直为0,不知是否可以使用system()命令来传输数据。如果没有,如何从python获取数据。 任何建议将不胜感激。

函数system()returns只有执行状态。要从 Python 脚本中获取结果,您可以将其写入文件:

call system("python python_number.py > tmp.txt")
open(11, file="tmp.txt")
.......