2016-07-08 22 views
15

私はPythonファイルで使用したいいくつかのFortranファイルを持っています。私はC:\ Python27 \ python.exe setup.py build_ext --inplace --fcompiler = g95というコマンドを使いました。私のsetup.pyファイルには、次のコードが含まれます。ナンシーセットアップエラー:余分な仮引数

import sys, os 
extra_link_args = [] 
extra_link_args = ['-framework', 'accelerate'] 
from numpy.distutils.core import setup, Extension 
opt_flags = ['-g', '-fbounds-check', '-I/usr/include/'] 
files1 = ['particle_solvers/fbsl_sim_fmod.f90', 
      'particle_solvers/fbsl_parts_fmod.f90', 
      'particle_solvers/fbsl_poisson_fmod.f90', 
      'particle_solvers/fbsl_convol_fmod.f90', 
      'particle_solvers/fbsl_lbfr_parts_fmod.f90', 
      'particle_solvers/fbsl_ltp_parts_fmod.f90', 
      'particle_solvers/fbsl_pusher_fmod.f90', 
      ] 
ext1 = Extension(name='_fbsl_f90', 
       sources=files1, 
       extra_compile_args=opt_flags, 
       extra_link_args=extra_link_args) 
setup(name="_fbsl_f90", 
     version='0.1', 
     description="Hidden", 
     author="Hidden", 
     author_email='Hidden', 
     url='', 
     ext_modules=[ext1]) 

をしかし、私は次のエラーを持っている:

g95.exe:f90: build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:211 
    &ef2pywrap, smooth_heaviside, r) 
            1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_smooth_heaviside' at (1) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:13 
    &nf2pywrap, t) 
       1 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:217 
    &nf2pywrap, f_exact_is_known, t) 
       2 
Error: Differing types REAL(8) and LOGICAL(4) in formal arguments at (1) and (2) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:223 
    &inal_is_knownf2pywrap, f_exact_final_is_known) 
          1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_f_exact_final_is_known' 
at (1) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:228 
    &2pywrap, f_exact_initial, eta_0, eta_1) 
             1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_f_exact_initial' at (1) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:235 
    &, t, eta_0, eta_1) 
        1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_f_exact' at (1) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:243 
    &rap, f_exact_final, eta_0, eta_1) 
           1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_f_exact_final' at (1) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:250 
    &_field_is_givenf2pywrap, velocity_field_is_given) 
           1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_velocity_field_is_given' 
at (1) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:255 
    &ine_u0, x0, x1) 
        1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_affine_u0' at (1) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:262 
    &ine_u1, x0, x1) 
        1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_affine_u1' at (1) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:269 
    &p, quadratic_u0, t, x0, x1) 
           1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_quadratic_u0' at (1) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:277 
    &p, quadratic_u1, t, x0, x1) 
           1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_quadratic_u1' at (1) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:285 
    &w_0f2pywrap, bwd_affine_flow_0, t, x0, x1) 
              1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_bwd_affine_flow_0' at (1 
) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:293 
    &w_1f2pywrap, bwd_affine_flow_1, t, x0, x1) 
              1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_bwd_affine_flow_1' at (1 
) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:301 
    &ic_flow_0f2pywrap, bwd_quadratic_flow_0, t, x0, x1) 
                 1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_bwd_quadratic_flow_0' at 
(1) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:309 
    &ic_flow_1f2pywrap, bwd_quadratic_flow_1, t, x0, x1) 
                 1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_bwd_quadratic_flow_1' at 
(1) 
In file build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90:317 
    &0, x1) 
     1 
Error: Extra formal argument for 'f2pywrap_fbsl_sim_f90_bggk_a' at (1) 
error: Command "C:\Users\QUENTIN\bin\g95.exe -fno-second-underscore -O -Ibuild\s 
rc.win32-2.7 -IC:\Python27\lib\site-packages\numpy\core\include -IC:\Python27\in 
clude -IC:\Python27\PC -c -c build\src.win32-2.7\_fbsl_f90-f2pywrappers2.f90 -o 
build\temp.win32-2.7\Release\build\src.win32-2.7\_fbsl_f90-f2pywrappers2.o -fmod 
=build\temp.win32-2.7\Release\ -Ibuild\temp.win32-2.7\Release\" failed with exit 
status 1 

