Fortran für PCs unter Windows und Linux

Vorspann

Die Programmiersprache Fortran war in den 70ern und 80ern so populär, dass Experten bereits glaubten, sie würde sich in wenigen Jahren zur einzigen Programmiersprache von Bedeutung entwickeln. Heute wissen wir es besser. Der Aufstieg anderer Sprachen zu Lieblingssprachen hat es um Fortran etwas ruhig werden lassen. Aber im Gegensatz zu anderen Sprachen, die einmal Hoffnungsträger waren, beispielsweise PL/1, Ada, etc. lebt Fortran weiter. Die Sprache wird permanent weiterentwickelt und in Abständen in Normen festgeschrieben, und für praktisch alle Plattformen stehen hervorragende Compiler zur Verfügung - teilweise sogar kostenlos.

Ein Saurier zwar, aber jung geblieben

Dieser Artikel beschäftigt sich hauptsächlich mit Fortran 95. Mit diesem Arbeitsnamen wird üblicherweise die aktuelle gültige Norm der Programmiersprache Fortran bezeichnet. Es gibt daneben weitere Bezeichnungen wie FORTRAN 77, FORTRAN 4, Fortran 90, Visual Fortran, Professional Fortran, usw. Dabei handelt es sich teils um die Arbeitsnamen inzwischen veralteter/ungültiger Normen, um die Namen von Compilern oder um die Namen von Dialekten der Sprache Fortran.

Die Programmiersprache Fortran gibt es seit Mitte der 50ger Jahre. Damals schrieb man noch FORTRAN als Abkürzung für "Formular Translator". Fortran's Hauptanwendungsgebiet sind seitdem Probleme im technisch/naturwissenschaftlichem/numerischem Bereich. Um die Ausbreitung herstellereigener Spracherweiterungen zu kanalisieren und um die Sprache dem aktuellen Stand der Programmiertechnik anzupassen, wurde die Sprache in 1966, 1978, 1991 und 1997 normiert; die jeweiligen Sprachdefinitionen bekamen die Arbeitsnamen FORTRAN 66, FORTRAN 77, Fortran 90 und Fortran 95. Dabei wechseln sich "große" und "weniger große" Revisionen der Norm ab.

FORTRAN 66 war die erste Fortran-Norm. Sie beschrieb die gemeinsame Untermenge aller (wichtigen) damaligen Fortran-Dialekte. Aber viele Hersteller entwickelten weiterhin eigene Spracherweiterungen. Dazu kam die Tatsache, dass die Norm Fehler enthielt. FORTRAN 77 sollte Abhilfe schaffen, indem neue Sprachmittel in die Sprache übernommen wurden, die die Datei- und Textverarbeitung verbesserten und die mit Einschränkungen auch strukturierte Programmierung ermöglichten.

Der große Durchbruch kam mit der Norm Fortran 90, die eine von Grund auf neue moderne Fortran-Sprache beschrieb mit sehr effizienten Sprachmitteln für strukturierte Programmierung, mit neuen Typkonzepten, mit dynamischen Feldern und Zeigern, mit inhomogenen Datenstrukturen, mit neuen Kontrollstrukturen, mit Feldarithmetik, mit neuen Konzepten für die Unterprogrammtechnik und nicht zuletzt mit sehr vielen neuen Standard-Unterprogrammen, die insbesondere die Bearbeitung kompletter Felder erleichtern sollten. Damit hatte der Fortran-Programmierer jetzt Instrumente an der Hand, um sichere, lesbare Programme zu entwickeln. Die Aufwärtkompatibilität blieb gewahrt. Jedes normgerechte FORTRAN77-Programm blieb auch als Fortran90-Programm lauffähig.

Fortran 95 ist lediglich eine Konsolidierung der Sprache mit einer Vielzahl von Klarstellungen, Korrekturen und Interpretationen von Fortran 90 und mit einer kleinen Zahl neuer Sprachmittel (wie beispielsweise FORALL-Anweisung, pure und elementweise wirkende Unterprogramme, Initialisierung von Datenstrukturen und Zeigern). Und Konvergenz zu HPF (High Performance Fortran) war das Ziel. Obwohl auch ein paar Sprachmittel aus der Sprache entfernt wurden (beispielsweise reelle und doppelt genaue Laufvariablen, die Anweisungen PAUSE und ASSIGN, das gesetzte GOTO und das H-Format), bleibt die Sprache weiterhin im großen Ganzen aufwärtskompatibel. D.h., jedes normkonforme Fortran90-Programm bleibt, von wenigen Ausnahmen abgesehen, als Fortran95-Programm lauffähig.

Die kommende Norm Fortran 2000 [1] ist wieder eine große Revision der Programmiersprache Fortran. Sie wird vorraussichtlich Ende 2004 die aktuelle Norm Fortran 95 ablösen. Der Entwurf ist bereits weitgehend fertig und beschreibt viele neue Sprachmittel, beispielsweise

Heutzutage gibt es hauptsächlich zwei typische Sorten Fortran-Anwender auf PCs. Da sind einmal die Programmierer, die infolge der großen Leistungsfähigkeit heutiger PCs ihre Anwendungen von Workstations oder sogar von Mainframes auf ihren PC am Arbeitsplatz portiert haben, um dort ungestört von Kollegen rechnen zu können. Und es gibt die Programmierer, die ihre Programmentwicklung für ganz andere Plattformen - ja sogar für Hochleistungs- und Höchstleistungs-Rechner - auf ihrem PC am Arbeitsplatz oder auch zuhause durchführen.

Scusi, parla Fortran?

Alle hier genannten aktuellen Versionen der Compiler sind für 32-Bit-PCs gedacht, nur vom Intel- und vom NAG-Compiler gibt es zusätzlich eine Version für 64-Bit-Itanium-Prozessoren. Wir untersuchen nur Fortran95-Compiler, weil Fortran 95 die einzige aktuell gültige Norm ist. Das ist keine Einschränkung insofern, als alle betrachteten Compiler weiterhin solche Programe verarbeiten, die lediglich Fortran90-konform oder sogar nur FORTRAN77-konform sind.
Absoft Pro Fortran
Version 7.5, Entwicklungssystem für Fortran 95 unter Windows 9x/2000/NT/XP und unter Linux.
Compaq Visual Fortran
Version 6.6, Entwicklungssystem für Fortran 95 unter Windows 9x/2000/NT/XP.
Intel Fortran
Version 6.0, Fortran95-Compiler unter Windows 98/2000/NT/XP und unter Linux.
Lahey LF95
Version 5.7 (Windows) bzw. 6.1 (Linux), Entwicklungsystem für Fortran 95 unter Windows 9x/2000/NT/XP und unter Linux.
NAG f95
Version 4.2, Entwicklungssystem für Fortran 95 unter Linux. Wir haben die Version 4.1 getestet.
NASoftware FortranPlus
Version 2.5 (Windows) bzw. 2.22 (Linux), Entwicklungssystem für Fortran 95 unter Windows 9x/2000/NT/XP und unter Linux.
Salford FTN95
Version 3.0, Entwicklungssystem für Fortran 95 unter Windows 9x/2000/NT/XP.

