From: Robert K. <rob...@gm...> - 2006-11-14 17:03:31
|
Christian Meesters wrote: > Hoi, > > thanks to Robert Kern who helped me out yesterday on the f2py-list, I was able > to make some progress in accessing FORTRAN from Python. But only some > progress ... > > If I have the following code, named 'hello.f': > C File hello.f > subroutine foo (a) > integer a > print*, "Hello from Fortran!" > print*, "a=",a > end > > and compile it with g77 -shared -fPIC hello.f -o hello.so > > and then start python, I get the following: >>>> from numpy import * >>>> from ctypes import c_int, POINTER, byref >>>> hellolib = ctypeslib.load_library('hello', '.') >>>> hello = hellolib.foo_ >>>> hello(42) > Hello from Fortran! > Segmentation fault > > Can anybody tell me where my mistake is? (Currently python 2.4.1 (no intention > to update soon), the most recent ctypes, and numpy '1.0.dev3341' from svn.) > > And a second question: Are there simple examples around which show how to pass > and retrieve lists, numpy arrays, and dicts to and from FORTRAN? Despite an > intensive web search I couldn't find anything. I don't believe anyone has posted anything about calling FORTRAN code using ctypes. Why aren't you using f2py? -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco |