2014-07-21 51 views
1

我正在使用f2py在python/fortran接口上工作。 我的Fortran代碼有一些子程序,其的參數列表的長度超過一行,所以我已經使用了標準Fortran規則,打破了線,即:f2py。 Fortran子程序參數在多行上。 「unknown_subroutine」

SUBROUTINE mutation(it,pop,pm,pmg,typem,xmin,xmax,newfx,nbvar, 
    $popsize,tip,nouvpop,nbnew) 

當我試着使用f2py打造的Python模塊,使用命令:

f2py3 -c forFunct.f -m mga 

我得到這個:

... 
Block: unknown_subroutine 
... 
Constructing wrapper function "unknown_subroutine"... 
     unknown_subroutine() 

,並最終

error: Command "gcc -pthread -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict- 
prototypes -fPIC -I/tmp/tmp1tw75l/src.linux-x86_64-3.3 
-I/Produits/publics/x86_64.Linux.RH6/python/3.3.3/lib/python3.3/site- 
packages/numpy/core/include - 
I/Produits/publics/x86_64.Linux.RH6/python/3.3.3/include/python3.3m -c 
/tmp/tmp1tw75l/src.linux-x86_64-3.3/mgamodule.c -o 
/tmp/tmp1tw75l/tmp/tmp1tw75l/src.linux-x86_64-3.3/mgamodule.o" 
failed with exit status 1 

你知道這個問題的解決方案嗎?我相信它來自多行參數,是否支持f2py?

謝謝

弗朗西斯

回答

2

究竟如何打破行?從你的代碼片段不清楚,但它看起來是錯誤的。如果我在真實標準方式中做,它將在第6列中定位任何字符,它的工作原理。

1234567 
     SUBROUTINE mutation(it,pop,pm,pmg,typem,xmin,xmax,newfx,nbvar, 
    $ popsize,tip,nouvpop,nbnew) 
     END 
+0

謝謝你,它實際上工作 – user3824727

+1

你可能想標記答案爲接受。 –