[f2py] help using f2py

Jose Amoreira <[email protected]>
Newsgroups gmane.comp.python.f2py.user
Message-ID <[email protected]>
Hello!
This is probably a stupid question, but...
I'm having a hard time trying to define a python module from a fortran 
subroutine having other subroutines in the list of arguments. 
Consider the following subroutine (sub), which takes as argument a real  array 
(x), the dimension (n) of that array and another subroutine (other_sub) that 
is to be called by sub :

file sub.f95
----------------------------------------------
subroutine sub(x,other_sub,n)
integer::n
real, dimension(n)::x
external:: other_sub
call other_sub(x)
end subroutine sub
----------------------------------------------
When I run this through f2py, all I get is a bunch of errors:

Part of the output of f2py -m sub -c sub.f95:
----------------------------------------------
creating /tmp/tmpyHp76U/tmp
creating /tmp/tmpyHp76U/tmp/tmpyHp76U
creating /tmp/tmpyHp76U/tmp/tmpyHp76U/src.linux-x86_64-2.6
compile options: '-I/tmp/tmpyHp76U/src.linux-x86_64-2.6 -
I/usr/lib64/python2.6/site-packages/numpy/core/include -
I/usr/include/python2.6 -c'
gcc: /tmp/tmpyHp76U/src.linux-x86_64-2.6/fortranobject.c
gcc: /tmp/tmpyHp76U/src.linux-x86_64-2.6/submodule.c
/tmp/tmpyHp76U/src.linux-x86_64-2.6/submodule.c: In function 
‘cb_other_sub_in_sub__user__routines’:
/tmp/tmpyHp76U/src.linux-x86_64-2.6/submodule.c:306: error: ‘n’ undeclared 
(first use in this function)
/tmp/tmpyHp76U/src.linux-x86_64-2.6/submodule.c:306: error: (Each undeclared 
identifier is reported only once
/tmp/tmpyHp76U/src.linux-x86_64-2.6/submodule.c:306: error: for each function 
it appears in.)
/tmp/tmpyHp76U/src.linux-x86_64-2.6/submodule.c: In function 
‘cb_other_sub_in_sub__user__routines’:
/tmp/tmpyHp76U/src.linux-x86_64-2.6/submodule.c:306: error: ‘n’ undeclared 
(first use in this function)
/tmp/tmpyHp76U/src.linux-x86_64-2.6/submodule.c:306: error: (Each undeclared 
identifier is reported only once
/tmp/tmpyHp76U/src.linux-x86_64-2.6/submodule.c:306: error: for each function 
it appears in.)
error: Command "gcc -pthread -fno-strict-aliasing -DNDEBUG -fmessage-length=0 
-O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -
fasynchronous-unwind-tables -g -fwrapv -fPIC -I/tmp/tmpyHp76U/src.linux-
x86_64-2.6 -I/usr/lib64/python2.6/site-packages/numpy/core/include -
I/usr/include/python2.6 -c /tmp/tmpyHp76U/src.linux-x86_64-2.6/submodule.c -o 
/tmp/tmpyHp76U/tmp/tmpyHp76U/src.linux-x86_64-2.6/submodule.o" failed with 
exit status 1
-------------------------------------
I just don't get it!
I don't know if it is related but, if I change argument x to a scalar (instead 
of an array), then f2py executes fine and the python module is generated. 
Also, both variants (array or scalar x) compile without any errors or 
warnings, using gfortran.
Can anybody explain me what I am doing wrong, please? Thanks in advance.
Jose Amoreira

_______________________________________________
f2py-users mailing list
[email protected]
http://cens.ioc.ee/mailman/listinfo/f2py-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.