Attempting to wrap a Fortran-77 subroutine using f2py but I haven't been able to understand what is causing the error

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Attempting to wrap a Fortran-77 subroutine using f2py but I haven't been able to understand what is causing the error

Samuel Dupree-2
I'm attempting to wrap a Fortran-77 source member using f2py. I'm
running he Anaconda distribution for Python 3.7.6 on a Mac Pro (2019)
under Mac OS X Catalina (ver. 10.15.6). The version of NumPy I'm running
is 1.18.3.

I've attached a copy of the Fortran source code to this note (see
rkfn78.for). The command I'm using to wrap this code is

f2py3 -c rkfn78.for --fcompiler=gfortran --f77flags="-c -O -Wall" -m rkfn78

The output I get is captured in the file rkfn78_build_output.txt.

I don't understand the cause behind the error message I get, so any
advice would be welcomed.

Sam Dupree.

_______________________________________________
NumPy-Discussion mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/numpy-discussion

rkfn78.for (20K) Download Attachment
rkfn78_build_output.txt (10K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Attempting to wrap a Fortran-77 subroutine using f2py but I haven't been able to understand what is causing the error

Melissa Mendonça
Hello, Sam, sorry for taking so long to answer!

The problem seems to be that you are using

cf2py depend(in) Y, YP

instead of

cf2py depend(n) Y, YP <- (note that there was a spurious i in that depend expression)

and that the callback FCN needs the dimension n as an argument. I was able to compile your code correctly after making these changes.

If you have any further questions let me know, I hope this helps.

Cheers,

Melissa


On Wed, Oct 14, 2020 at 4:03 AM Samuel Dupree <[hidden email]> wrote:
I'm attempting to wrap a Fortran-77 source member using f2py. I'm
running he Anaconda distribution for Python 3.7.6 on a Mac Pro (2019)
under Mac OS X Catalina (ver. 10.15.6). The version of NumPy I'm running
is 1.18.3.

I've attached a copy of the Fortran source code to this note (see
rkfn78.for). The command I'm using to wrap this code is

f2py3 -c rkfn78.for --fcompiler=gfortran --f77flags="-c -O -Wall" -m rkfn78

The output I get is captured in the file rkfn78_build_output.txt.

I don't understand the cause behind the error message I get, so any
advice would be welcomed.

Sam Dupree.
_______________________________________________
NumPy-Discussion mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/numpy-discussion

_______________________________________________
NumPy-Discussion mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/numpy-discussion
Reply | Threaded
Open this post in threaded view
|

Re: Attempting to wrap a Fortran-77 subroutine using f2py but I haven't been able to understand what is causing the error

Samuel Dupree-2

Melissa,

Thank you for answering my post. I made the changes you recommended and the code compiles successfully. But I do have one question. The arrays being passed in the CALL to FCN were treated as assumed shaped arrays in the called subroutine. Are assumed shaped arrays a problem for f2py?

Sam Dupree.


On October/19/2020 09:16:02, Melissa Mendonça wrote:
Hello, Sam, sorry for taking so long to answer!

The problem seems to be that you are using

cf2py depend(in) Y, YP

instead of

cf2py depend(n) Y, YP <- (note that there was a spurious i in that depend expression)

and that the callback FCN needs the dimension n as an argument. I was able to compile your code correctly after making these changes.

If you have any further questions let me know, I hope this helps.

Cheers,

Melissa


On Wed, Oct 14, 2020 at 4:03 AM Samuel Dupree <[hidden email]> wrote:
I'm attempting to wrap a Fortran-77 source member using f2py. I'm
running he Anaconda distribution for Python 3.7.6 on a Mac Pro (2019)
under Mac OS X Catalina (ver. 10.15.6). The version of NumPy I'm running
is 1.18.3.

I've attached a copy of the Fortran source code to this note (see
rkfn78.for). The command I'm using to wrap this code is

f2py3 -c rkfn78.for --fcompiler=gfortran --f77flags="-c -O -Wall" -m rkfn78

The output I get is captured in the file rkfn78_build_output.txt.

I don't understand the cause behind the error message I get, so any
advice would be welcomed.

Sam Dupree.
_______________________________________________
NumPy-Discussion mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/numpy-discussion

_______________________________________________
NumPy-Discussion mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/numpy-discussion
--
mail-signature

               
   Samuel H. Dupree, Jr.               [hidden email]
   10501 Rising Ridge Road
   Apartment 201                                                http://users.speakeasy.net/~sdupree/
   Fredericksburg, VA 22407, USA

    HOME: 540-693-1240            iPhone: 215-530-8753                FAX: 866-514-9629

          "The Greatest Show on Earth" is not on Earth. It's in Space!  



