Fortran: Fortran und Python
<< zur Fortran-Startseite | |
< Fortran und C | F > |
F2py (Fortran to Python interface generator) ist ein Wrapper, der Fortran-Module, -Subroutinen oder -Funktionen in sogenannte SharedObject-Dateien kompiliert, die dann in Python als normales Modul importiert werden können. Einsatzgebiete sind vor allem numerische Berechnungen, in denen sowohl die Geschwindigkeit der Fortranroutinen, aber auch die Flexibilität von Pythonscripten genutzt werden soll.
Voraussetzungen
BearbeitenErforderlich für die Installation von f2py sind einerseits eine Python-Version ab 2.0 zusammen mit den Erweiterungsmodulen NumPy und SciPy und außerdem einen Fortran-Compiler. Genaue Informationen finden Sie auf der Homepage des f2py-Projekts, die unten angegeben ist. Es ist sehr wichtig, dass Sie zunächst alle Komponenten installiert haben, bevor Sie fortfahren. Die Erfahrung hat gezeigt, dass dies manchmal gar nicht so einfach ist. Um zu überprüfen, ob Ihr f2py funktionsfähig ist, tippen Sie einfach f2py in die Konsole ein. Wünschenswerterweise sollte dies einige Informationen über das Programm auf Ihrem Bildschirm anzeigen.
Beispiel
BearbeitenAls Testbeispiel wählen wir ein kleines Programm namens punktrechnung.f90. Es enthält ein Modul und eine Subroutine zur Berechnung von Division und Multiplikation. Wir wollen diese Routinen später von Python aus aufrufen können und die Funktionalitäten nutzen.
Fortran Code
BearbeitenFortran 90/95-Code (free source form) |
!File: punktrechnung.f90 module punktrechnung real,parameter::pi=3.14 contains subroutine division(x,y) integer::x,y print*, "x/y = ",x/y end subroutine division end module punktrechnung subroutine multi(x,y) integer::x,y print*, "x*y= ",x*y end subroutine multi |
Wrappen
BearbeitenMit dem Befehl f2py -c -m meinmodul punktrechnung.f90 erstellen wir eine Objekt-Datei mit der Endung .so, die von Python als Modul importiert werden kann. Das Modul trägt den Namen "meinmodul" und es beinhaltet alle Funktionalitäten der Datei punktrechnung.f90.
Zugriff
BearbeitenIm interaktiven Modus von Python können wir dieses Modul nun importieren und die Funktionen nutzen:
>>> import meinmodul
>>> meinmodul.multi(5,4)
x*y= 20
>>> meinmodul.punktrechnung.division(36,6)
x/y = 6
Weblinks
Bearbeiten<< zur Fortran-Startseite | |
< Fortran und C | F > |