回覆列表
  • 1 # 使用者2458114238191884

    f2py是numpy自帶的一個工具,只要安裝了numpy,一般都會安裝f2py.exe和f2py.py兩個檔案.

    f2py.exe適合在命令列中使用,而f2py.py則一般在Python程式碼中使用.

    廢話少說, 先建立一個testfortran.f90的檔案如下:

    [plain] view plain copy

    !SUBROUTINE

    SUBROUTINE ADDSUB(A,B,C,D)

    IMPLICIT NONE

    DOUBLE PRECISION A,B,C,D

    !f2py intent(in) :: A,B

    !f2py intent(out) :: C,D

    C = A + B

    D = A - B

    print*, "ADDSUB From Fortran!"

    print*, "ADD=",C

    print*, "SUB=",D

    RETURN

    END

    注意這兩行的程式碼:

    [plain] view plain copy

    !f2py intent(in) :: A,B

    !f2py intent(out) :: C,D

    對於Fortran只是註釋,但對於f2py卻很重要,相當於"簽名".

    注意簽名的註釋前面不能有空格!

    當然也可以寫成如下的形式:

    [plain] view plain copy

    Cf2py intent(in) :: A,B

    Cf2py intent(out) :: C,D

    下面開始編譯Fortran程式碼為python模組,開啟CMD視窗,輸入如下命令:

    [plain] view plain copy

    f2py -m testfortran -c testfortran.f90

    會在當前目錄下生成testfortran.pyd的檔案.

    下面就可以再python中使用這個模組了:

    [python] view plain copy

    In [1]: import testfortran

    In [2]: print testfortran.__doc__

    This module "testfortran" is auto-generated with f2py (version:2).

    Functions:

    c,d = addsub(a,b)

    .

    In [3]: x=testfortran.addsub(4,9)

    ADDSUB From Fortran!

    ADD= 13.000

    SUB= -5.000

    In [4]: x

    Out[4]: (13.0, -5.0)

    In [5]:

  • 中秋節和大豐收的關聯?
  • 用吹風機吹乾頭髮好麼?我的頭髮好乾燥,所以?