_______________________________________________
NumPy-Discussion mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/numpy-discussion
Reply | Threaded
Open this post in threaded view
|

Re: Attempting to wrap a Fortran-77 subroutine using f2py but I haven't been able to understand what is causing the error

Melissa Mendonça
Sure, you can use assume-shape arrays, but if you generate a signature file using

$ f2py rkfn78.for -m rkfn78 -h rkfn78.pyf

you can see that f2py correctly determines n to be the length of the array Y, but since YP also depends on n, that's what generated the error you saw the first time.

If you change the .pyf signature file to the one attached to this message, delete your original cf2py lines in the .for file and compile it all using

$ f2py -c rkfn78.pyf rkfn78.for --fcompiler=gfortran --f77flags="-c -O -Wall" -m rkfn78

then you'll have no trouble with assumed-shape arrays.

Cheers,

Melissa

On Mon, Oct 19, 2020 at 1:03 PM Samuel Dupree <[hidden email]> wrote:

>
> Melissa,
>
> Thank you for answering my post. I made the changes you recommended and the code compiles successfully. But I do have one question. The arrays being passed in the CALL to FCN were treated as assumed shaped arrays in the called subroutine. Are assumed shaped arrays a problem for f2py?
>
> Sam Dupree.
>
>
> On October/19/2020 09:16:02, Melissa Mendonça wrote:
>
> Hello, Sam, sorry for taking so long to answer!
>
> The problem seems to be that you are using
>
> cf2py depend(in) Y, YP
>
> instead of
>
> cf2py depend(n) Y, YP <- (note that there was a spurious i in that depend expression)
>
> and that the callback FCN needs the dimension n as an argument. I was able to compile your code correctly after making these changes.
>
> If you have any further questions let me know, I hope this helps.
>
> Cheers,
>
> Melissa
>
>
> On Wed, Oct 14, 2020 at 4:03 AM Samuel Dupree <[hidden email]> wrote:
>>
>> I'm attempting to wrap a Fortran-77 source member using f2py. I'm
>> running he Anaconda distribution for Python 3.7.6 on a Mac Pro (2019)
>> under Mac OS X Catalina (ver. 10.15.6). The version of NumPy I'm running
>> is 1.18.3.
>>
>> I've attached a copy of the Fortran source code to this note (see
>> rkfn78.for). The command I'm using to wrap this code is
>>
>> f2py3 -c rkfn78.for --fcompiler=gfortran --f77flags="-c -O -Wall" -m rkfn78
>>
>> The output I get is captured in the file rkfn78_build_output.txt.
>>
>> I don't understand the cause behind the error message I get, so any
>> advice would be welcomed.
>>
>> Sam Dupree.
>> _______________________________________________
>> NumPy-Discussion mailing list
>> [hidden email]
>> https://mail.python.org/mailman/listinfo/numpy-discussion
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> [hidden email]
> https://mail.python.org/mailman/listinfo/numpy-discussion
>
> --
> ________________________________
>
>                
>    Samuel H. Dupree, Jr.               [hidden email]
>    10501 Rising Ridge Road
>    Apartment 201                                                http://users.speakeasy.net/~sdupree/
>    Fredericksburg, VA 22407, USA
>
>     HOME: 540-693-1240            iPhone: 215-530-8753                FAX: 866-514-9629
>
>           "The Greatest Show on Earth" is not on Earth. It's in Space!  
>
> ________________________________
_______________________________________________
NumPy-Discussion mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/numpy-discussion

