f2py: problem with PUBLIC access spec of a derived type
Hi, I am learning about f2py, with the goal of wrapping a delay differential equation solver that is written in Fortran 90. The solver is Shampine and Thompson's DDE_SOLVER. Here is what I get when I run f2py: ------------ $ f2py dde_solver_m_unix.f90 -h tmp.pyf Reading fortran codes... Reading file 'dde_solver_m_unix.f90' (format:free) Line #316 in dde_solver_m_unix.f90:" TYPE, PUBLIC :: DDE_SOL" analyzeline: No name/args pattern found for line. Line #331 in dde_solver_m_unix.f90:" TYPE, PUBLIC :: DDE_OPTS" analyzeline: No name/args pattern found for line. Line #340 in dde_solver_m_unix.f90:" TYPE, PUBLIC :: DDE_INT" analyzeline: No name/args pattern found for line. rmbadname1: Replacing "index" with "index_bn". rmbadname1: Replacing "index" with "index_bn". rmbadname1: Replacing "index" with "index_bn". <snip> ------------ Why is f2py complaining about the PUBLIC access spec for the derived types? Regards, Warren
Hi again, On Sun, Oct 12, 2008 at 3:02 PM, Warren Weckesser < warren.weckesser@gmail.com> wrote:
Hi,
I am learning about f2py, with the goal of wrapping a delay differential equation solver that is written in Fortran 90. The solver is Shampine and Thompson's DDE_SOLVER. Here is what I get when I run f2py:
------------ $ f2py dde_solver_m_unix.f90 -h tmp.pyf Reading fortran codes... Reading file 'dde_solver_m_unix.f90' (format:free) Line #316 in dde_solver_m_unix.f90:" TYPE, PUBLIC :: DDE_SOL" analyzeline: No name/args pattern found for line. Line #331 in dde_solver_m_unix.f90:" TYPE, PUBLIC :: DDE_OPTS" analyzeline: No name/args pattern found for line. Line #340 in dde_solver_m_unix.f90:" TYPE, PUBLIC :: DDE_INT" analyzeline: No name/args pattern found for line. rmbadname1: Replacing "index" with "index_bn". rmbadname1: Replacing "index" with "index_bn". rmbadname1: Replacing "index" with "index_bn". <snip> ------------
Why is f2py complaining about the PUBLIC access spec for the derived types?
I should have added that the problem appears to be the PUBLIC spec because if I remove the PUBLIC spec, so, for example, line 316 is " TYPE DDE_SOL", then I don't get the "analyzeline" errors. Warren
Answering my own question: according to the f2py FAQ at http://cens.ioc.ee/projects/f2py2e/FAQ.html, derived types are not supported in F90 code. Warren On Sun, Oct 12, 2008 at 4:16 PM, Warren Weckesser < warren.weckesser@gmail.com> wrote:
Hi again,
On Sun, Oct 12, 2008 at 3:02 PM, Warren Weckesser < warren.weckesser@gmail.com> wrote:
Hi,
I am learning about f2py, with the goal of wrapping a delay differential equation solver that is written in Fortran 90. The solver is Shampine and Thompson's DDE_SOLVER. Here is what I get when I run f2py:
------------ $ f2py dde_solver_m_unix.f90 -h tmp.pyf Reading fortran codes... Reading file 'dde_solver_m_unix.f90' (format:free) Line #316 in dde_solver_m_unix.f90:" TYPE, PUBLIC :: DDE_SOL" analyzeline: No name/args pattern found for line. Line #331 in dde_solver_m_unix.f90:" TYPE, PUBLIC :: DDE_OPTS" analyzeline: No name/args pattern found for line. Line #340 in dde_solver_m_unix.f90:" TYPE, PUBLIC :: DDE_INT" analyzeline: No name/args pattern found for line. rmbadname1: Replacing "index" with "index_bn". rmbadname1: Replacing "index" with "index_bn". rmbadname1: Replacing "index" with "index_bn". <snip> ------------
Why is f2py complaining about the PUBLIC access spec for the derived types?
I should have added that the problem appears to be the PUBLIC spec because if I remove the PUBLIC spec, so, for example, line 316 is " TYPE DDE_SOL", then I don't get the "analyzeline" errors.
Warren
participants (1)
-
Warren Weckesser