Fortran: Fortran und Python

Aus Wikibooks
Wechseln zu: Navigation, Suche
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 ein 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

Wrappen[Bearbeiten]

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

Zugriff[Bearbeiten]

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

Weblinks[Bearbeiten]


<< zur Fortran-Startseite
< OpenMP Fortran und Python >