2012-05-19 14 views
13

Ich weiß, und f2py2e verwendet, um einige alte Fortran 77 Code zu wickeln, aber mein Verständnis ist, dass es nicht mit neueren Fortran 95-Code funktioniert. Ich habe recherchiert, was ich verwenden soll, und bin auf fwrap und G3 f2py gestoßen, von denen keine zu erklären scheint, wie sie sich momentan verhalten oder wie sie zu benutzen sind. Ich habe gesehen, dass die Version von f2py die Option hat, die dritte Generation von f2py zu verwenden, aber sie wird als nicht funktional kommentiert. Angesichts dessen weiß ich nicht, welches Projekt ich verwenden sollte. Welchen sollte ich benutzen?Aktuelle beste Methode zum Einwickeln von modernen Fortran-Code mit Python

hat diese Frage jetzt Quer gebucht (und beantwortet at) Ort Computational Science Stapelaustausch als Which package should I use to wrap Modern Fortran Code with Python?

+2

vielleicht Fortran-Bibliotheken durch 'Ctypes anrufen 'wäre eine Option? – mata

+1

f2py (wie in scipy enthalten) scheint [Anspruch] (http://www.scipy.org/F2py) zu haben, Fortan95 zu unterstützen. Hast du es versucht? – Ken

+2

Sie könnten auch versuchen, auf scicomp.stackexchange zu fragen, da es dort viele Leute gibt, die mit Python und Fortran arbeiten. – Ken

Antwort

6

I SWIG verwendet haben, bevor einige C/C++ Code wickeln, aber sie nicht unterstützen Fortran . Sie verbinden auf die folgenden, obwohl

Mindestens FortWrap heißt es, dass sie Fortran95 unterstützen, aber Sie haben könnten FortWrap nutzen, um C/C++ - Wrapper und SWIG für die Python-Wrapper. f90wrap generiert automatisch die Python-Wrapper basierend auf den f90-Quellen (und unterstützt abgeleitete Typen).

+3

Ich erwähnte F2PY, und ich würde lieber SWIG vermeiden. Auch pyfortran ist alter Code, der wahrscheinlich nicht mit numpy funktionieren wird (er ist für Numeric entworfen), und FortWrap ist für C++ gedacht, wiederum fehlt die Integration mit numpy. –

+0

Ich habe gerade f90wrap dank dieser Antwort entdeckt. Du hast meinen Tag gerettet! – astrojuanlu