Or do you speak German?

Sorry but keiner der hier betrachteten Compiler spricht deutsch mit Ihnen. Das betrifft sowohl die Software (beispielsweise die Fehlermeldungen und die grafischen Benutzerschnittstellen der Entwicklungsumgebungen) als auch die online-Dokumentation und die gedruckte Dokumentation. Es gibt keine deutschen Beschreibungen zur Handhabung der Compiler und keine deutsche Beschreibung des jeweiligen Sprachumfangs. Wenn Sie Mitglied (Student, Mitarbeiter, ...) einer Universität oder anderen Forschungseinrichtung sind, dann könnten Sie sich die preiswerte deutsche Sprachbeschreibung "Fortran95-Nachschlagewerk" des RRZN besorgen [2]; Bezugsquellen finden Sie unter http://www.rrzn.uni-hannover.de/Dokumentation/bezug.html.

Falls Sie neue Fortran-Programme entwickeln, dann sollten Sie Fortran 95 ohne die veralteten und zum Teil gefährlichen Sprachmittel von FORTRAN 77 verwenden. Solch eine moderne Fortran-Untermenge stellt die Programmiersprache F dar. Für F gibt es nicht nur eine deutschsprachige Beschreibung [3], sondern auch kostenlose Compiler für diverse Plattformen [7].

Absoft ProFortran

Es handelt sich tatsächlich um zwei separate hochoptimierende Fortran-Compiler, nämlich einen Fortran95-Compiler, der den vollen Sprachumfang akzeptiert, und um einen FORTRAN77-Compiler, mit dessen Hilfe man existierende Pakete verarbeiten kann, die Spracherweiterungen von VAX/VMS, IBM/VS, Sun, Cray, Lahey und Microsoft enthalten. Die Optimierer sind speziell für Intel-P4- und AMD-Athlon-Prozessoren zugeschnitten.

Win32-Variante

Neben den zwei Fortran-Compilern gibt es noch einen C/C++Compiler. Die Compiler sind untereinander laufzeitkompatibel. Es kann auch MS-C-Code eingebunden werden. Es gibt eine gemeinsame Entwicklungsumgebung, in die auch die mitgelieferten Werkzeuge, wie Editor, Debugger, Linker, Make, usw., integriert sind. Der Compiler und die Werkzeuge können wahlweise von der Kommandozeile aus oder aus der Entwicklungsumgebung heraus gestartet werden. Windows-Programmierung wird einerseits via Win32 API und andererseits via MRWE, eine Absoft-Schnittstelle, unterstützt. Zum Lieferumfang gehören zwei Grafikbibliotheken für 2D/3D-Grafik (es handelt sich dabei um reduzierte Versionen der SuperPlot Libraries der Fa. SuperPlot), eine Bibliothek mit Unix- und VMS-kompatiblen Routinen für Zeit- und Datumsanfragen, für mathematische Funktionen und für den Zugriff auf Dateien und Verzeichnisse; und es gibt Header-Dateien für OpenGL-Anwendungen. Und es gehören BLAS-, LAPACK95-, ATLAS- und HDF-Objektbibliotheken zum Lieferumfang. Optional sind die IMSL-Bibliotheken (Mathematik & Statistik) verfügbar, die aber nicht von VNI, sondern nur von Absoft bezogen werden können. Für unseren Test standen die IMSL-Bibliotheken nicht zur Verfügung.

Neben dieser "Standard Version" des ProFortran-Compilers gibt es eine Version mit der Bezeichnung "ProFortranMP". Diese Version enthält zusätzlich den Präprozessor VAST/F, mit dessen Hilfe sich Fortran-Programme für den Einsatz auf Doppelprozessorsystemen automatisch parallelisieren lassen. Es wird zwar von Laufzeitverbesserungen um bis zu 50% berichtet, tatsächlich ist der Gewinn aber stark von der jeweiligen Anwendung abhängig. Es kann sich sogar eine Verlängerung der Laufzeit ergeben.

Nicht von Pappe
Zum Test wurde uns lediglich eine download-bare "demonstration copy" zur Verfügung gestellt. Ob der Kunde normalerweise auch gedruckte Handbücher erhält und ob sie brauchbar sind, konnten wir nicht überprüfen. Jedenfalls gehören vier umfangreiche Online-Handbücher zum Lieferumfang einschließlich einer FORTRAN77- und einer Fortran95-Sprachbeschreibung. Die Syntaxtests haben wir zuerst mit dem Absoft Editor durchgeführt, der als separates Tool mitgeliefert wird. Mit einem unserer Testprogramme (fatigue.f90) ist der Editor mehrfach abgestürzt. Er hat auch noch andere Macken. So kann man zwar mehrere Quelldateien zur Bearbeitung öffnen, man kann aber immer nur eine compilieren. Das Quelltextformat war auf "fixed" - also FORTRAN77-Format - voreingestellt. Das heute übliche "freie" Fortran90/95-Quelltextformat musste für jede Quelldatei neu eingestellt werden. Auf diesen Editor kann man als eigenständiges Tool gut verzichten, weil man die Fortran-Quelldateien von hier aus zwar compilieren aber nicht exekutieren kann und weil dieser Editor sowieso als integriertes Tool in die Entwicklungsumgebung "Absoft Developer" eingebaut ist.

Die Entwicklungsumgebung "Absoft Developer" findet man im Startmenue nicht sofort, weil sie dort als "Compiler Interface" bezeichnet wird. Vom Developer aus kann man alle üblichen Tools aus bedienen. Der Developer arbeitet mit Projekten; d.h. man muss immer erst ein Projekt einrichten, ehe man sein Quellprogramm bearbeiten kann. Für die Compilation kann man einige Optionen selektieren, die allerdings an unterschiedlichen Menüstellen versteckt sind. Wenn man nur mal eben ein einziges Programm übersetzen und ausführen will, ist das schon sehr mühsam. Da ist es einfacher, den Compiler gleich von der Kommandoebene aus einzusetzen. Dazu kann man im Startmenue "Development Command Shell" selektieren, dann werden für das sich öffnende DOS-Fenster gleich die richtigen Umgebungsvariablen gesetzt.

Lin32-Variante

Neben den zwei Fortran-Compilern gibt es einzelne Werkzeuge wie den Debugger. Compiler und Debugger sind kompatibel mit Linux-Tools wie libc5, glibc2.0, glibc2.1, gcc, g77, f2c, Linker, Assembler, Make, etc. Alle genannten Compiler und Werkzeuge sind laufzeitkompatibel; auch gemischtsprachiges Debugging ist möglich. Als Grafik-Bibliothek wird DISLIN mitgeliefert. Und es gehören BLAS-, LAPACK95-, ATLAS- und HDF-Objektbibliotheken zum Lieferumfang. Optional sind die IMSL-Bibliotheken erhältlich, die aber nicht von VNI, sondern nur von Absoft bezogen werden können. Für unseren Test standen die IMSL-Bibliotheken nicht zur Verfügung. Für Doppelprozessor- und Multiprozessor-Boards kann optional ein VAST-Präprozessor geliefert werden, der die Autoparallelisierung durchführen kann.

Die online-Dokumentation besteht aus Manual Pages und aus Handbüchern im pdf-Format, die man notfalls auch mal ausdrucken kann. Ansonsten waren Installation und Gebrauch der Software ohne Überraschungen. Wir haben versuchsweise noch die NAG-FORTRAN77-Bibliothek (für g77) installiert. Der Versuch scheiterte aber an diversen "Unsatisfied externals" beim Binden des Verifikationsprogramms.

Compaq Visual Fortran

Nur Win32-Variante

Compaq Visual Fortran CVF ist seit 1999 der neue Name für das ehemalige Digital Visual Fortran DVF, das wiederum der offizielle Nachfolger des 1997 eingestellten Microsoft Powerstation Fortran 4.0 war. Diese bewegte Vergangenheit spiegelt sich darin wieder, dass CVF heutzutage das Produkt der Wahl ist, wenn es darum geht, alte VAX- oder Powerstation-Spracherweiterungen zu verarbeiten. Dieser Entwicklungsweg ist offensichtlich noch nicht zu Ende. Es gibt Zeichen, die besagen, dass möglicherweise bald aus dem Frontend des CVF und dem Backend des Intel-Compilers ein neues Produkt für 32-Bit- und 64-Bit-Intel-Architekturen gebastelt werden wird. Die Quelltextkompatibilität mit Intel Fortran (in IA32) ist offensichtlich.

Der Compiler ist hochoptimierend. Es gibt eine Entwicklungsumgebung, in die auch die üblichen Werkzeuge integriert sind. Es ist die gleiche Entwicklungsumgebung, die auch von Microsoft Visual C/C++ verwendet wird. Gemischtsprachige Programmierung ist möglich mit MS Visual Basic, MS Visual C/C++, und MASM. Mit MS Visual C/C++ ist sie sogar innerhalb der Entwicklungsumgebung möglich. Der Compiler und die Werkzeuge können wahlweise von der Kommandozeile aus oder aus der Entwicklungsumgebung heraus gestartet werden. Die Win32 API wird unterstützt.

Zum Lieferumfang gehören die Programmbibliothek PortLib mit diversen Systemroutinen für Datum-, Zeit-, Datei- und Verzeichnisabfragen, die QuickWin Library für Windows-Programme mit einfachen Grafikanwendungen, sowie weitere umfangreiche wie Win32 GDI API, OpenGL und SciGrafik-Bibliothek. Zum Lieferumfang gehören ferner einige Hilfsroutinen wie der Library Manager, der Binäreditor, der Profiler und eine Routine für Dateivergleiche. Man kann von NAG eine kompatible Version sowohl der numerischen FORTRAN77- als auch der Fortran90-Bibliothek bekommen.

Neben dieser "Standard Version" des CVF gibt es eine "Professional" Version, die zusätzlich die IMSL-Bibliotheken (Mathematik & Statistik) umfasst und den Array Visualizer, mit dem sich Felder grafisch darstellen lassen. Die IMSL-Bibliotheken für den CVF kann man auch separat von VNI beziehen.

Ein Kuckucksei im Compaq-Nest
Compaq ist einer von nur zwei Herstellern im Test, die eine umfangreiche Sprachbeschreibung in gedruckter Form liefern. Online ist nicht nur dieses Language Reference Handbuch, sondern auch ein Programmer's Guide verfügbar. Der überraschte Kunde findet beim Auspacken des Kartons nicht nur Dokumentation und die Compiler-CD, sondern zusätzlich eine Testversion des Fortran-Compilers von Intel. Die Compaq-Software wird vom Administrator installiert. Anschließend muss jeder einzelne Benutzer vor Gebrauch der Software ein zusätzliches "Per User Setup" durchführen. Die Entwicklungsumgebung "Developer Studio" arbeitet grundsätzlich nur mit Projekten; d.h. man muss zuerst ein Projekt einrichten, ehe man ein neues Quellprogramm bearbeiten kann. In einem Fall ergab sich beim Laden eines Testprogrammes (capacita.f90) ein Stack Overflow. Wir haben keine Möglichkeit gefunden, unter Kontrolle des Developer Studio eine ausreichende Stack-Größe anzugeben. Wir mussten vielmehr die Entwicklungsumgebung verlassen, um mit der Hilfsroutine EDITBIN mit der Option /STACK das Problem so beheben: EDITBIN /STACK:64000000 CAPACITA.EXE. Ansonsten kann man Compiler-Optionen sehr bequem einstellen und - was nicht immer selbstverständlich ist - man kann jederzeit mitlesen, welche Optionen per Klick scharf gemacht worden sind.

Wenn man den Compiler im Komandomodus verwenden will, dann macht man das DOS-Fenster am besten über den dafür vorgesehenen Startmenüeintrag der Compaq-Software auf. So werden gleich die richtigen Umgebungsvariablen gesetzt. Bei der Gelegenheit kann man auch einem alten Bekannten begegnen. Den Compiler muss man nämlich mit dem Kommando df ... aufrufen, das steht offensichtlich für "Digital Fortran" - ein Name aus der Vor-Compaq-Zeit des Compilers.

Kennern von Microsoft Visual Studio wird das Developer Studio bekannt vorkommen. An dieser grafischen Benutzerschnittstelle scheiden sich häufig die Geister. Die einen sagen, sie sei ganz einfach und ganz intuitiv nutzbar, die anderen sagen, es sei praktisch unmöglich, als Gelegenheitsprogrammierer mal eben ein kleines Programm durchzuschleusen. Vermutlich haben beide Recht. Jedenfalls ist es sicher die professionellste aller in unserem Test verwendeten Entwicklungsumgebungen mit grafischer Benutzerschnittstelle.

Wir haben sowohl die zum Lieferumfang gehörende Version der IMSL-Bibliotheken als auch die von VNI zur Verfügung gestellt Version getestet. Beide ließen sich ansprechen und korrekt verifizieren. Es empfiehlt sich, die Bibliothek im Rahmen der professionellen Version des CVF gleich mitzubeschaffen, weil sie dann bei Bedarf per Klick im Developer Studio selektiert werden kann. Diese Möglichkeit entfällt andernfalls. Und auch sonst ist die von VNI gelieferte Version etwas hakelig. Sie wird an anderer Stelle als die "native" Version installiert. Auch die Installationsanweisungen sind etwas verstreut. Erst ganz zuletzt kommt man vielleicht auf die Idee, auch mal in der Beilage in der Hülle der CD nachzusehen.

Von den NAG-Bibliotheken gibt es gleich drei Varianten: die FORTRAN77-Bibliothek in dll-Form und in lib-Form und die Fortran90-Bibliothek. Alle drei Bibliotheken ließen sich im Kommandomodus ansprechen und korrekt verifizieren. Allerdings haben wir keine Möglichkeit gefunden, im Developer Studio Programmbibliotheken für die Bindephase anzugeben.

Intel Fortran

