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

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.

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 <sdupree@speakeasy.net> 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 NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion

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 <sdupree@speakeasy.net <mailto:sdupree@speakeasy.net>> 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 NumPy-Discussion@python.org <mailto:NumPy-Discussion@python.org> https://mail.python.org/mailman/listinfo/numpy-discussion <https://mail.python.org/mailman/listinfo/numpy-discussion>
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion -- mail-signature
<IYA-2009.jpg> <mmb_emblem-2.gif> Samuel H. Dupree, Jr.sdupree@speakeasy.net 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!/ ------------------------------------------------------------------------

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 <sdupree@speakeasy.net> 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 <sdupree@speakeasy.net>
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 NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
-- ________________________________
Samuel H. Dupree, Jr. sdupree@speakeasy.net 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!
________________________________

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 <sdupree@speakeasy.net <mailto:sdupree@speakeasy.net>> 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 <sdupree@speakeasy.net
<mailto:sdupree@speakeasy.net>> 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 NumPy-Discussion@python.org <mailto:NumPy-Discussion@python.org> https://mail.python.org/mailman/listinfo/numpy-discussion <https://mail.python.org/mailman/listinfo/numpy-discussion>
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org <mailto:NumPy-Discussion@python.org> https://mail.python.org/mailman/listinfo/numpy-discussion <https://mail.python.org/mailman/listinfo/numpy-discussion>

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 <sdupree@speakeasy.net> 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 <sdupree@speakeasy.net> 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 <sdupree@speakeasy.net>
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 NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion

Melissa, I've tried working with the documentation hosted at https://numpy.org/doc/stable/f2py/ <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 <https://numpy.org/doc/stable/f2py>
Cheers,
Melissa
On Mon, Oct 19, 2020 at 2:35 PM Samuel Dupree <sdupree@speakeasy.net <mailto:sdupree@speakeasy.net>> 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 <sdupree@speakeasy.net <mailto:sdupree@speakeasy.net>> 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 <sdupree@speakeasy.net <mailto:sdupree@speakeasy.net>> 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 >> NumPy-Discussion@python.org <mailto:NumPy-Discussion@python.org> >> https://mail.python.org/mailman/listinfo/numpy-discussion <https://mail.python.org/mailman/listinfo/numpy-discussion> > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@python.org <mailto:NumPy-Discussion@python.org> > https://mail.python.org/mailman/listinfo/numpy-discussion <https://mail.python.org/mailman/listinfo/numpy-discussion> >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
participants (2)
-
Melissa Mendonça
-
Samuel Dupree