rkfn78.pyf (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Attempting to wrap a Fortran-77 subroutine using f2py but I haven't been able to understand what is causing the error

Samuel Dupree-2

One more question. Where can I find a documentation on f2py that covers issues like assumed shaped arrays, and issues such as the one discussed in this post?

Sam Dupree.


On October/19/2020 13:01:13, Melissa Mendonça wrote:
Sure, you can use assume-shape arrays, but if you generate a signature file using

$ f2py rkfn78.for -m rkfn78 -h rkfn78.pyf

you can see that f2py correctly determines n to be the length of the array Y, but since YP also depends on n, that's what generated the error you saw the first time.

If you change the .pyf signature file to the one attached to this message, delete your original cf2py lines in the .for file and compile it all using

$ f2py -c rkfn78.pyf rkfn78.for --fcompiler=gfortran --f77flags="-c -O -Wall" -m rkfn78

then you'll have no trouble with assumed-shape arrays.

Cheers,

Melissa

On Mon, Oct 19, 2020 at 1:03 PM Samuel Dupree <[hidden email]> wrote:
>
> Melissa,
>
> Thank you for answering my post. I made the changes you recommended and the code compiles successfully. But I do have one question. The arrays being passed in the CALL to FCN were treated as assumed shaped arrays in the called subroutine. Are assumed shaped arrays a problem for f2py?
>
> Sam Dupree.
>
>
> On October/19/2020 09:16:02, Melissa Mendonça wrote:
>
> Hello, Sam, sorry for taking so long to answer!
>
> The problem seems to be that you are using
>
> cf2py depend(in) Y, YP
>
> instead of
>
> cf2py depend(n) Y, YP <- (note that there was a spurious i in that depend expression)
>
> and that the callback FCN needs the dimension n as an argument. I was able to compile your code correctly after making these changes.
>
> If you have any further questions let me know, I hope this helps.
>
> Cheers,
>
> Melissa
>
>
> On Wed, Oct 14, 2020 at 4:03 AM Samuel Dupree <[hidden email]> wrote:
>>
>> I'm attempting to wrap a Fortran-77 source member using f2py. I'm
>> running he Anaconda distribution for Python 3.7.6 on a Mac Pro (2019)
>> under Mac OS X Catalina (ver. 10.15.6). The version of NumPy I'm running
>> is 1.18.3.
>>
>> I've attached a copy of the Fortran source code to this note (see
>> rkfn78.for). The command I'm using to wrap this code is
>>
>> f2py3 -c rkfn78.for --fcompiler=gfortran --f77flags="-c -O -Wall" -m rkfn78
>>
>> The output I get is captured in the file rkfn78_build_output.txt.
>>
>> I don't understand the cause behind the error message I get, so any
>> advice would be welcomed.
>>
>> Sam Dupree.
>> _______________________________________________
>> NumPy-Discussion mailing list
>> [hidden email]
>> https://mail.python.org/mailman/listinfo/numpy-discussion
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> [hidden email]
> https://mail.python.org/mailman/listinfo/numpy-discussion
>


_______________________________________________
NumPy-Discussion mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/numpy-discussion
Reply | Threaded
Open this post in threaded view
|

Re: Attempting to wrap a Fortran-77 subroutine using f2py but I haven't been able to understand what is causing the error

Melissa Mendonça
The documentation for f2py is not very complete, I'm afraid. I'll try to work on that front in the next few months. For now, you can find it here: https://numpy.org/doc/stable/f2py

Cheers,

Melissa

On Mon, Oct 19, 2020 at 2:35 PM Samuel Dupree <[hidden email]> wrote:

One more question. Where can I find a documentation on f2py that covers issues like assumed shaped arrays, and issues such as the one discussed in this post?

Sam Dupree.


On October/19/2020 13:01:13, Melissa Mendonça wrote:
Sure, you can use assume-shape arrays, but if you generate a signature file using

$ f2py rkfn78.for -m rkfn78 -h rkfn78.pyf

you can see that f2py correctly determines n to be the length of the array Y, but since YP also depends on n, that's what generated the error you saw the first time.

If you change the .pyf signature file to the one attached to this message, delete your original cf2py lines in the .for file and compile it all using

$ f2py -c rkfn78.pyf rkfn78.for --fcompiler=gfortran --f77flags="-c -O -Wall" -m rkfn78

then you'll have no trouble with assumed-shape arrays.

Cheers,

Melissa

On Mon, Oct 19, 2020 at 1:03 PM Samuel Dupree <[hidden email]> wrote:
>
> Melissa,
>
> Thank you for answering my post. I made the changes you recommended and the code compiles successfully. But I do have one question. The arrays being passed in the CALL to FCN were treated as assumed shaped arrays in the called subroutine. Are assumed shaped arrays a problem for f2py?
>
> Sam Dupree.
>
>
> On October/19/2020 09:16:02, Melissa Mendonça wrote:
>
> Hello, Sam, sorry for taking so long to answer!
>
> The problem seems to be that you are using
>
> cf2py depend(in) Y, YP
>
> instead of
>
> cf2py depend(n) Y, YP <- (note that there was a spurious i in that depend expression)
>
> and that the callback FCN needs the dimension n as an argument. I was able to compile your code correctly after making these changes.
>
> If you have any further questions let me know, I hope this helps.
>
> Cheers,
>
> Melissa
>
>
> On Wed, Oct 14, 2020 at 4:03 AM Samuel Dupree <[hidden email]> wrote:
>>
>> I'm attempting to wrap a Fortran-77 source member using f2py. I'm
>> running he Anaconda distribution for Python 3.7.6 on a Mac Pro (2019)
>> under Mac OS X Catalina (ver. 10.15.6). The version of NumPy I'm running
>> is 1.18.3.
>>
>> I've attached a copy of the Fortran source code to this note (see
>> rkfn78.for). The command I'm using to wrap this code is
>>
>> f2py3 -c rkfn78.for --fcompiler=gfortran --f77flags="-c -O -Wall" -m rkfn78
>>
>> The output I get is captured in the file rkfn78_build_output.txt.
>>
>> I don't understand the cause behind the error message I get, so any
>> advice would be welcomed.
>>
>> Sam Dupree.
>> _______________________________________________
>> NumPy-Discussion mailing list
>> [hidden email]
>> https://mail.python.org/mailman/listinfo/numpy-discussion
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> [hidden email]
> https://mail.python.org/mailman/listinfo/numpy-discussion
>


