Fortran: Fortran und Python

<< zur Fortran-Startseite
< Fortran und C F >


F2PY

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

Bearbeiten

Erforderlich 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

Bearbeiten

Als 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

Bearbeiten
Fortran 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

Mit 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.

Im 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
Bearbeiten

<< zur Fortran-Startseite
< Fortran und C F >