Der Fortran-Compiler von Intel akzeptiert das volle Fortran 95. Es handelt sich um einen hochoptimierenden/vektorisierenden/OpenMP-parallelisierenden Compiler, der nicht nur die IA32-Umgebungen, sondern auch 64-Bit-Umgebungen für Itanium-Prozessoren unterstützt. Obwohl der Compiler auf Intel-Plattformen deren spezielle Eigenschaften, wie beispielsweise Streaming SIMD Extensions 2 (SSE2) für Pentium 4 oder Software-Pipelining für Itanium, ausnutzt, hat er auch schon auf AMD-Atlon-Plattformen seine Brauchbarkeit erwiesen. Die Intel-Compiler unterstützen Multithreading durch Autoparallelisierung (mit Vorschau-Option, nur IA32) und OpenMP. Wie bereits weiter oben erwähnt, wird dieser Compiler vermutlich schon bald als ein wesentlicher Baustein des zukünftigen Fortran-Entwicklungssystems im Compaq/HP/Intel-Umfeld sein. Die Quelltextkompatibilität mit Compaq CVF (unter IA32) ist offentsichtlich.

Anwender beobachten gelegentlich ungewöhnlich lange Compilationszeiten. Die Implementierung von Fortran-Modulen unterscheidet sich von der (nichtstandardisierten aber) üblichen Vorgehensweise anderer Compiler. Intel Fortran liefert auch auf AMD-Prozessoren effizienten Code.

Win32/64-Varianten

Der Compiler wird als Plugin zu MS Visual Studio 6.0 geliefert. D.h., sie benötigen zusätzlich den MS Visual C++, um dessen IDE, das ist das Visual Studio, als gemeinsame Entwicklungsumgebung mitzubenutzen. Daraus ergibt sich natürlich automatisch die Möglichkeit zur gemischtsprachige Programmierung mit MS Visual C/C++. Aus dieser IDE heraus kann man auch 64-Bit-Anwendungen für Itanium-Prozessoren erzeugen.
Unzertrennlich
Wenn man es zuvor überlesen hat, was ganz klein geschrieben auf der Hülle der CD unter "System requirements" steht, dann erfährt man erst während der Installation, dass man auch MS Visual Studio 6.0 installieren sollte. Es wird aber der Eindruck erweckt, wie wenn es erst mal auch ohne ginge. Installiert man also zunächst versuchsweise ohne Visual Studio weiter, dann scheint die Installation vollständig abgeschlossen zu werden. Der Versuch, ein Testprogramm zu übersetzen und zu binden wird dann aber mit der Meldung ifl: error: could not find 'link' beantwortet. Bei der Suche nach dem Linker findet man dann auch xlink.exe als Software-Komponente zum Intel-Compiler. Leider ruft dieses xlink.exe selbst den Linker auf, der nicht zu finden ist. D.h. Intel-Fortran funktioniert nicht ohne Visual Studio.

Also zuerst wird das Visual Studio installiert. Bei der Installation kann man wie üblich zwischen mehreren Installationsvarianten wählen. Unsere erste Wahl schien nicht die richtige gewesen zu sein, denn am Ende der Installation wurden diverse Dateien nicht gefunden. Der Installationsprozess wurde unvollständig beendet. Beim zweiten Installationsversuch haben wir als zu installierende Produkte wohlweislich nur VC++ selektiert. Bei diesem Versuch wurden wieder diverse (andere) Dateien nicht gefunden, schließlich gab es einen error code 3 und die Installation wurde mit der Meldung "Installation von MS Visual Studio nicht vollständig" beendet. Das Start-Menü war vollständig und sah ganz brauchbar aus.

Anschließend verlief die Installation von Intel Fortran ganz reibungslos. Aber obwohl wir ein Unterverzeichnis des Compilers, das fehlerhafterweise ins Unterverzeichnis Program Files kopiert wurde, nach Programme kopiert hatten, ließ sich der Compiler als neue Komponente im Visual Studio nicht blicken. Darum haben wir die Tests von der Kommandozeile aus durchgeführt, hier gab es nach Installation des Visual Studio keine Probleme mehr.

Weil nach dem Herunter- und anschließendem Herauffahren des Rechners immer wieder eine DLL (mspdb60.dll) vermisst wurde, was nur mit Neuinstallation des Compilers behoben werden konnte, haben wir die Installation noch einmal komplett durchgeführt. Also Software deinstallieren, Visual Studio installieren (diesmal traten keine Fehler auf, weil wir als zu installierende Komponenten VC++, Data Access und Tools gewählt hatten), Compiler installieren, fehlende Dateien umkopieren. Das Ergebnis war wie zuvor: der Compiler ließ sich im Kommandomodus einsetzen, ins Visual Studio war er immer noch nicht integriert und nach dem Restart des Rechners fehlte wieder die genannte DLL.

Und sonst: Es gibt keinerlei gedruckte Dokumentation zum Intel-Compiler. Alles befindet sich auf der CD. Die Dokumentation unter Windows unterscheidet sich im Detail etwas von der unter Linux. Das ist uns z.B. im User's Guide aufgefallen. Außerdem gibt es keine Handbücher im pdf-Format, die man komplett abdrucken könnte. Aber die ansonsten komfortablen online-Handbücher kann man notfalls wenigstens kapitelweise abdrucken.

Lin32-Variante

Für Linux-Plattformen ist leider keine IDE verfügbar. Dafür kann man für nichtkommerzielle/private Anwendungen eine kostenlose Lizenz des Fortran-Compilers von Intel via Internet bekommen [6]. Optional sind die IMSL-Bibliotheken erhältlich.
Aber nun
Wie unter Windows gibt es keine gedruckte Dokumentation zum Intel-Compiler. Alles befindet sich auf der CD; hier allerdings in HTML- und in pdf-Form. Für den Einsatz muss man sowohl JavaSkript als auch Java scharf machen. Die Dokumentation zum Compiler findet man via HTML-Seite .../docs/fcomindex.htm und die Dokumentation zum Linux Application Debugger via .../docs/ldb.htm.

Die Software ist zwar nur für Red Hat Linux 7.1 und 7.2 validiert, es gibt aber (fast) keine Probleme mit Suse 8.0. Installationshinweise findet man in den Release Notes. Die an der Stelle opt/intel/compiler60/ia32/bin/ifc.cfg versprochene Standard-Konfiguration findet man dort nicht. Es geht aber auch ohne.

Wir haben mal versuchsweise die NAG-FORTRAN77-Bibliothek (für g77 unter Red Hat 7.1) installiert. Die Bibliothek ließ sich ansprechen und korrekt verifizieren.

Lahey LF95

Seit 1998 vertreibt Lahey nicht mehr seinen eigenen Compiler, sondern einen hochoptimierenden Compiler von Fujutsu. Der Compiler akzeptiert das volle Fortran 95 sowie übliche VAX-Spracherweiterungen. Der Compiler ist weitgehend kompatibel zum alten LF90-Compiler.

Win32-Variante

