簡體   English   中英

在python中調用fortran代碼時如何處理全局變量(例如,使用f2py)?

[英]How to deal with global variables when calling fortran code in python (e.g. with f2py)?

我想用python運行一些fortran代碼,並為此使用f2py -c -m 但是,似乎只有.FUNCTIONs被打包到.so文件中,而沒有打包到PROGRAM中 那我該如何處理全局變量呢? 例如,將變量c放入模塊中

MODULE nfw
  double precision :: c
END MODULE nfw

,在PROGRAM中進行了修改,並且由FUNCTION隱式使用在同一文件中

PROGRAM Compute_Profile
  USE nfw
  c = 5.0
END PROGRAM Compute_Profile

DOUBLE PRECISION FUNCTION y(x)
  USE nfw
  double precision :: x
  y = c * x
  return
END FUNCTION y

如何調用y(x)函數了解python中c的值?

在f2py模塊下應該是另一個模塊,一個名為nfw的Fortran。 它應該在那里。

$ f2py -c -m mod nfw.f90

$ python
import mod
mod.nfw.c

array(0.0)

確保使用帶有f2py的模塊編譯源文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM