Aus Wikibooks
Tcl/Tk kann im Zusammenhang mit Fortran zwecks Erstellung einer Tk-Benutzeroberfläche für Fortran-Programme interessant sein. Die zeitkritischen oder mathematisch orientierten Programmteile werden mittels Fortran-Code realisiert. Der Programmcode für die Benutzerschnittstelle wird mittels Tcl/Tk-Skript zur Verfügung gestellt.

#!/usr/bin/wish
wm title . Sinus ;# Fenstertitel
entry .e1 ;# Eingabefeld
button .b1 -text "Hier drücken" -command fcall ;# Schaltfläche
label .l1 -bg green ;# Textfeld
pack .e1 -padx 10 -pady 5 ;# Widgets packen
pack .b1 -padx 10 -pady 5
pack .l1 -padx 10 -pady 5
proc fcall { } { ;# Kommunikation mit Fortran, Ergebnis schreiben
set f [open "|./a.out" r+] ;# a.out ist das kompilierte und gelinkte Fortran-Programm
set val [.e1 get]
puts $f $val
flush $f
gets $f wert
close $f
.l1 config -text $wert
}
| Fortran 90/95-Code (free source form) |
program bsp
implicit none
real :: val, sin
read (*,*) val
write(*,'(A12F6.3)') "Ergebnis = ", sin(val)
end
|
[Bearbeiten] Programmausführung
Das Fortran-Programm muss selbstverständlich vorab einmal kompiliert und gelinkt werden. Im Beispielsfall muss die exekutierbare Ausgabedatei a.out heißen. Unter Linux wird das Tcl-Skript vor dem ersten Start als ausführbar (-> mittels chmod-Befehl) markiert. Der Programmaufruf erfolgt über das Tcl-Skript, das wie ein normales Programm durch Eingabe des Programmnamens gestartet wird.

Tcl/Tk bietet eine Schnittstelle zur Programmiersprache C (tcl.h, tk.h, libtcl*.so, libtk*.so). Mit dem im nächsten Kapitel behandelten Fortran-C-Binding kann auf diese C-Funktionen zugegriffen werden. Die Ftcl-Bibliothek nutzt diesen Mechanismus.