私はそれらの余分な仮引数のエラーを持っている理由私は理解していません。どうすれば修正できますか?私はWindows 7でPython 2.7とg95コンパイラを使って作業しています。

EDIT:

module test_f90 

implicit none 

real *8 :: delta 

contains 

real*8 function test_f(r) 
    real*8, intent(in) :: r 
    test_f = 0.5*(1 + erf(r/delta)) 
end function 

end module test_f90 

私は、コマンドCを使用する場合:\ Python27 \ python.exe setup.pyにbuild_ext --inplace --fcompilerさて、簡素化するためには、ここに私のFortranコードのサンプルです=このsetup.pyファイルとG95:

!  -*- f90 -*- 
!  This file is autogenerated with f2py (version:2) 
!  It contains Fortran 90 wrappers to fortran functions. 

     subroutine f2pywrap_test_f90_test_f (test_ff2pywrap, r) 
     use test_f90, only : test_f 
     real(kind=8) r 
     real(kind=8) test_ff2pywrap 
     test_ff2pywrap = test_f(r) 
     end subroutine f2pywrap_test_f90_test_f 

     subroutine f2pyinittest_f90(f2pysetupfunc) 
     use test_f90, only : delta 
     interface 
     subroutine f2pywrap_test_f90_test_f (test_ff2pywrap, test_f, r) 
     real(kind=8) test_f 
     real(kind=8) r 
     real(kind=8) test_ff2pywrap 
     end subroutine f2pywrap_test_f90_test_f 
     end interface 
     external f2pysetupfunc 
     call f2pysetupfunc(delta,f2pywrap_test_f90_test_f) 
     end subroutine f2pyinittest_f90 

BU:私はf2pyによって生成され、このFortranのファイルを持っている

import sys 

extra_link_args = [] 

from numpy.distutils.core import setup, Extension 

opt_flags = ['-g', '-fbounds-check', '-I/usr/include/'] 


files1 = ['test_fmod.f90', 
      ] 


ext1 = Extension(name='_test_f90', 
       sources=files1, 
       extra_compile_args=opt_flags, 
       extra_link_args=extra_link_args) 


setup(name="_test_f90", 
     version='0.1', 
     description="test module", 
     author="Hidden", 
     author_email='Hidden', 
     url='', 
     ext_modules=[ext1]) 

tは私はまだ、このエラーがあります:最初の2つのそして3つの仮引数:

g95.exe:f90: build\src.win32-2.7\_test_f90-f2pywrappers2.f90 
In file build\src.win32-2.7\_test_f90-f2pywrappers2.f90:15 

     subroutine f2pywrap_test_f90_test_f (test_ff2pywrap, test_f, r) 
                    1 
Error: Extra formal argument for 'f2pywrap_test_f90_test_f' at (1) 
error: Command "C:\Users\QUENTIN\bin\g95.exe -fno-second-underscore -O -Ibuild\s 
rc.win32-2.7 -IC:\Python27\lib\site-packages\numpy\core\include -IC:\Python27\in 
clude -IC:\Python27\PC -c -c build\src.win32-2.7\_test_f90-f2pywrappers2.f90 -o 
build\temp.win32-2.7\Release\build\src.win32-2.7\_test_f90-f2pywrappers2.o -fmod 
=build\temp.win32-2.7\Release\ -Ibuild\temp.win32-2.7\Release\" failed with exit 
status 1 
+2

これらのエラーは、Fortranサブルーチンを誤って呼び出したことが原因と考えられます。もちろん、コードを表示していないため、これは単なる推測です。 –

+1

これらのエラーが発生しているFortranコードを表示してください。 – Ares

+0

私は自分の記事を私のFortranコードで編集しました – Vegeson

答えて

0

申し訳ありませんが、競合の署名で二回 関数を宣言してf2pyラッパーのサポートは、壊れて表示されます。最初のいくつかのf2py ToCエントリの例を調べることが役に立つかもしれませんが、このバージョンが望みどおりに機能することは明らかではありません。

関連する問題