[NumPy-Tickets] [NumPy] #1533: no error for poor spelling in pyf file
NumPy Trac
numpy-tickets@scipy....
Fri Jul 2 10:38:30 CDT 2010
#1533: no error for poor spelling in pyf file
------------------------+---------------------------------------------------
Reporter: samtygier | Owner: pearu
Type: defect | Status: new
Priority: normal | Milestone: 2.0.0
Component: numpy.f2py | Version: 1.3.0
Keywords: |
------------------------+---------------------------------------------------
it took me a while to figure out why the doubles i was passing to c where
arriving as 0. it turned out that i has miss spelt "double precision" in
the pyf file. there was no warning given for this.
here is an example
{{{
#include <stdio.h>
void di(int a, int b, double c, double d){
printf("c: a=%d\n", a);
printf("c: b=%d\n", b);
printf("c: c=%f\n", c);
printf("c: d=%f\n", d);
}
}}}
pyf
{{{
python module di
interface
!void foo(int a, int b, double c, double d){
subroutine di(a,b,c,d)
intent(c) di
intent(c)
integer intent(in) :: a
integer intent(in) :: b
double precission intent(in) :: c
double precision intent(in) :: d
end subroutine di
end interface
end python module di
}}}
and the debug output when i run it
{{{
>>> import di; di.di(1,2,3,4)
debug-capi:Python C/API function di.di(a,b,c,d)
debug-capi:int a=:input,required,scalar
debug-capi:a=1
debug-capi:float c=:input,required,scalar
debug-capi:c=3
debug-capi:int b=:input,required,scalar
debug-capi:b=2
debug-capi:double d=:input,required,scalar
debug-capi:d=4
debug-capi:Fortran subroutine `di(a,b,c,d)'
c: a=1
c: b=2
c: c=0.000000
c: d=4.000000
debug-capi:a=1
debug-capi:b=2
debug-capi:c=3
debug-capi:d=4
debug-capi:Building return value.
debug-capi:Python C/API function di.di: successful.
debug-capi:Freeing memory.
}}}
This ought to give an error when calling f2py.
i found this with numpy 1.3, but a quick test with 1.4.1 seems to still
have it.
--
Ticket URL: <http://projects.scipy.org/numpy/ticket/1533>
NumPy <http://projects.scipy.org/numpy>
My example project
More information about the NumPy-Tickets
mailing list