[f2py] Interface block problem?
Jose Amoreira <[email protected]> Mon, 28 Jan 2013 11:19:55 +0000
| Newsgroups | gmane.comp.python.f2py.user |
|---|---|
| Message-ID | <CAN5tF-FgiskFV5+SAmj186qowfVpFMm7hg2_96LTMhPD60sK9A@mail.gmail.com> |
--===============1278648892174352685==
Content-Type: multipart/alternative; boundary=485b397dd3b5e4233904d4577422
--485b397dd3b5e4233904d4577422
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable
Hello
Sorry for this long message. I tried hard to make this as short as possible=
.
I have a fortran function, f1, that takes an array, x, and an array valued
function, f2, as arguments and returns another array. For instance, let f1
be
f1(x,f2) =3D x + f2(x)
and
f2(x) =3D a * x
where a is a real parameter. The function f1 must be generic, in the sense
that it must be ignorant of any details of the function f2 other than its
interface.
Since f1 takes a function argument, it must have an explicit interface. In
modern fortran, the standard method to accomplish this is to contain f1 in
a module. The function f2 is also contained in a module, so that the real
parameter a can be set in the main program.
I implemented these two modules in fortran as follows:
-----------------------------------
!File modf1.f95
module f1_mod
implicit none
contains
function f1(f2, x)
interface
function f2(x)
real(8), dimension(:), intent(in):: x
real(8), dimension(size(x)):: f2
end function f2
end interface
real(8), dimension(:), intent(in):: x
real(8), dimension(size(x)):: f1
f1 =3D x + f2(x)
end function f1
end module f1_mod
-----------------------------------
!File modf2.f95
module f2_mod
implicit none
real(8):: a
contains
function f2(x)
real(8), dimension(:), intent(in):: x
real(8), dimension(size(x)):: f2
f2 =3D a * x
end function f2
end module f2_mod
-----------------------------------
This implementation works perfectly in fortran. However, when trying to
wrap these two modules in python using f2py, I get into problems:
1. Apparently because of the interface block in f1_mod, the "quick way" to
wrap f1 fails (see bellow the output of f2py -m f1_mod -c modf1.f95). 2.
The "smart way" (generating a signature file with -h and compiling
afterwards) works fine, even if no edits are done on the signature file.
However, when using the python module, I get errors:
In [1]: import modf1
In [2]: import modf2
In [3]: modf2.modf2.
modf2.modf2.a modf2.modf2.f2
In [3]: modf2.modf2.a =3D 1.
In [4]: x=3D[1.0,2.0,3.0]
In [5]: modf1.modf1.f1(modf2.modf2.f2, x)
capi_return is NULL
Call-back cb_f2_in_f1__user__routines failed.
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-5-1696865803e5> in <module>()
----> 1 modf1.modf1.f1(modf2.modf2.f2, x)
ValueError: failed to create intent(cache|hide)|optional array-- must have
defined dimensions but got (0,)
------------------------------------------------------------------------
Is there any way to wrap this sort of fortran modules in python? I use
opensuse 12.1 x86_64 linux and gfortran.
Thanks.
Jose
Output of f2py --fcompiler=3Dgfortran -m modf1 -c modf1.f95:
---------------------------------------------------------------------------
mu:globdata$ f2py --fcompiler=3Dgfortran -m modf1 -c modf1.f95
Unknown vendor: "gfortran"
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler
options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands
--fcompiler options
running build_src
build_src
building extension "modf1" sources
f2py options: []
f2py:> /tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c
creating /tmp/tmpXNdGMZ
creating /tmp/tmpXNdGMZ/src.linux-x86_64-2.7
Reading fortran codes...
Reading file 'modf1.f95' (format:free)
Post-processing...
Block: modf1
Block: modf1
Block: f1
Block: f2
Post-processing (stage 2)...
Block: modf1
Block: unknown_interface
Block: modf1
Block: f1
Block: unknown_interface
Block: f2
Building modules...
Building module "modf1"...
Constructing F90 module support for "modf1"...
Creating wrapper for Fortran function "f1"("f1")...
Constructing wrapper function "modf1.f1"...
sign2map: Confused: external f2 is not in lcb_map[].
append_needs: unknown need 'f2'
append_needs: unknown need 'f2'
f1 =3D f1(f2,x,[f2_extra_args])
Wrote C/API module "modf1" to file
"/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c"
Fortran 90 wrappers are saved to
"/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1-f2pywrappers2.f90"
adding '/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/fortranobject.c' to sources.
adding '/tmp/tmpXNdGMZ/src.linux-x86_64-2.7' to include_dirs.
copying /usr/lib64/python2.7/site-packages/numpy/f2py/src/fortranobject.c
-> /tmp/tmpXNdGMZ/src.linux-x86_64-2.7
copying /usr/lib64/python2.7/site-packages/numpy/f2py/src/fortranobject.h
-> /tmp/tmpXNdGMZ/src.linux-x86_64-2.7
adding '/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1-f2pywrappers2.f90' to
sources.
build_src: building npy-pkg config files
running build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
customize Gnu95FCompiler
Found executable /usr/bin/gfortran
customize Gnu95FCompiler using build_ext
building 'modf1' extension
compiling C sources
C compiler: gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG
-fmessage-length=3D0 -O2 -Wall -D_FORTIFY_SOURCE=3D2 -fstack-protector
-funwind-tables -fasynchronous-unwind-tables -g -fPIC
creating /tmp/tmpXNdGMZ/tmp
creating /tmp/tmpXNdGMZ/tmp/tmpXNdGMZ
creating /tmp/tmpXNdGMZ/tmp/tmpXNdGMZ/src.linux-x86_64-2.7
compile options: '-I/tmp/tmpXNdGMZ/src.linux-x86_64-2.7
-I/usr/lib64/python2.7/site-packages/numpy/core/include
-I/usr/include/python2.7 -c'
gcc: /tmp/tmpXNdGMZ/src.linux-x86_64-2.7/fortranobject.c
gcc: /tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c: In function
=91f2py_rout_modf1_modf1_f1=92:
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:289:3: error: unknown
type name =91f2_typedef=92
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:320:11: warning:
assignment makes integer from pointer without a cast [enabled by default]
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:322:13: error: =91f2=92
undeclared (first use in this function)
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:322:13: note: each
undeclared identifier is reported only once for each function it appears in
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:325:21: error:
=91f2_nofargs=92 undeclared (first use in this function)
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =91#=
=92
in program
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =91#=
=92
in program
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:45: error:
=91maxnofargs=92 undeclared (first use in this function)
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =91#=
=92
in program
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =91#=
=92
in program
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:58: error:
=91nofoptargs=92 undeclared (first use in this function)
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:349:3: warning: passing
argument 2 of =91f2py_func=92 makes pointer from integer without a cast
[enabled by default]
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:349:3: note: expected
=91void *=92 but argument is of type =91int=92
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c: In function
=91f2py_rout_modf1_modf1_f1=92:
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:289:3: error: unknown
type name =91f2_typedef=92
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:320:11: warning:
assignment makes integer from pointer without a cast [enabled by default]
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:322:13: error: =91f2=92
undeclared (first use in this function)
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:322:13: note: each
undeclared identifier is reported only once for each function it appears in
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:325:21: error:
=91f2_nofargs=92 undeclared (first use in this function)
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =91#=
=92
in program
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =91#=
=92
in program
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:45: error:
=91maxnofargs=92 undeclared (first use in this function)
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =91#=
=92
in program
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =91#=
=92
in program
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:58: error:
=91nofoptargs=92 undeclared (first use in this function)
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:349:3: warning: passing
argument 2 of =91f2py_func=92 makes pointer from integer without a cast
[enabled by default]
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:349:3: note: expected
=91void *=92 but argument is of type =91int=92
error: Command "gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG
-fmessage-length=3D0 -O2 -Wall -D_FORTIFY_SOURCE=3D2 -fstack-protector
-funwind-tables -fasynchronous-unwind-tables -g -fPIC
-I/tmp/tmpXNdGMZ/src.linux-x86_64-2.7
-I/usr/lib64/python2.7/site-packages/numpy/core/include
-I/usr/include/python2.7 -c
/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c -o
/tmp/tmpXNdGMZ/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.o" failed
with exit status 1
--485b397dd3b5e4233904d4577422
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Hello<div>Sorry for this long message. I=A0tried=A0hard to=
make this as short as possible.<br><div>I have a fortran function, f1, tha=
t takes an array, x, and an array valued function, f2, as arguments and ret=
urns another array. For instance, let f1 be</div>
<div><br></div><div>f1(x,f2) =3D x + f2(x)</div><div><br></div><div>and=A0<=
/div><div><br></div><div>f2(x) =3D a * x</div><div><br></div><div>where a i=
s a real parameter. The function f1 must be generic, in the sense that it m=
ust be ignorant of any details of the function f2 other than its interface.=
</div>
<div>Since f1 takes a function argument, it must have an explicit interface=
. In modern fortran, the standard method to accomplish this is to contain f=
1 in a module. The function f2 is also contained in a module, so that the r=
eal parameter a can be set in the main program.</div>
</div><div>I implemented these two modules in fortran as follows:</div><div=
><div>-----------------------------------</div><div>!File modf1.f95</div><d=
iv>module f1_mod</div><div>implicit none</div><div>contains</div>
<div>=A0 =A0 function f1(f2, x)</div><div>=A0 =A0 =A0 =A0 interface</div><d=
iv>=A0 =A0 =A0 =A0 =A0 =A0 function f2(x)</div><div>=A0 =A0 =A0 =A0 =A0 =A0=
=A0 =A0 real(8), dimension(:), intent(in):: x</div><div>=A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 real(8), dimension(size(x)):: f2</div>
<div>=A0 =A0 =A0 =A0 =A0 =A0 end function f2</div><div>=A0 =A0 =A0 =A0 end =
interface</div><div>=A0 =A0 =A0 =A0 real(8), dimension(:), intent(in):: x</=
div><div>=A0 =A0 =A0 =A0 real(8), dimension(size(x)):: f1</div><div>=A0 =A0=
=A0 =A0 f1 =3D x + f2(x)</div><div>=A0 =A0 end function f1</div>
<div>end module f1_mod</div><div>-----------------------------------</div><=
/div><div>!File modf2.f95</div><div><div>module f2_mod</div><div>implicit n=
one</div><div>=A0 =A0 real(8):: a</div><div>contains</div><div>
=A0 =A0 function f2(x)</div><div>=A0 =A0 =A0 =A0 real(8), dimension(:), int=
ent(in):: x</div><div>=A0 =A0 =A0 =A0 real(8), dimension(size(x)):: f2</div=
><div>=A0 =A0 =A0 =A0 f2 =3D a * x</div><div>=A0 =A0 end function f2</div><=
div>end module f2_mod</div><div>
-----------------------------------</div><div>This implementation works per=
fectly in fortran. However, when trying to wrap these two modules in python=
using f2py, I get into problems:</div><div>1. Apparently because of the in=
terface block in f1_mod, the "quick way" to wrap f1 fails (see be=
llow the output of f2py -m f1_mod -c modf1.f95). 2. The "smart way&quo=
t; (generating a signature file with -h and compiling afterwards) works fin=
e, even if no edits are done on the signature file. However, when using the=
python module, I get errors:</div>
<div><br></div><div><div>In [1]: import modf1</div><div><br></div><div>In [=
2]: import modf2</div><div><br></div><div>In [3]: modf2.modf2.</div><div>mo=
df2.modf2.a =A0 modf2.modf2.f2 =A0</div><div><br></div><div>In [3]: modf2.m=
odf2.a =3D 1.</div>
<div><br></div><div>In [4]: x=3D[1.0,2.0,3.0]</div><div><br></div><div>In [=
5]: modf1.modf1.f1(modf2.modf2.f2, x)</div><div>capi_return is NULL</div><d=
iv>Call-back cb_f2_in_f1__user__routines failed.</div><div>----------------=
-----------------------------------------------------------</div>
<div>ValueError =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
=A0Traceback (most recent call last)</div><div><ipython-input-5-1696865=
803e5> in <module>()</div><div>----> 1 modf1.modf1.f1(modf2.mod=
f2.f2, x)</div><div><br></div>
<div>ValueError: failed to create intent(cache|hide)|optional array-- must =
have defined dimensions but got (0,)</div></div>
</div><div><br></div><div style>-------------------------------------------=
-----------------------------</div><div style><br></div><div style>Is there=
any way to wrap this sort of fortran modules in python? I use opensuse 12.=
1 x86_64 linux and gfortran.</div>
<div style>Thanks.</div><div style>Jose</div><div style><br></div><div styl=
e><br></div><div style>Output of f2py --fcompiler=3Dgfortran -m modf1 -c mo=
df1.f95:</div><div style><div>---------------------------------------------=
------------------------------</div>
<div>mu:globdata$ f2py --fcompiler=3Dgfortran -m modf1 -c modf1.f95=A0</div=
><div>Unknown vendor: "gfortran"</div><div>running build</div><di=
v>running config_cc</div><div>unifing config_cc, config, build_clib, build_=
ext, build commands --compiler options</div>
<div>running config_fc</div><div>unifing config_fc, config, build_clib, bui=
ld_ext, build commands --fcompiler options</div><div>running build_src</div=
><div>build_src</div><div>building extension "modf1" sources</div=
>
<div>f2py options: []</div><div>f2py:> /tmp/tmpXNdGMZ/src.linux-x86_64-2=
.7/modf1module.c</div><div>creating /tmp/tmpXNdGMZ</div><div>creating /tmp/=
tmpXNdGMZ/src.linux-x86_64-2.7</div><div>Reading fortran codes...</div>
<div>=A0 =A0 =A0 =A0 Reading file 'modf1.f95' (format:free)</div><d=
iv>Post-processing...</div><div>=A0 =A0 =A0 =A0 Block: modf1</div><div>=A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Block: modf1</div><div>=A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Block: f1</div>
<div>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 Block: f2</div><div>Post-processing (stage 2)..=
.</div><div>=A0 =A0 =A0 =A0 Block: modf1</div><div>=A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 Block: unknown_interface</div><div>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 Block: modf1</div>
<div>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Block:=
f1</div><div>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 Block: unknown_interface</div><div>=A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
Block: f2</div><div>Building modules...</div>
<div>=A0 =A0 =A0 =A0 Building module "modf1"...</div><div>=A0 =A0=
=A0 =A0 =A0 =A0 =A0 =A0 Constructing F90 module support for "modf1&qu=
ot;...</div><div>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Creating wrapper for Fortr=
an function "f1"("f1")...</div>
<div>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Constructing wrapper f=
unction "modf1.f1"...</div><div>sign2map: Confused: external f2 i=
s not in lcb_map[].</div><div>append_needs: unknown need 'f2'</div>=
<div>append_needs: unknown need 'f2'</div>
<div>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 f1 =3D f1(f2,x,[f2=
_extra_args])</div><div>=A0 =A0 =A0 =A0 Wrote C/API module "modf1"=
; to file "/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c"</di=
v><div>=A0 =A0 =A0 =A0 Fortran 90 wrappers are saved to "/tmp/tmpXNdGM=
Z/src.linux-x86_64-2.7/modf1-f2pywrappers2.f90"</div>
<div>=A0 adding '/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/fortranobject.c=
9; to sources.</div><div>=A0 adding '/tmp/tmpXNdGMZ/src.linux-x86_64-2.=
7' to include_dirs.</div><div>copying /usr/lib64/python2.7/site-package=
s/numpy/f2py/src/fortranobject.c -> /tmp/tmpXNdGMZ/src.linux-x86_64-2.7<=
/div>
<div>copying /usr/lib64/python2.7/site-packages/numpy/f2py/src/fortranobjec=
t.h -> /tmp/tmpXNdGMZ/src.linux-x86_64-2.7</div><div>=A0 adding '/tm=
p/tmpXNdGMZ/src.linux-x86_64-2.7/modf1-f2pywrappers2.f90' to sources.</=
div>
<div>build_src: building npy-pkg config files</div><div>running build_ext</=
div><div>customize UnixCCompiler</div><div>customize UnixCCompiler using bu=
ild_ext</div><div>customize Gnu95FCompiler</div><div>Found executable /usr/=
bin/gfortran</div>
<div>customize Gnu95FCompiler using build_ext</div><div>building 'modf1=
' extension</div><div>compiling C sources</div><div>C compiler: gcc -pt=
hread -fno-strict-aliasing -g -O2 -DNDEBUG -fmessage-length=3D0 -O2 -Wall -=
D_FORTIFY_SOURCE=3D2 -fstack-protector -funwind-tables -fasynchronous-unwin=
d-tables -g -fPIC</div>
<div><br></div><div>creating /tmp/tmpXNdGMZ/tmp</div><div>creating /tmp/tmp=
XNdGMZ/tmp/tmpXNdGMZ</div><div>creating /tmp/tmpXNdGMZ/tmp/tmpXNdGMZ/src.li=
nux-x86_64-2.7</div><div>compile options: '-I/tmp/tmpXNdGMZ/src.linux-x=
86_64-2.7 -I/usr/lib64/python2.7/site-packages/numpy/core/include -I/usr/in=
clude/python2.7 -c'</div>
<div>gcc: /tmp/tmpXNdGMZ/src.linux-x86_64-2.7/fortranobject.c</div><div>gcc=
: /tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c</div><div>/tmp/tmpXNdGM=
Z/src.linux-x86_64-2.7/modf1module.c: In function =91f2py_rout_modf1_modf1_=
f1=92:</div>
<div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:289:3: error: unknow=
n type name =91f2_typedef=92</div><div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/=
modf1module.c:320:11: warning: assignment makes integer from pointer withou=
t a cast [enabled by default]</div>
<div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:322:13: error: =91f2=
=92 undeclared (first use in this function)</div><div>/tmp/tmpXNdGMZ/src.li=
nux-x86_64-2.7/modf1module.c:322:13: note: each undeclared identifier is re=
ported only once for each function it appears in</div>
<div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:325:21: error: =91f2=
_nofargs=92 undeclared (first use in this function)</div><div>/tmp/tmpXNdGM=
Z/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =91#=92 in program=
</div>
<div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =
=91#=92 in program</div><div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1modul=
e.c:326:45: error: =91maxnofargs=92 undeclared (first use in this function)=
</div>
<div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =
=91#=92 in program</div><div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1modul=
e.c:326:3: error: stray =91#=92 in program</div><div>/tmp/tmpXNdGMZ/src.lin=
ux-x86_64-2.7/modf1module.c:326:58: error: =91nofoptargs=92 undeclared (fir=
st use in this function)</div>
<div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:349:3: warning: pass=
ing argument 2 of =91f2py_func=92 makes pointer from integer without a cast=
[enabled by default]</div><div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1mo=
dule.c:349:3: note: expected =91void *=92 but argument is of type =91int=92=
</div>
<div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c: In function =91f2py=
_rout_modf1_modf1_f1=92:</div><div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf=
1module.c:289:3: error: unknown type name =91f2_typedef=92</div><div>/tmp/t=
mpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:320:11: warning: assignment mak=
es integer from pointer without a cast [enabled by default]</div>
<div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:322:13: error: =91f2=
=92 undeclared (first use in this function)</div><div>/tmp/tmpXNdGMZ/src.li=
nux-x86_64-2.7/modf1module.c:322:13: note: each undeclared identifier is re=
ported only once for each function it appears in</div>
<div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:325:21: error: =91f2=
_nofargs=92 undeclared (first use in this function)</div><div>/tmp/tmpXNdGM=
Z/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =91#=92 in program=
</div>
<div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =
=91#=92 in program</div><div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1modul=
e.c:326:45: error: =91maxnofargs=92 undeclared (first use in this function)=
</div>
<div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:326:3: error: stray =
=91#=92 in program</div><div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1modul=
e.c:326:3: error: stray =91#=92 in program</div><div>/tmp/tmpXNdGMZ/src.lin=
ux-x86_64-2.7/modf1module.c:326:58: error: =91nofoptargs=92 undeclared (fir=
st use in this function)</div>
<div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c:349:3: warning: pass=
ing argument 2 of =91f2py_func=92 makes pointer from integer without a cast=
[enabled by default]</div><div>/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1mo=
dule.c:349:3: note: expected =91void *=92 but argument is of type =91int=92=
</div>
<div>error: Command "gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG=
-fmessage-length=3D0 -O2 -Wall -D_FORTIFY_SOURCE=3D2 -fstack-protector -fu=
nwind-tables -fasynchronous-unwind-tables -g -fPIC -I/tmp/tmpXNdGMZ/src.lin=
ux-x86_64-2.7 -I/usr/lib64/python2.7/site-packages/numpy/core/include -I/us=
r/include/python2.7 -c /tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.c -o=
/tmp/tmpXNdGMZ/tmp/tmpXNdGMZ/src.linux-x86_64-2.7/modf1module.o" fail=
ed with exit status 1</div>
</div><div style><div><br></div></div></div>
--485b397dd3b5e4233904d4577422--
--===============1278648892174352685==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
f2py-users mailing list
f2py-users-Y4l6ocDipWCuvFJfX82//[email protected]
http://cens.ioc.ee/mailman/listinfo/f2py-users
--===============1278648892174352685==--