Note that hello.foo(a) returns the value of Fortran `a` value. This explains
the printed 2 value.
So, use
>>> a = hello.foo(a)
and not
>>> hello.foo(a)
As Sameer noted in previous mail, passing Python scalar values to Fortran by
reference is not
possible because Python scalars are immutable. He
bizarre
I get
=
>>> hello.foo(a)
Hello from Fortran!
a= 1
2
>>> a
1
>>> hello.foo(a)
Hello from Fortran!
a= 1
2
>>> print a
1
>>>
=
i.e. The value of 2 gets printed! This is numpy 1.3.0
-Mathew
On Tue, Apr 12, 2011 at 11:45 AM, Pearu Peterson
On Tue, Apr 12, 2011 at 9:06 PM, Mathew Yeates wrote:
> I have
> subroutine foo (a)
> integer a
> print*, "Hello from Fortran!"
> print*, "a=",a
> a=2
> end
>
> and from python I want to do
> >>> a=1
> >>> foo(a)
>
> and I want a's value to now be 2.
> How do I do this?
>
On 12/04/11 23:36, Mathew Yeates wrote:
> I have
> subroutine foo (a)
>integer a
>print*, "Hello from Fortran!"
>print*, "a=",a
>a=2
>end
>
> and from python I want to do
a=1
foo(a)
> and I want a's value to now be 2.
> How do I do this?
>
> Mathew
I have
subroutine foo (a)
integer a
print*, "Hello from Fortran!"
print*, "a=",a
a=2
end
and from python I want to do
>>> a=1
>>> foo(a)
and I want a's value to now be 2.
How do I do this?
Mathew
___
NumPy-Discussion maili