Fortran 77
Jump to navigation
Jump to search
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ Ûßßßß ßßßßÛ ßßßßÛ Ein Compiler-Driver fr ³ ³ ÛÜÜÜ Üß Üß BC-Fortran-77 V1.3c ³ ³ Û Üß Üß Version 0.12 ³ ³ ß ß ß (C)1992, U. Bartelt ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Žtt„nschn !!! ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Dies Programm ist Freeware und frei jeglicher Versprechen meinerseits. - Es darf nicht verkauft werden, in PD-Sammlungen aufgenommen werden oder auf eine andere Art dem Geldverdienen Dritter dienen. - Ich verspreche nichts !!! Nichteinmal, daž das Programm funktioniert oder den Rechner unbeschadet l„žt... Was, wie, warum, wozu ? ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Vor einiger Zeit lief mir mal der von Andr‚ K”stli stammende Fortran-77-Compiler ber den Weg. (BC-Fortran-77 Version 1.3c) Der sah ja auch ganz nett aus... Aber er hatte ein paar Schwachstellen (in meinen Augen)... 1. Er verlangte eine nicht meiner Directory-Philosophie konforme Installation auf der Festplatte. 2. Aužerdem hatte ich keine Lust, immer Compiler und Linker nacheinander aufzurufen. Ich bin halt an die blichen C-Compiler-Driver gew”hnt, und die k”nnen das auch anders... 3. Ich konnte mir die Optionen des Compilers und des Linkers einfach nicht merken. Das liegt auch wieder daran, daž die blichen C-Compiler-Driver zumindest bei den wichtigsten Optionen einen Quasi-Standard einhalten... So entstand dann --- als Quickhack --- F77.TTP, um diese drei Punkte zumindest halbwegs akzeptabel zu l”sen... How 2 install... ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Der BC-Fortran'sche Lieferumfang besteht aus den folgenden Dateien: 1) Fortran-77-Compiler BCF.TTP 2) Linker BCL.TTP 3) Basis-Library BCRTSY.B 4) Mathematik-Library MATHLIB.B 5) Kurzanleitung LIES.TXT (Nur wenn alle diese Files komplett weitergegeben werden, ist die Verbreitung von BC-Fortran erlaubt.) Gem„ž meiner Directory-Struktur liegen - Compiler und Linker im Verzeichnis "c:\bin\bcf\" - Die Libraries im Verzeichnis "c:\lib\bcf\" und die Environment-Variablen "BCF_EXEC" und "BCF_LIB" werden auf diese Pfade eingestellt. Dies geschieht sinnigerweise im Profile der Lieblings-Shell oder mit einem im Auto-Ordner liegenden Programm, das ein Environment initialisiert. Weiter wird entweder "F77.TTP" in ein Verzeichnis gesteckt, das in der Environment-Variable "PATH" vorkommt oder man bedient sich eines ALIASes oder „hnlicher Funktionen, um "F77.TTP" griffbereit zu halten. In "MUPFEL.MUP" oder "GULAM.G" st„nde also setenv BCF_EXEC c:\bin\bcf # mit oder ohne "\" am Ende setenv BCF_LIB c:\lib\bcf alias f77 c:\bin\bcf\f77.ttp # oder die MUPFELsche "HASH"- # Funktion benutzen. Bei anderen Shells mag das eventuell anders aussehen, aber wer regelm„žig seine Shell benutzt, wird zumindest in der Lage sein, dies der Syntax seiner Shell anzupassen... Ist BCF_EXEC nicht definiert, so sucht F77.TTP in den durch PATH angegebenen Directories nach Compiler und Linker. Man k”nnte also die drei TTPs einfach in ein "Standard"-Programm- Directory kopieren und dies im PATH eintragen. F77 aufrufen... ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Zun„chst einmal ein paar Beispiele: 1. f77 test.f - Compiliert "test.f" zu "test.b". An den Compiler wird die Option -U bergeben, was dazu fhrt, daž nicht zwischen Grož- und Kleinschreibung in Namen unterschieden wird. (Dies erschien mir sinnvoll als Default, denn es entspricht dem, was man von Fortran so gew”hnt ist.) - Konnte "test.b" korrekt generiert werden, so wird der Linker instruiert, "test.b" und "mathlib.b" zu einem Programm zusammenzubinden. Dies heižt dann "test.prg" und liegt sch”n brav neben dem Quelltext... ("mathlib.b" wird defaultm„žig eingebunden, denn Fortran- Programme sollen ja haups„chlich RECHNEN... Dies kann auf Wunsch unterbleiben, dann ist die Option -r anzugeben.) 2. f77 -c test.f - Jagt "test.f" nur durch den Compiler. Der Linker wird nicht bemht, es entsteht lediglich ein neues "test.b" (so man keinen Mll getippt hat)... 3. f77 test.b - Jagt "test.b" durch den Linker. (siehe bei 1.) 4. f77 myprog.b mysubs.b - Die beiden angegebenen Module werden mit der Mathe-Library zusammen zu einem Programm gelinkt. Dies hat dann den Namen der ersten Datei, also "myprog.prg". 5. f77 myprog.f mysubs.f - Žhnlich Beispiel 4, jedoch werden die angegebenen Quelltexte erstmal einzeln durch den Compiler genudelt. War dies erfolgreich, so werden sie wie in Beispiel 4 weiter- verarbeitet... Das sollte zun„chst an Beispielen reichen. Ehrlicherweise muž ich noch nachtragen, daž die Library "bcrtsy.b" immer vom Linker eingebunden wird. (Muž ja auch sein, damit alles l„uft...) Die Optionen von F77.TTP... ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ...noch werden nicht alle Optionen des BC-Fortrans von F77.TTP bedient. Aber das wird sich evolution„r „ndern... Momentan werden folgende Optionen erkannt: -c compile only -f no casefolding, distinguish upper and lowercase -g compile with debug code -n no actions, only show commands... -O optimize (currently only optimizes linking) -r don't link with MATHLIB.B -sn set stack size to n kBytes -v verbose compile and link -vc verbose compile -vl verbose link ...und noch zwei weitere, aber darauf w„re ja jeder selbst gekommen. ...oder etwa nicht ? -? helptext -h helptext Dem alten BC-Fortran-Hasen f„llt natrlich sofort auf, daž dies nicht die blichen Optionen von BCF und BCL sind. Schaut man sich aber mal die Optionen g„ngiger C-Compiler-Driver an, so f„llt sofort auf, daž ich versucht habe, die Optionen „hnlich zu gestalten. So soll es auch bleiben. Amen ! Bugs ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ - Scheinbar geben BCF und BCL keine Fehlercodes zurck... Nach einer erfolglosen Compilierung wird also dennoch der Linker bemht. Dieser n”rgelt dann natrlich an, er k”nne sein File nicht finden. Das wird eventuell sp„ter mal durch eine FILEEXIST()-Abfrage abgefangen werden... - Mit BC-Fortran erstellte Programme laufen nicht sauber im Konsole- Fenster von GEMINI. Vom Desktop aus ge-doppelklick-startet, machen sie keine Probleme. Benamst man sie einfach zu TOS-Programmen um, so machen sie auch im Konsole-Fenster keinen Žrger. Hieran werde ich nichts „ndern, denn es ist durch einen kleinen Patch in BCL.TTP behebbar... Einen File-Monitor (z.B.: SED von der Kleisterscheibe) nehmen und in BCL.TTP die Zeichenfolge ".prg" suchen und durch ".tos" ersetzen ! Ausklang ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Hab ich nun alles Wichtige erw„hnt ? Ich hoffe ja... Falls doch nicht, einfach mal melden bei: Ulf Bartelt Fido : 2:241/4530.2 Earn/Bitnet: stub @ dcztu1 Internet : stub @ ibm.rz.tu-clausthal.de
Back to Fortran