_______________________________________________
NumPy-Discussion mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/numpy-discussion
Reply | Threaded
Open this post in threaded view
|

Re: Attempting to wrap a Fortran-77 subroutine using f2py but I haven't been able to understand what is causing the error

Samuel Dupree-2

Melissa,

I've tried working with the documentation hosted at https://numpy.org/doc/stable/f2py/ and you're right, it is not very complete ;-). So on that front I wish you the best. Once again, thank you very much for answering my post.

All the best.

Sam Dupree.


On October/19/2020 13:53:03, Melissa Mendonça wrote:
The documentation for f2py is not very complete, I'm afraid. I'll try to work on that front in the next few months. For now, you can find it here: https://numpy.org/doc/stable/f2py

Cheers,

Melissa

On Mon, Oct 19, 2020 at 2:35 PM Samuel Dupree <[hidden email]> wrote:

One more question. Where can I find a documentation on f2py that covers issues like assumed shaped arrays, and issues such as the one discussed in this post?

Sam Dupree.


On October/19/2020 13:01:13, Melissa Mendonça wrote:
Sure, you can use assume-shape arrays, but if you generate a signature file using

$ f2py rkfn78.for -m rkfn78 -h rkfn78.pyf

you can see that f2py correctly determines n to be the length of the array Y, but since YP also depends on n, that's what generated the error you saw the first time.

If you change the .pyf signature file to the one attached to this message, delete your original cf2py lines in the .for file and compile it all using

$ f2py -c rkfn78.pyf rkfn78.for --fcompiler=gfortran --f77flags="-c -O -Wall" -m rkfn78

then you'll have no trouble with assumed-shape arrays.

Cheers,

Melissa

On Mon, Oct 19, 2020 at 1:03 PM Samuel Dupree <[hidden email]> wrote:
>
> Melissa,
>
> Thank you for answering my post. I made the changes you recommended and the code compiles successfully. But I do have one question. The arrays being passed in the CALL to FCN were treated as assumed shaped arrays in the called subroutine. Are assumed shaped arrays a problem for f2py?
>
> Sam Dupree.
>
>
> On October/19/2020 09:16:02, Melissa Mendonça wrote:
>
> Hello, Sam, sorry for taking so long to answer!
>
> The problem seems to be that you are using
>
> cf2py depend(in) Y, YP
>
> instead of
>
> cf2py depend(n) Y, YP <- (note that there was a spurious i in that depend expression)
>
> and that the callback FCN needs the dimension n as an argument. I was able to compile your code correctly after making these changes.
>
> If you have any further questions let me know, I hope this helps.
>
> Cheers,
>
> Melissa
>
>
> On Wed, Oct 14, 2020 at 4:03 AM Samuel Dupree <[hidden email]> wrote:
>>
>> I'm attempting to wrap a Fortran-77 source member using f2py. I'm
>> running he Anaconda distribution for Python 3.7.6 on a Mac Pro (2019)
>> under Mac OS X Catalina (ver. 10.15.6). The version of NumPy I'm running
>> is 1.18.3.
>>
>> I've attached a copy of the Fortran source code to this note (see
>> rkfn78.for). The command I'm using to wrap this code is
>>
>> f2py3 -c rkfn78.for --fcompiler=gfortran --f77flags="-c -O -Wall" -m rkfn78
>>
>> The output I get is captured in the file rkfn78_build_output.txt.
>>
>> I don't understand the cause behind the error message I get, so any
>> advice would be welcomed.
>>
>> Sam Dupree.
>> _______________________________________________
>> NumPy-Discussion mailing list
>> [hidden email]
>> https://mail.python.org/mailman/listinfo/numpy-discussion
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> [hidden email]
> https://mail.python.org/mailman/listinfo/numpy-discussion
>


_______________________________________________
NumPy-Discussion mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/numpy-discussion


_______________________________________________
NumPy-Discussion mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/numpy-discussion