[Numpy-discussion] f2py with int8

John Mitchell workalof at gmail.com
Tue Apr 17 13:47:06 EDT 2012


Thanks Paul.

I suppose this is now going slightly out of bounds for f2py.   What I am
looking for is the fortran kind type for a byte.  I thought that this was
int8.  I guess the question is how to identify the kind type.  Although I
have verified that integer(1) seems to work for me, I would really like to
know why and your answer alludes to that.

Please excuse my ignorance on this topic.  Can you perhaps educate me a
little on 'literal kind values'?  I take you to mean that
'int8' is not a literal kind value while 1 and 8 are examples of literal
kind values.

Thanks,
John



On Tue, Apr 17, 2012 at 10:12 AM, Paul Anton Letnes <
paul.anton.letnes at gmail.com> wrote:

> Ah, come to think of it, I think that f2py only supports literal kind
> values. Maybe that's your problem.
>
> Paul
>
> On 17. apr. 2012, at 07:58, Sameer Grover wrote:
>
> > On Tuesday 17 April 2012 11:02 AM, 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
> > It seems to work if "integer(kind=int8)" is replaced with "integer(8)"
> or "integer(1)".  Don't know why, though.
> >
> > Sameer
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion at scipy.org
> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20120417/2c3e0ee1/attachment.html>


More information about the NumPy-Discussion mailing list