[Numpy-discussion] f2py with int8

Paul Anton Letnes paul.anton.letnes at gmail.com
Tue Apr 17 01:53:03 EDT 2012


Hi,

this probably does not help with your problem. However, I would recommend changing your fortran code to:
subroutine print_bit_array(bits)
   use iso_fortran_env
   integer(kind=int8),intent(in),dimension(:)::bits
   print*,'bits = ',bits
end subroutine print_bit_array

In that way you could print shape(bits) to verify that you are getting an array of the size you are expecting. Also, you could compile with -fbounds-check (gfortran) or a similar flag for some extra debugging facilities.

To get better help with your issues, I would recommend also posting your call to the fortran routine, and the compilation command used (f2py -m myfile.f90 -flags....).

Cheers
Paul


On 17. apr. 2012, at 07:32, John Mitchell wrote:

> Hi,
> 
> I am using f2py to pass a numpy array of type numpy.int8 to fortran.  It seems like I am misunderstanding something because I just can't make it work. 
> 
> Here is what I am doing.
> 
> PYTHON
> b=numpy.array(numpy.zeros(shape=(10,),dtype=numpy.int8),order='F')
> b[0]=1
> b[2]=1
> b[3]=1
> b
> array([1, 0, 1, 1, 0, 0, 0, 0, 0, 0], dtype=int8)
> 
> 
> 
> FORTRAN
> subroutine print_bit_array(bits,n)
>    use iso_fortran_env
>    integer,intent(in)::n
>    integer(kind=int8),intent(in),dimension(n)::bits
>    print*,'bits = ',bits
> end subroutine print_bit_array
> 
> 
> RESULT when calling fortran from python
> bits =     1    0    0    0    0    0    0    0    1    0
> 
> Any Ideas?
> thanks,
> John
> 
> 
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion




More information about the NumPy-Discussion mailing list