在python中調(diào)用fortran代碼,要用到f2py這個(gè)程序。它的項(xiàng)目主頁(yè)在此。現(xiàn)在該項(xiàng)目已經(jīng)合并到numpy中了,先安裝python再裝好numpy,就可以使用f2py。不過(guò)對(duì)windows平臺(tái)必須使用gnu的fortran編譯器gfortran,在此下載。裝完了python,numpy和gfortran這三樣?xùn)|西之后,還必須更改如下幾個(gè)環(huán)境變量:
??? 1.在$PATH中添加gfortran的路徑,我的是c:\Program Files\pythonxy\mingw\bin\
??? 2.在$PATH中添加python的路徑,我的是c:\Python26\
??? 3.新建環(huán)境變量C_INCLUDE_PATH,添加gfortran頭文件的路徑,我的是c:\Program Files\pythonxy\mingw\include\
好啦現(xiàn)在f2py就可以用了。新建fortran程序foo.f90如下
foo.f90
subroutine hello (a)
integer a
write(*,*)'Hello from Fortran90!!!',a
end subroutine hello
編譯
f2py -m foo -c foo.f90
運(yùn)行
$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import foo
>>> foo.hello(15)
Hello from Fortran90!!! 15
另外附上f2py支持的數(shù)據(jù)類(lèi)型有
integer[ | *1 | *2 | *4 | *8 ], logical[ | *1 | *2 | *4 | *8 ]
integer*([ -1 | -2 | -4 | -8 ])
character[ | *(*) | *1 | *2 | *3 | ... ]
real[ | *4 | *8 | *16 ], double precision
complex[ | *8 | *16 | *32 ]
|
:
| * | :
intent([ in | inout | out | hide | in,out | inout,out | c |
copy | cache | callback | inplace | aux ])
dimension(
)
common, parameter
allocatable
optional, required, external
depend([
])
check([
])
note(
)
usercode, callstatement, callprotoargument, threadsafe, fortranname
pymethoddef
entry
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