Der Compiler kann entweder von der Kommandozeile ("LF95 Command Prompt") oder aus der Entwicklungsumgebung ED4W heraus gestartet werden. Andere Werkzeuge wie ein Debugger und Make können ebenfalls aus ED4W heraus gestartet werden. Mitgeliefert werden der MS Incremental Linker, MS-C-Laufzeitbibliotheken, der MS Library Manager und MS Make. Zum Lieferumfang gehört auch das Winteracter Starter Kit. Das ist eine Untermenge des Winteracter, einem Werkzeug zur interaktiven Gestaltung von Bedienoberflächen im Windows-Stil. Zusätzlich gibt es einige Funktionen, mit deren Hilfe sich Diagramme und Grafiken erstellen lassen. Gemischtsprachige Programmierung mit Borland C++, Delphi, Visual C, Fujitsu C und LF90 ist möglich. Darüberhinaus gibt es Laufzeitkompatibilität mit g77 und egcs. Win32 API wird unterstützt. Man kann von NAG eine kompatible Version sowohl der numerischen FORTRAN77- als auch der Fortran90-Bibliothek bekommen.

Neben der "Standard"-Version gibt es die Version LF95 Pro. Sie enthält zusätzlich folgende weitere Werkzeuge: den "Fujitsu Visual Analyser" als Fortran Modul Browser, den Fujitsu C-Compiler, die "Fujitsu Scientific Subroutine Library SSL2" mit etwa 250 Funktionen als Bibliothek für viele mathematische Anwendungen und sie enthät "f90SQL Lite" als Utility für die Anbindung relationaler Datenbanken mittels SQL und ODBC.

Was zum Anfassen
Der Lahey-Compiler fällt zunächst einmal dadurch positiv auf, dass man ein Paket mit gedruckten Handbüchern bekommt. Das erleichtert den ersten Umgang mit dem Produkt sehr. Zusätzlich sind die Handbücher aber auch online in pdf-Form auf der CD verfügbar. Nach Installation unter Administrator zeigte die Entwicklungsumgebung "Lahey ED Developer (ED4W)" dem "normalen" Benutzer zunächst diverse Fehlermeldungen beim Aufschalten an, beispielsweise Personal configuration file not found, sie funktionierte aber trotzdem einwandfrei. Weder während der Installation noch bei der Arbeit mit der Entwicklungsumgebung haben wir Möglichkeiten gefunden, Optionen für den ED4W einzustellen. Verwendete Compiler-Optionen werden nach dem Compilieren, das man hier mit dem Knopf "Build" anstößt, angezeigt. Voreinstellungen können im "Driver Konfiguration File (LF95.FIG)" vorgegeben werden.

Der Gebrauch der grafischen Benutzerschnittstelle des ED4W ist auch für den Gelegenheitsprogrammierer, der nur mal schnell ein Programm syntaktisch überprüfen lassen und übersetzen lassen will, kein Problem. Bloß bei der Programmausführung hapert es dann. Es sieht so aus, wie wenn der ED4W nur ein aufgebohrter Editor ist. Zur Programmausführung mussten wir den ED4W verlassen und das bereits gebundene Programm von der Kommandoebene aus starten.

Als numerische Bibliothek haben wir die Fortran90-Bibliothek von NAG installiert. Die Bibliothek ließ sich problemlos ansprechen und korrekt verifizieren.

Lin32-Variante

Compiler und Tools können nur via Kommandozeile gestartet werden. Ein eigener Editor fehlt. Auch der Debugger entspricht nicht dem der Windows-Version von LF95. Es gibt Laufzeitkompatibilität mit Fujitsu C, g77 und egcs. Man kann von NAG eine kompatible Version sowohl der numerischen FORTRAN77- als auch der Fortran90-Bibliothek bekommen.

Neben der Standard-"Express"-Version gibt es die Version LF95 Pro. Sie bietet zusätzlich automatische Parallellisierung, OpenMP-Kompatibilität, das Winteracter Starter Kit für die Erstellung von Windows-GUIs und Bildschirmgrafiken, thread-safe BLAS und LAPACK, Fujitsu Scientific Subroutine Library SSL2 und Polyhedron's Automake.

Bindestriche
Auch für die Linux-Version des Compilers bekommt man umfangreiche Dokumentation in elektronischer und in gedruckter Form mitgeliefert. Die Installation verläuft völlig problemlos. Beim Aufruf des Compilers kann man wie üblich viele Optionen angeben. Hier werden allerdings die meisten Optionen mit "--" eingeleitet. Nur die allgemein üblichen Optionen -I -C -o -O -L -l usw. werden mit einem einzigen "-" eingeleitet.

Als numerische Bibliothek haben wir die Fortran90-Bibliothek fl90 (Rel.4) von NAG installiert. Die Bibliothek ließ sich erst dann problemlos ansprechen und korrekt verifizieren, nachdem wir im Verifikationsskript im Compiler-Aufruf die Option --staticlink hinzugefügt hatten.

NAG f95

Nur Lin32/64-Varianten

Der f95-Compiler wurde aus dem f90-Compiler entwickelt, der der erste weltweit verfügbare Fortran90-Compiler war. Der f95 ist für diverse UNIX-Plattformen verfügbar, so auch für Linux-Systeme. Er akzeptiert das volle Fortran 95 und einige Spracherweiterungen. f95 ist ein optimierender - wenn auch kein hochoptimierender - Compiler. HPF-Code wird zwar compiliert und geprüft, aber es wird nur Ein-Prozessor-Code erzeugt. Der Compiler unterstützt bereits einige der neuen Sprachmittel von Fortran 2000, beispielsweise die allokierbaren Tpkomponenten und die IEEE-Ausnahmebehandlung. Man kann ebenfalls von NAG eine kompatible Version sowohl der numerischen FORTRAN77- als auch der Fortran90-Bibliothek bekommen.
Alt und erfahren
Die Installation verlief reibungslos. Wenn man mehr als nur die Demo-Version des Compilers installiert, muss man sich zusätzlich um die Lizenz-Software, das ist FLEXlm, kümmern. Das kann schon sehr lästig werden, wenn man die Software nicht kennt. Als numerische Bibliotheken haben wir die FORTRAN77-Bibliothek und die Fortran90-Bibliothek fl90 von NAG installiert. Die Bibliotheken ließen sich problemlos ansprechen und korrekt verifizieren.

NASoftware FortranPlus

Der Compiler akzeptiert das volle Fortran 95. Darüberhinaus akzeptiert der hochoptimierende Compiler bereits einige Sprachmittel aus Fortran 2000, beispielsweise allokierbare Typkomponenten, allokierbare Formalparameter, IEEE-Arithmetik und -Ausnahmebehandlung, Interoperabilität mit C. Zum Lieferumfang gehören diverse Programmbibliotheken in vorübersetzter Form oder als Fortran-Modul wie Mathlib (mathematische Bibliothek), LAPACK, BLAS, VPA20 (Rechnen in variabler Genauigkeit), F90GL 3-D (OpenGL), Plot95 (technische Grafik) sowie ExtInt (IBM- und VAX-Intrinsics). Für unsere Tests hatten wir leider keinen NAS-Compiler zur Verfügung.

Win32-Variante

Die aktuelle Version 2.5 wird mit dem ersten Release einer eigenen grafischen Entwicklungsumgebung ausgeliefert. Der Compiler kann wahlweise auch von der Kommandozeile aus aufgerufen werden.

