Vor der Verwendung von VAST-90 muß einmalig das Kommando
init_vast90ausgeführt werden.
Die Übersetzung eines FORTRAN 77-Programmes nach Fortran 90 macht Sinn,
Bei einer Übersetzung eines Fortran 90-Programmes wird ein FORTRAN 77-Programm erzeugt, das mit dem vorhandenen f77-Compiler weiterverarbeitet werden kann.
Für beide Übersetzungsrichtungen ist ein gemeinsames Kommando vast90 verfügbar, wobei die Übersetzungsrichtung entweder explizit angegeben werden kann oder automatisch aus der Dateinamenerweiterung der Quelldatei folgt.
Für die Übersetzung eines Fortran 90-Programmes gibt es außerdem das Kommando v90, das die Angabe diverser Optionen für VAST-90, f77 und den Linker gestattet und das bei fehlerfreier Übersetzung eine ausführbare Datei, z.B. a.out, erzeugt.
Darüber hinaus kann VAST-90 eine statische Fehleranalyse des Programmes durchführen, und dabei u.U. Fehler finden, die der f77-Compiler nicht finden kann. Existierende Programme können durch automatisches Einrücken und Einfügen von Leerzeichen "verschönert" werden.
VAST-90 akzeptiert das vollständige Fortran 90 mit Ausnahme der nichtvorrückenden Eingabe und möglicherweise einiger der neuen Formatspezifikationen.
Am einfachsten ist es, das f90-Kommando zu verwenden:
v90 myprog.f90Dabei kann man auch beliebige Optionen angeben, die man normalerweise für den f77-Compiler und den Linker angeben würde; sie werden automatisch an f77 und den Linker weitergereicht.
Wenn man lediglich VAST-90 einsetzen will, um sich den erzeugten FORTRAN 77-Code anzusehen, verwendet man besser
vast90 myprog.f90und erzeugt sich die Datei Vmyprog.f.
VAST-90 nimmt an, daß das Fortran 90-Quellprogramm im spaltenunabhängigen Format vorliegt. Wenn das Fortran 90-Quellprogramm allerdings im spaltengerechten Format (d.h. in der alten FORTRAN 77-Schreibweise) vorliegt, dann muß man den Schalter -ya angeben:
v90 -Wv,-ya myprog.f90 oder vast90 -ya myprog.f90Normalerweise braucht man bei Übersetzungen von Fortran 90-Programmen keine VAST-90-Optionen oder -Schalter anzugeben, weil der FORTRAN 77-Zwischencode nicht interessiert.
| DATA-Anweisung | --> Typvereinbarungsanw. + Initialisierung |
| Separate Spezifikationsanweisungen | --> Attributorientierte Schreibweise |
| Schleife | --> Feldnotation |
| IF ... GOTO-Schleife | --> DO-Schleife |
| Sprung an das Schleifenende | --> CYCLE-Anweisung |
| Sprung hinter das Schleifenende | --> EXIT-Anweisung |
| Arithmetisches IF | --> Block-IF-Struktur |
| Logisches IF mit GOTO | --> Block-IF-Struktur |
| Block-IF-Struktur | --> CASE-Struktur |
| Berechnetes GOTO | --> CASE-Struktur |
| FORTRAN 77-DO-Schleife | --> DO ... ENDDO |
| COMMON-Block | --> Modul |
| INCLUDE | --> Modul |
| Stellengerechter Quelltext | --> Freie Fortran 90-Schreibweise |
Hinweis: Wenn man den Schalter -xr angibt, wird "agressive Feldnotation" erzeugt, die zwar möglicherweise sehr effizient, aber kaum noch lesbar ist.
Folgende Umwandlungen werden leider nicht durchgeführt: Hollerith in CHARACTER, Formelfunktionen in interne Funktionen, Eleminierung von alternativen RETURNS, Ersetzung gesetzter GOTOs und ASSIGN-Anweisungen, Erzeugung von Schnittstellenblöcken (kann per Schalter -xf eingeschaltet werden, siehe Punkt 7.).
Wenn die Quelldatei z.B. datei.f ist, erzeugt VAST-90 eine Datei Vdatei.f90. Also bei Ausführung von
vast90 spaghetti.ferhält man ein äquivalentes Fortran 90-Programm in der Datei Vspaghetti.f90.
Für die beteiligten Dateien gilt folgende Konvention:
Dateinamenendung Bedeutung
----------------+-------------------------
.f90 | Fortran 90-Quelltext
.f | FORTRAN 77-Quelltext
.m | Fortran 90-Modul
.o | Objektdatei fuer ld
.s | Assembler-Quelltext
.inc | Include-Datei
.vo | Modul in uebersetzter Form
.inf | Interface-Datei
Man beachte, dass v90 eine Zwischendatei Vdatei1.f erzeugt, die
anschließend
wieder gelöscht wird. Also Vorsicht, wenn Sie bereits eine derartige Datei
haben.
Für die VAST-90-Optionen gilt folgende Schreibweise:
-Wv'[optionen]' Mehrere Optionen fuer VAST-90 koennen in Apostrophe
eingeschlossen werden; davor steht -Wv.
-Wv,[optionen] Oder eine Optionenfolge kann angegeben werden, wobei
die Optionen keine Leerzeichen enthalten und durch
Kommata voneinander getrennt sind.
-Wvoption Alternativ kann ein einzelner VAST-90-Schalter durch
Voranstellen von -Wv ohne Apostrophe angegeben werden,
z.B.: -Wvxb. Diese Form darf wiederholt werden.
v90 -fast -c abc.f90Das Fortran 90-Programm befindet sich auf der Datei abc.f90. Es wird nach FORTRAN 77 übersetzt. Mit Hilfe des f77-Compilers wird Code erzeugt, wobei die Optimierungsoption -fast verwendet wird. Der erzeugte Code wird nicht gebunden.
v90 -Wv,-ya *.m xyz.f90Alle Module, die sich in den Dateien mit der Dateinamenendung .m befinden, sowie die Datei xyz.f90 werden verarbeitet. Der Eingabequelltext liegt im stellengerechten Format vor (normalerweise ist Fortran 90-Quelltext stellenunabhängig). Es wird übersetzt und gebunden. Der ausführbare Code befindet sich anschließend in der Datei a.out.
vast90 [-richtung] [-o ausgabe] [-l liste] [optionen] datei1 [...datein]Dabei sind:
richtung 90to77
77to90
77to77
90to90
Falls der Parameter fehlt,
ergibt sich die Voreinstellung aus der
Dateinamenendung der ersten Eingabedatei datei1.
ausgabe Uebersetzbare Ausgabedatei.
Falls der Parameter fehlt, wird der Dateiname der
ersten Eingabedatei ohne deren Dateinamenendung
verwendet, und ein V wird vorangestellt. Falls die
Ausgabe Fortran 90 ist, ist die Endung des
Dateinamens der Ausgabedatei .f90. Falls die Ausgabe
FORTRAN 77 ist, ist die Endung des Dateinamens
der Ausgabedatei .f.
liste Datei fuer die VAST-90-Ausgabeliste.
Falls der Parameter fehlt, wird keine Liste erzeugt.
optionen VAST-90-Optionen und -Parameter.
dateik Quelltext-Eingabedatei.
Falls die Angabe einer "richtung" (s.o.) fehlt, ergibt
sich die durchzufuehrende Aktion aus der
Dateinamenendung. Falls der Dateiname die Endung
.f hat, nimmt VAST-90 an, dass die Eingabedateien FORTRAN 77
enthalten, das nach Fortran 90 uebersetzt werden
soll. Falls der Dateiname die Endung .f90
hat, nimmt VAST-90 an, dass die Eingabedateien Fortran 90
enthalten, das nach FORTRAN 77 uebersetzt werden soll.
Falls die Datei die Endung .m hat, nimmt VAST-90 an,
dass die Eingabedatei ein Fortran 90-Modul enthaelt. Die
Modul-Dateien brauchen nicht in .m-Dateien zu liegen.
Empfehlung:
Für die Übersetzung 77-->90 verwenden Sie am bestens zuerst die Option -ymd, damit Sie Ihr Programm anschließend leichter wiedererkennen. Die Option -ym bewirkt, daß COMMON-Bloecke nicht auf einzelne Dateien verstreut werden, und die Option -yd, daß die alte Form der Vereinbarungen beibehalten wird.
Die Fehlermeldungen, die VAST-90 ausgibt, sind wichtig für Sie,
Bitte betrachten Sie das von VAST-90 erzeugte Fortran 90-Programm erst dann als das Ergebnis der Umstellung auf Fortran 90, wenn Sie die Richtigkeit der erzeugten Ergebnisse überprüft haben.
Bei der Übersetzung 77-->90 versucht VAST-90 aus COMMON-Blöcken Module zu erzeugen. Das kann man mit dem Schalter -ym verhindern.
Eingabe | fest frei
--------+---------------------
77 | Vorgabe -xa
90 | -ya Vorgabe
--------+---------------------
Ausgabe | fest frei
--------+---------------------
77-->90 | -yb Vorgabe
90-->77 | Vorgabe -xb
--------+---------------------
vast90 iola.f90 f77 Viola.f -l vast90Man beachte, daß die Bibliothek mit der Option -l im Anschluß (!) an die Quelltextdatei angegeben werden muß.
In einem zweiten Schritt kann VAST-90 INCLUDE-Anweisungen für diese Schnittstellendateien jeweils in die aufrufende Routine einfügen, indem man den Schalter -x2 angibt.
Beide Schritte werden bei Angabe von -xf2 durchgeführt.
Auf diese Weise ist es möglich, dass VAST-90 die Unterprogrammaufrufe daraufhin überprüft, ob Formalparameter und korrespondierende Aktualparameter hinsichtlich Anzahl, Typ, KIND-Typparameter, Gestalt und INTENT zueinander passen. Diese Überprüfung wird mit der Option -p4 eingeschaltet.

10. Jun 1998
Wilhelm
Gehrke
gehrke@rrzn.uni-hannover.de