Zum Inhalt springen

Fortran: Fortran und Tcl

Aus Wikibooks
<< zur Fortran-Startseite
< OpenMP Fortran und C >




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.

Beispiel

[Bearbeiten]

Prinzipskizze

[Bearbeiten]

Tcl/Tk-Code

[Bearbeiten]
#!/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-Code

[Bearbeiten]
Fortran 90/95-Code (free source form)
program bsp
  implicit none
 
  real :: val, sin
 
  read (*,*) val
  write(*,'(A12,F6.3)') "Ergebnis = ", sin(val)  
end

Programmausführung

[Bearbeiten]

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.

Ergebnis

[Bearbeiten]

Alternativen

[Bearbeiten]

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.

Weblinks

[Bearbeiten]

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