Lin32-Variante

Compiler und Tools können nur von der Kommandzeile aus gestartet werden.

Salford FTN95

Nur Win32-Variante

Der Compiler akzeptiert das volle Fortran 95. Der hochoptimierende Compiler und die Werkzeuge können wahlweise von der Kommandozeile oder aus der Entwicklungsumgebung Plato heraus ausgeführt werden. In Plato sind ein Editor, der Linker, Make und ein Debugger integriert.

Zum Lieferumfang gehört ClearWin+. Das ist ein Werkzeug, das dem Programmierer sehr einfach mithilfe von Deskriptoren (ähnlich wie Formatelemente einer FORMAT-Anweisung) den Aufbau von Windows-Bedienoberflächen gestattet. Außerdem wird eine umfangreiche Bibliothek mit mehr als 250 Routinen für Datum- und Zeitanfragen, Bit-Manipulation, String-Manipulation, Speicherverwaltung, Grafik, Dateiverwaltung, usw. geliefert. Und es gibt vordefinierte Fortran-Module mit Schnittstellenblöcken für die Unterstützung von OpenGL, HTML-Einbettung und Win32API.

Gemischtsprachige Programmierung mit allen anderen Salford-Compilern ist möglich. Zum Lieferumfang gehört beispielsweise auch eine kostenlose Lizenz für den Salford C/C++Compiler.

Die Unvollendete
Abgesehen von einer Broschüre Getting Started with FTN95 gibt es keine gedruckte Dokumentation. Auf der CD fehlt zudem ein wesentlicher Teil der online-Dokumentation, nämlich der FTN95 - Users Guide und das FTN95 - Users Guide Supplement. Alle andere versprochene Dokumentation ist vorhanden. Die fehlende Dokumentation findet man aber bei Salford auf dem Server www.salford.co.uk. Die online-Handbücher mögen im Ernstfall zwar die Information enthalten, die man sucht, man findet sie nur nicht so leicht. Über den Index findet man im Users Guide beispielsweise keinen direkten Einstieg zur Lösung des Problems Stack Overflow.

Bei der Installation werden die notwendigen Umgebungsvariablen gesetzt, ohne vorher nachzufragen. Das geht solange gut, wie man nur den einen Compiler installiert hat; bei mehreren gäbe es sicher Probleme. Es ist der einzige Compiler unter Windows, für den im Start-Menü kein separater Eintrag für den Start des Compilers von der Kommandoebene aus vorgesehen ist. Trotzdem (oder deshalb) funktioniert der Aufruf des Compilers am normalen Kommando-Prompt.

Die Entwicklungsumgebung Plato ist ohne das Studium irgendwelcher Dokumentation sofort benutzbar. Es gab nur ein Problem. Das Testprogramm capacita.f90 lief beim Binden via Plato auf die Meldung "ACCESS VIOLATION". Ausserhalb von Plato machte das Programm keine Probleme. In Plato sind nur sehr wenige Compiler-Optionen selektierbar. Für echte Produktionsläufe, für die besondere Einstellungen erforderlich sind, wird man auf die Kommandoebene übergehen müssen. Die Compiler-Option /LINK, die eigentlich eine Linker-Option ist und die man laut Dokumentation ohne Angabe eines Dateinames spezifizieren kann, funktionierte nur bei Angabe mit Dateiname.

Weil Salford vor vielen Jahren den Vorgänger FTN90 des FTN95-Compilers in Kooperation mit NAG entwickelt und vertrieben hat, haben wir mal versuchsweise die FORTRAN77- und die Fortran90-Bibliotheken von NAG installiert, die für den FTN90-Compiler (von Salford/NAG) vorgesehen sind. Leider ließen sich beide nicht zur Zusammenarbeit mit dem FTN95-Compiler bewegen.

Die Leistungsgesellschaft

Die Leistungsmessungen wurden auf einem 2.0 GHz Intel Pentium 4 mit 256 MB RDRAM durchgeführt. Wir haben den Polyhedron-Benchmark [8] gemessen, der Fortran-Programme mit echten Fortran90-Eigenschaften enthält. Und wir haben den Polyhedron-Benchmark [9] gerechnet, der nur FORTRAN77-Programme enthält. Jedes Benchmark-Programm wurde fünfmal gerechnet. Die Laufzeiten wurden arithmetisch gemittelt.

Für die Messungen wurden die Compiler und die Programme außerhalb der jeweiligen Entwicklungsumgebung von der Kommandozeile aus gestartet. Wir konnten nämlich in keinem Fall feststellen, dass man beim Arbeiten aus der Entwicklungsumgebung heraus Laufzeiteffizienz verschenkt oder gewinnt. Aber die Compiler-Optionen lassen sich, wenn man sie kennt, bequemer und sicherer in der Kommandozeile als via GUI in der Entwicklungsumgebung angeben.

Der Polyhedron-Fortran90-Benchmark [8]:
CAPACITA
Berechnung der elektrischen Ladungsverteilung auf einem flachen Leiter. Der Test verwendet u.a. Module, Felder mit übernommener Gestalt, dynamische Felder und Zeiger.
CHANNEL
Implementierung eines Flachwasser-Modells für einen Kanal. Der Test verwendet u.a. interne Funktionen und rechnet in doppelter Genauigkeit.
FATIGUE
Berechnung des Materialversagens von dünnen Metalldrähten durch andauerndes Biegen. Die Differentialgleichungen werden mit einem Zeitschrittverfahren gelöst. Der Test verwendet u.a. Module und dynamische Felder und rechnet reell mit mindestens 15 Stellen dezimale Genauigkeit.
GAS_DYNAMICS
Modellierung der Strömungsmechanik eines Gases, das aus einer Verbrennungskammer austritt. Es werden nicht-lineare partielle Differentialgleichungen mithilfe eines finiten Differenzenschemas berechnet. Der Test verwendet u.a. dynamische Felder Feldarithmetik, Rekursion, Module, optionale Parameter, automatische Felder und diverse Standard-Unterprogramme.
INDUCTANCE
Diskretisierung eines dünnen Metallkastens durch rechteckige Netzelemente. Berechnung diverser Induktivitäten entweder analytisch oder numerisch mithilfe Gausscher Quadraturen. Der Test verwendet u.a. Module, benutzerdefinierte Datentypen und dynamische Felder und rechnet reell mit mindestens 15 Stellen dezimale Genauigkeit.
KEPLER
Lösung von Bewegungsgleichungen eines um die Sonne rotierenden Planeten. Eplizite symmetrische Mehrschrittmethode für die Integration. Der Test rechnet reell mit mindestens 12 Stellen dezimale Genauigkeit.
MONTE_CARLO
Numerische Integration mithilfe eines einfachen Integrationsschemas. Der Test verwendet u.a. dynamische Felder.
PROTEIN
Dieser Code berechnet die Zustandsdichte und die kanonische Verteilungsfunktion für ein Modellpeptid, das an einer heterogenen polymerähnlichen Oberfläche absorbiert ist. Der Test verwendet u.a. dynamische Felder und ein rekursives Unterprogramm und rechnet reell mit mindesten 12 Stellen dezimale Genauigkeit.
RNFLOW
Vergleich der theoretischen Ergebnisse mit den simulierten Ergebnissen verschiedener Methoden zur Berechnung des Materialversagens infolge Dauerbelastung. Der Test verwendet u.a. Module, dynamische Felder und einige leicht modifizierte LAPACK-Routinen.
SCATTERING
Bildung eines dichten komplexwertigen linearen Systems für quantenmechanische Berechnungen. Es werden Fourier-Transformationen und einige Integrale berechnet. Der Test verwendet u.a. Module und dynamische Felder und rechnet reell mit mindesten 13 Stellen dezimale Genauigkeit.

Zuerst Fortran90-Programme unter Windows XP

Die mit der Stoppuhr ermittelten Laufzeiten wurden arithmetisch gemittelt und das Ergebnis auf nächste halbe Sekunden abgerundet.

Compiler-Optionen:
Absoft ProFortran -nowdir -O2 -cpu:p7 -xINTEGER -noconsole
Compaq CVF /optimize:5 /math_library:fast /tune:pn4 /architecture:pn4 /debug:none
Salford FTN95 /optimise /p6 /link <quelle>.exe
Intel Fortran /O3 /G7 /QaxW /Qip
Lahey LF95 -tpp -nchk -ntrace -nsav -nstchk -o1 -nprefetch
NAS FortranPlus leider wurde kein Compiler für diesen Test zur Verfügung gestellt

Grüne Zellen markieren das Intervall von 100% bis 110% bezogen auf den besten Wert.
Rote Zellen markieren Werte, die schlechter als 150% relativ zum besten Wert sind.

Sekunden Absoft Compaq Salford Intel Lahey NAS
CAPACITA 279 173 188 185 238  
CHANNEL 38 39 69 38 41  
FATIGUE 44 32 77 57.5 62  
GAS_DYN 27.5 23 29 14.5 53  
INDUCT 1.5 1.5 3.5 9.5 1.5  
KEPLER 7 12 9.5 7.5 6  
MONTE_CA 2.5 1.5 2 2 2  
PROTEIN 9.5 8 14 10 11.5  
RNFLOW 2 *) 18 10 9.5 10  
SCATTERI 16.5 11.5 22.5 **) 14.5 13  
 
 
Mittelwert 47.3 31.9 42.4 34.8 43.8  
*) vorzeitiger Programmabbruch
**) Stack overflow, darum slink scatteri.obj -stack:50000000

Dann FORTRAN77-Programme unter Windows XP

Sekunden Absoft *) Compaq Salford Intel Lahey NAS
AC 3.5 4 4.5 3.5 5  
ADI 6 5 5 2.5 6  
AIR 10.5 11 15 9.5 9.5  
CHESS 10 9.5 9.5 9.5 11  
DODUC 24.5 20.5 35.5 15.5 24  
LM8 6 4 6 4 4  
LP8 2.5 2 Abbruch **) 1.5 2  
MDB 3.5 2.5 5 3 2.5  
MOLENRGY 35 41 41 21 20  
PI 5 6.5 5.5 6.5 12  
PNPOLY 3.5 6 3.5 3 3.5  
RO 3 3 5 5 3.5  
SM4 3 1 3 2 2  
TFFT 22 21 21 21 21  
WH4 15 3.5 Abbruch **) 1.5 14
 
 
Mittelwert 10.20 9.37 12.27 7.27 9.33  
*) mit f95, nicht mit dem f77-Compiler.
**) Meldung devide by zero.

Summa summarum

Für die betrachteten Fortran-Benchmark-Programme gibt es folgende pauschalen Ergebnisse unter Windows XP:

Dann Fortran90-Programme unter Linux

Die mit dem Kommando times a.out ermittelten (REAL-)Laufzeiten wurden arithmetisch gemittelt und das Ergebnis auf die nächste zehntel Sekunde gerundet.

Compiler-Optionen:
Absoft ProFortran -O2 -xINTEGER -cpu:p7
Intel Fortran -O3 -tpp7 -xW -ip
Lahey LF95 --tpp --nchk --ntrace --nsav -O --warn --staticlink
NAG f95 -O4 -ieee=full -unsharedf95
NAS FortranPlus leider wurde kein Compiler für diesen Test zur Verfügung gestellt

Grüne Zellen markieren das Intervall von 100% bis 110% bezogen auf den besten Wert.
Rote Zellen markieren Werte, die schlechter als 150% relativ zum besten Wert sind.

Sekunden Absoft Intel Lahey NAG NAS
CAPACITA 274 182.1 231 293.2  
CHANNEL 44.8 50.6 51.2 43  
FATIGUE 46.5 57.2 46.7 75  
GAS_DYN 27.5 15 23 30.6  
INDUCT 1 9.3 2.5 2.6  
KEPLER 6.4 12.6 7.3 12.1  
MONTE_CA 2.1 1.2 2 1.7  
PROTEIN 10.2 8.6 12.1 10.8  
RNFLOW 12.6 9.2 9.9 9.5  
SCATTERI 17.4 14 17 25.6  
 
 
Mittelwert 44.25 35.98 40.27 50.41  

Dann FORTRAN77-Programme unter Linux

Sekunden Absoft Intel Lahey NAG NAS
AC 3.5 3.8 6.4 5.6  
ADI 6.1 2.7 6 6.5  
AIR 11.4 11.2 Abbruch *) 14.1  
CHESS 11.3 10.2 11.6 10.8  
DODUC 25.5 17.4 23.6 Abbruch **)  
LM8 6 4.1 4 6  
LP8 2.9 2.3 2.5 Abbruch **)  
MDB 3.5 3.7 3.6 4  
MOLENRGY 13.6 13.1 13.8 18  
PI 5.2 7.5 16 5.8  
PNPOLY 4 2.8 3.3 5.5  
RO 3 5.4 3.8 3.6  
SM4 3 1.6 1.9 6.3  
TFFT 22.7 20.7 21.4 20.6  
WH4 15.3 1 13.9 6.3  
 
 
Mittelwert 9.13 7.17 9.41 8.7  
*) programmierter vorzeitiger Abbruch.
**) Meldung arithmetic exception.

Summa summarum

Für die betrachteten Fortran-Benchmark-Programme gibt es folgende pauschalen Ergebnisse unter Linux:

Was sagt uns das

Diese Zahlen sagen gar nichts darüber aus, wie laufzeiteffizient Ihr eigenes Programm mit einem dieser Compiler auf Ihrem Rechner tatsächlich sein würde. Dennoch sind sie nicht wertlos, weil ein Compiler, der sich in unseren Tests als beständig effizient erwiesen hat, zumindest hoffen läßt, dass das für Ihr Programm auch so sein könnte.

Über den Zaun geblickt

Ein anderer Test von Fortran-Compilern unter Linux [12] am Rechenzentrum der Universität Karlsruhe, bei dem 6 Programme für Lineare Algebra sowie die Pakete LINSOL (iterative Lösung linearer Gleichungssysteme, dünn besetzte Matritzen, indirekte Adressierung), SPARC (Fachgebiet Strömungsmaschinen) und PLESOCC (Hydromechanik) getestet wurden, hat folgende Ergebnisse geliefert für den

NAG f95, Intel Fortran und Lahey LF95:

Bei einem weiteren Test, bei dem es um die Diagnosefähigkeiten der Compiler ging, ergab sich mit dem Polyhedron-Diagnose-Benchmark [14] ganz grob folgendes Ranking zunächst unter Windows [15]:

Salford Lahey Intel  Compaq NAS Absoft

Salford FTN95 dicht vor Lahey LF95, beide mit weitem Abstand vor Intel Fortran und Compaq CVF, weit abgeschlagen Absoft ProFortran.

Und unter Linux ergab sich folgendes Ranking [16]:

Lahey Intel  NAG NAS Absoft

Lahey LF95 mit weitem Abstand vor Intel Fortran und NAG f95, weit abgeschlagen Absoft ProFortran.

Freie Fortran-Compiler

"frei" heißt fast immer frei für nichtkommerzielle persönliche Nutzung und/oder frei für Tests vor dem Erwerb.

Wenn Sie nur mal für kurze Tests einen Fortran-Compiler benötigen, dann sehen Sie sich ruhig im Web bei den Herstellern um. Irgendwo werden Sie immer einen kostenlosen Compiler finden - allerdings meist mit zeitlich begrenzter Lizenz.

Wenn Sie nicht Fortran90/95, sondern immer noch FORTRAN 77 programmieren, dann gibt es für Win32-Plattformen kostenlos nichts besseres als die "Salford FTN77 Personal Edition" [10]. Der Compiler kommt sogar mit einer grafischen Entwicklungsumgebung und die Lizenz ist zeitlich unbegrenzt.

Und wenn Sie mit Fortran77/90/95 in Linux-Umgebungen arbeiten, dann prüfen Sie, ob Sie sich nicht die kostenlose Version des "Intel Fortran Compilers" [6] beschaffen können. Wenn Sie die Voraussetzungen erfüllen, kommt dieser Compiler auch mit zeitlich unbegrenzter Lizenz.

Informationsquellen und Fundorte im Web

  1. ISO, Fortran 2000, Working Draft, J3/02-007R2, Mai 2002:
    ftp://ftp.j3-fortran.org/j3/doc/standing/2002/007.pdf
  2. RRZN, Fortran95-Nachschlagewerk:
    http://www.rrzn.uni-hannover.de/Dokumentation/Handbuecher/Fortran95.html
  3. Gehrke, Die Programmiersprache F, Springer, 1997, 374 Seiten:
    http://unics.rrzn.uni-hannover.de/rrzn/gehrke/publikat.html#HBF
  4. Bezugsquelle: h.o.-COMPUTER (Köln): http://www.hocomputer.de
  5. Bezugsquelle: QT software (München): http://www.qtsoftware.de
  6. Intel-Compiler, kostenlos: http://developer.intel.com/software/products/compilers/f60l/noncom.htm
  7. F-Compiler, kostenlos: ftp://ftp.swcp.com/pub/walt/F/
  8. Fortran90-Benchmark-Programme: http://www.polyhedron.co.uk/compare/win32/f90bench.zip
  9. FORTRAN77-Benchmark-Programme: http://www.polyhedron.co.uk/compare/win32/f77bench.zip
  10. Salford FTN77 Personal Edition Compiler: http://www.salford.co.uk/compilers/ftn77pe/index.shtml
  11. Bezugsquelle: NAG (Deutschland), info@naggmbh.de
  12. Geers, Fortran Compiler unter Linux, Rechenzentrum Universität Karlsruhe:
    http://www.uni-karlsruhe.de/Uni/RZ/Hardware/Linux-Cluster/Cluster_UKA/t020424/compiler.pdf
  13. The Linux Fortran Information Page, http://www.nikhef.nl/~templon/fortran.html
  14. Fortran-Diagnose-Benchmark: http://www.polyhedron.co.uk/compare/win32/diagnose.zip
  15. Diagnose unter Windows: http://www.polyhedron.co.uk/compare/win32/diagnose.html
  16. Diagnose unter Linux: http://www.polyhedron.co.uk/compare/linux/diagnose.html

Handbücher

Für keinen der obigen Compiler gibt es eine deutsche Sprachbeschreibung. Wenn Sie ein preiswertes Fortran-Handbuch brauchen oder wenn Sie eine vollständige Sprachbeschreibung von Standard-Fortran brauchen, dann sollten Sie das deutschsprachige Fortran-Handbuch des RRZN verwenden. Dabei ist das neue Fortran-95-Nachschlagewerk genauso brauchbar wie das inzwischen vergriffene Fortran-90-Nachschlagewerk.

Bezugsquellen für das Fortran-95-Nachschlagewerk:

Wenn Sie modernes Fortran (d.h. Fortran 90 ohne FORTRAN 77) lernen wollen oder wenn Sie neue Fortran-Programme methodisch programmieren wollen, dann sollten Sie das Handbuch Die Programmiersprache F verwenden.

Bezugsquellen


Nachspann

Im Prinzip ist man mit allen untersuchten Compilern gut bedient. Der Markt hat sich so bereinigt, dass man in jedem Fall ein professionelles Werzeug bekommt. Die tatsächliche Entscheidung bei der Anschaffung wird eher diktiert durch den Preis, durch die Fähigkeiten zur Unterstützung alter oder fremder Dialekte, durch die Qualität und Vollständigkeit der Dokumentation, ob gemischtsprachige Programmierung möglich ist beispielsweise mit C, ob man eher großen Wert auf Laufzeiteffizienz legt, oder ob man nur Programmentwicklung für andere Plattformen macht, ob man Gelegenheitsprogrammierer ist oder nicht, ob man Support benötigt, usw.

Wer unbedingt eine Entwicklungsumgebung (IDE) mit grafischer Benutzerschnittstelle (GUI) verwenden will, der muss sich einen Fortran-Compiler für Windows besorgen. Aber Achtung: der Gelegenheitsprogrammierer kann auch mit einer IDE seine Schwierigkeiten bekommen, weil nicht alle Entwicklungsumgebungen unbedingt intuitiv zu verwenden sind, und bestimmte Einstellungen und Möglichkeiten mehrstufig hinter Knöpfen und Menüs versteckt sein können. Aber was intuitiv ist und was nicht, das ist eine ganz persönliche Einschätzung des jeweiligen Anwenders und das kann man nur selber ausprobieren.

Der Profi hat die Wahl zwischen Compilern unter Windows oder Linux. Er wird unter Windows vielleicht die IDE einsetzen, aber wie unter Linux hat er auch die Möglichkeit, von der Kommandozeile aus zu arbeiten und das Management der Programmbausteine bei der Programmentwicklung mittels Make zu organisieren.

Wer nur nicht kommerziell programmiert, für den gibt es sogar kostenlose Compiler im Web.


18. Jan 2003        Wilhelm Gehrke         gehrke@rrzn.uni-hannover.de