Programmieren mit FORTRAN 77

  • Titel: Programmieren mit FORTRAN 77
  • Organisation: UNI JENA
  • Seitenzahl: 89

Skript herunterladen (PDF)

Inhalt

  • Programmieren mit FORTRAN
  • Copyright c Walter Alt
  • A This manuscript was prepared with L TE
  • Ein und Ausgabe mit Files Ubungsaufgaben zu Kapitel
  • Funktionen zur Textverarbeitung Literatur
  • Entwicklung von FORTRAN
  • PROGRAM Progammname Vereinbarungsteil Anweisungsteil END Unterprogramm Unterprogramm n
  • Ein FORTRANProgramm hat folgenden Aufbau
  • Einzelphasen der Programmierung
  • Ubungsaufgaben zu Kapitel
  • Der Datentyp INTEGER
  • Der Datentyp REAL
  • Der Datentyp DOUBLE PRECISION
  • Der Datentyp DOUBLE PRECISION
  • Der Datentyp COMPLE
  • Der Datentyp LOGICAL
  • INTEGER IJK REAL Y
  • Der Datentyp CHARACTER
  • INTEGER IJKL REAL YZ
  • INTEGER REAL REAL INTEGER IJ YZ KL
  • Ausdrucke und Wertzuweisungen
  • Ubungsaufgaben zu Kapitel
  • Kapitel Arithmetische Ausdr cke u
  • Aufbau arithmetischer Ausdrucke
  • ABC ABC ABC ABC AB AB
  • ist quivalent zu a
  • PROGRAM P WRITE D WRITE DD END
  • gibt folgende Werte aus
  • Tabelle Arithmetische Standardfunktionen
  • Variable arithmetischer Ausdruck
  • Eine arithmetische Wertzuweisung hat allgemein die Form
  • Ein und Ausgabe
  • Allgemeine Bemerkungen zur Ein Ausgabe
  • Das listengesteuerte Einlesen von Daten
  • erzeugt zu den Eingabedaten
  • Die formatgesteuerte Ausgabe
  • PROGRAM P INTEGER IJ REAL YZ
  • Ein und Ausgabe Beispiel Zeichenkonstante als Formatbeschreiber
  • REAL YZ WRITEF YZ
  • REAL YZ WRITE YZ FORMATF
  • Output des Programms
  • Resultate x E E
  • Dwd oder rDwd
  • ausgegebene Zeichenfolge D
  • ausgegebene Zeichenfolge ABCD ABC ABCD
  • Ein und Ausgabe Ein und Ausgabe mit Files
  • WRITE N N WRITE N N END
  • Die arithmetische IFAnweisung
  • Die Anweisung CONTINUE
  • Dann bewirkt die Anweisung
  • Die Anweisung STOP
  • PROGRAM P INTEGER NW REAL C
  • Kapitel Einfache Anweisungen
  • Die Anweisung STOP
  • Programmierung von Schleifen
  • STOP STOP Programmende
  • Programmierung von Schleifen
  • Tabellierung von sinx REAL ABS
  • IF K N STOP END
  • Die Anweisung GOTO
  • A B GOTO
  • oder auch hinter der GOTOAnweisung
  • GOTO SINY
  • Nicht erlaubt ist
  • denn das Sprungziel ist keine ausfhrbare Anweisung u
  • Ergnzungen zur Ein und Ausgabe a
  • Ergnzungen zur Ein und Ausgabe a
  • CHARACTER C C C
  • Kapitel Der Datentyp CHARACTER
  • Nach der Zuweisung
  • hat C den Wert
  • Die formatgesteuerte Ein Ausgabe
  • Die listengesteuerte Ein Ausgabe
  • Dann liefert nach der Zuweisung
  • CHARACTER T T ABC
  • PROGRAM P INTEGER NM CHARACTER UNI C
  • erzeugt die folgenden Ausgaben
  • Uni s nive Univ uth Universitaet Bayreuth
  • und gibt dann alle ASCIIZeichen aus
  • CHARACTER C C C C C
  • CHARACTER UNI UNI Universitaet Bayreuth UNI NI
  • hat die Variable UNI den Wert UNIversitaet Bayreuth
  • hat die Variable C den Wert
  • falls I falls I IF I
  • Kapitel Logische Ausdr cke und IFAnweisungen u
  • Logische Ausdrucke und IFAnweisungen
  • Beispiel Beispiele fr Vergleiche sind u
  • Die logische IFAnweisung
  • Die logische IFAnweisung
  • IF NUMW LT GOTO IF NUMW GT GOTO
  • o knnten durch die folgende Anweisung
  • IF NUMW LT OR NUMW GT GOTO
  • IF A EQ j GOTO
  • IF logischer Ausdruck THEN Anweisungsblock ENDIF
  • PROGRAM P C C C C C
  • positiven positiven negativen negativen
  • Zahlen Zahlen Zahlen Zahlen
  • ANZPOS SUMPOS ANZNEG SUMNEG
  • ANZPOS SUMPOS ANZNEG SUMNEG ANZNUL
  • IF GT THEN
  • kann durch die BlockIFAnweisung
  • Auswahl von Anweisungen
  • Auswahl von Anweisungen
  • Waehrung a Waehrung b
  • Kapitel Felder und Laufanweisungen
  • Felder und Laufanweisungen
  • Durch die Deklaration
  • PROGRAM P C C C
  • DO n v a e s Anweisungsfolge Abschlußanweisung
  • P DO K P PK CONTINUE
  • Die Anzahl der Wiederholungen ist w MA
  • Suchen von Namen INTEGER ANZNI CHARACTER SUCHNACHNVORN
  • DO ABS WRITE FF SIN CONTINUE
  • des Programms P durch die Schleife
  • DO KN AKS WRITE FF SIN CONTINUE
  • ersetzen Geschachtelte Laufanweisungen
  • Beispiel Berechnung von
  • REALWert BASS Schleifendurchlaeufe
  • I JN I JN IN JN
  • CHARACTER A B CHARACTER C D
  • Beispiele f r die Verwendung von Feldern u
  • INTEGER B DIMENSION B
  • Dann hat die Anweisung
  • dieselbe Wirkung wie die Anweisung
  • READ
  • DO I READ I CONTINUE
  • INTEGER IJ REAL U V A WRITE UVAIJJI
  • WRITE UUUUU VVVVVVV AAAA AAAA AAAA
  • DOimplizite Listen Benutzt man dagegen eine DOSchleife
  • DO I DO J READ AIJ CONTINUE
  • Ubungsaufgaben zu Kapitel Beispiel fr n u
  • Die allgemeine Form eines FORTRANProgramms
  • Die allgemeine Form eines FORTRANProgramms
  • DO IN WRITE CONTINUE END
  • SUBROUTINE BSPNM A INTEGER NM REAL N ANM
  • SUBROUTINE BSPN A INTEGER N REAL N AN
  • Felder als Parameter
  • SUBROUTINE BSP A REAL A
  • PROGRAM P REAL V M CALL BSPVM END
  • PROGRAM P REAL V M CALL BSPVM
  • A A A A A
  • Felder als Parameter
  • A A A A A A
  • SUBROUTINE GLSNA Y INTEGER N REAL ANN NYN END
  • Der korrekte Aufruf ist dann
  • Parameter vom Typ CHARACTER
  • SUBROUTINE DRUCKTE T CHARACTER TE T C WRITE TE T END
  • CHARACTER T CALL DRUCK CALL DRUCKT
  • SUBROUTINE GLSNANA Y INTEGER NAN REAL ANAN NYN END
  • Unterprogramme als Parameter
  • Unterprogramme als Parameter
  • Dgl T T
  • INTEGER LYALYLLYMLDYLDZLDTLYGLYHLWORK LYA LYL LYAN
  • DOUBLE PRECISION YN END
  • falls x sonst
  • F ELSE F ENDIF END
  • Beispiel Die folgende Funktion vom Typ LOGICAL
  • realisiert die logische Aquivalenz
  • Beispiel Die folgende Funktion
  • SKAL SKAL IYI CONTINUE END
  • I YZW AB NORMSKAL
  • Y SINKPID END REAL FUNCTION PI PI END
  • PROGRAM P C REAL C
  • gibt nach Ubersetzung mit dem WATFORCompiler die Werte
  • W AB TRAPEZFF FF
  • W AB TRAPEZFF FF SINCOS
  • Schreiben Sie ein Programm das
  • COMMONBlocke und die DATAAnweisung
  • Abbildung Speicheraufteilung zu Programm P
  • PROGRAM P END SUBROUTINE U Y
  • W ABRS TRAPEZF RS F
  • Beispiel Mit den Anweisungen
  • REAL FELD DATA FELD
  • Das BLOCK DATAUnterprogramm
  • INTEGER IJKL DATA IJKL
  • Kapitel COMMONBlcke und die DATAAnweisung o
  • Die Ein Ausgabe in FORTRAN
  • Arbeiten mit Files
  • Arbeiten mit Files
  • Kapitel Die Ein Ausgabe in FORTRAN
  • Mit den Eingabedaten
  • erzeugt das Programm folgenden Output
  • Formatierte Ein und Ausgabe
  • Formatierte Ein und Ausgabe
  • Die Eingabe von Daten des Typs DOUBLE PRECISION
  • Die Eingabe von Daten des Typs REAL
  • Die Ein Ausgabe von Daten des Typs CHARACTER
  • siehe Kapitel Die Ein Ausgabe von Leerstellen
  • Klammerung von Formaten
  • Kapitel Anhang Standardfunktionen
  • generic name INT
  • Funktionen zur Typumwandlung
  • generic name AINT ABS
  • generic name E P
  • Funktionen zur Textverarbeitung
  • generic name ICHAR CHAR

Vorschau

Walter Alt, Institut f¨r Angewandte Mathematik, u Friedrich-Schiller-Universit¨t, 07740 Jena a

Programmieren mit FORTRAN 77

Copyright c 1995, Walter Alt

u u Dieses Werk ist urheberrechtlich gesch¨tzt. Die dadurch begr¨ndeten Rechte, besonders die ¨ der Ubersetzung, des Nachdrucks, der Wiedergabe auf photomechanischem oder ¨hnlichem a Wege bleiben, auch bei Verwertung von Teilen des Werkes, dem Autor vorbehalten.

Walter Alt

A This manuscript was prepared with L TE .

Vorwort FORTRAN ist eine Programmiersprache, bei deren Entwicklung die Programmierung numerischer Verfahren im Vordergrund stand. F¨r viele Anu wendungen, beispielsweise zur numerischen L¨sung von nichtlinearen Optio mierungsaufgaben oder von Differentialgleichungen, stehen gut ausgetestete Unterprogramme in FORTRAN-Programmbibliotheken zur Verf¨gung. u Dies hat zu einer weiten Verbreitung der Sprache im Bereich der Naturund Ingenieurwissenschaften gef¨hrt. u Das vorliegende Skript entstand als Begleittext zu Programmierkursen, die ich an der Universit¨t Bayreuth f¨r Mathematik- und Physik-Studenten a u bis 1994 gehalten habe. Es enth¨lt eine Einf¨hrung in das Programmieren a u mit FORTRAN 77. Jena, Oktober 1995 Walter Alt

Vorwort zur Neuauflage In meinen Lehrb¨chern u • Nichtlineare Optimierung — Eine Einf¨hrung in Theorie, Verfahren u und Anwendungen, Vieweg Verlag, 2002, • Numerische Verfahren der nichtglatten, konvexen Optimierung, Teubner Verlag, 2004, werden auch Beispiele mit FORTRAN-Programmen benutzt. Die vorliegende, leicht uberarbeitete Version des Skripts von 1995 stelle ich meinen ¨ Lesern, die mit FORTRAN nicht vertraut sind, zur Verf¨gung, um das u Nachvollziehen der Beispiele und die L¨sung von Optimierungsaufgaben o mit der NAG-Bliothek zu erleichtern. Jena, Januar 2007 Walter Alt

i

ii

3.5

3.4.5 Ein- und Ausgabe mit Files . . . . . . . . . . . . . . ¨ Ubungsaufgaben zu Kapitel 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35 37 39 39 40 41 42 46 47 50 51 51 52 53 53 54 55 57 60 61 61 63 64 66 68 68 69 71 74 75 77 79 81 81 82 82 88 89

Inhalt

4 Einfache Anweisungen 4.1 Die arithmetische IF-Anweisung . . . 4.2 Die Anweisung CONTINUE . . . . . 4.3 Die Anweisung STOP . . . . . . . . 4.4 Programmierung von Schleifen . . . 4.5 Die Anweisung GOTO . . . . . . . . 4.6 Erg¨nzungen zur Ein- und Ausgabe a ¨ 4.7 Ubungsaufgaben zu Kapitel 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 5 5 6 8 10 11 11 12 12 13 13 13 13 14 16 17 19 21 21 25 25 27 27 28 29 30 5 Der 5.1 5.2 5.3

1 Grundlagen 1.1 Entwicklung von FORTRAN . . . 1.2 Ein Beispiel . . . . . . . . . . . . . 1.3 Die FORTRAN- eichen . . . . . . 1.4 Symbolische Namen . . . . . . . . 1.5 Programmstruktur . . . . . . . . . 1.6 Einzelphasen der Programmierung ¨ 1.7 Ubungsaufgaben zu Kapitel 1 . . .

2 Datentypen 2.1 Die FORTRAN-Datentypen . . . . . . 2.2 Der Datentyp INTEGER . . . . . . . 2.3 Der Datentyp REAL . . . . . . . . . . 2.4 Der Datentyp DOUBLE PRECISION 2.5 Der Datentyp COMPLE . . . . . . . 2.6 Der Datentyp LOGICAL . . . . . . . 2.7 Der Datentyp CHARACTER . . . . . 2.8 Variablen . . . . . . . . . . . . . . . . 2.9 Konstanten . . . . . . . . . . . . . . . 2.10 Ausdr¨cke und Wertzuweisungen . . . u ¨ 2.11 Ubungsaufgaben zu Kapitel 2 . . . . .

Datentyp CHARACTER Textvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . Ausdr¨cke und Wertzuweisungen . . . . . . . . . . . . . . . u Die Ein- und Ausgabe von Daten des Typs CHARACTER . 5.3.1 Die listengesteuerte Ein- Ausgabe . . . . . . . . . . 5.3.2 Die formatgesteuerte Ein– Ausgabe . . . . . . . . . . 5.4 Standardfunktionen . . . . . . . . . . . . . . . . . . . . . . 5.5 Substrings . . . . . . . . . . . . . . . . . . . . . . . . . . . . ¨ 5.6 Ubungsaufgaben zu Kapitel 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Arithmetische Ausdr¨ cke u 3.1 Aufbau arithmetischer Ausdr¨cke . . . . . . . . . . u 3.2 Arithmetische Standardfunktionen . . . . . . . . . 3.3 Arithmetische Wertzuweisungen . . . . . . . . . . . 3.4 Ein- und Ausgabe . . . . . . . . . . . . . . . . . . 3.4.1 Allgemeine Bemerkungen zur Ein– Ausgabe 3.4.2 Das listengesteuerte Einlesen von Daten . . 3.4.3 Die listengesteuerte Ausgabe . . . . . . . . 3.4.4 Die formatgesteuerte Ausgabe . . . . . . . . iii

6 Logische Ausdr¨ cke und IF-Anweisungen u 6.1 Vergleichsausdr¨cke . . . . . . . . . . . . u 6.2 Die logische IF-Anweisung . . . . . . . . . 6.3 Programmierung von Schleifen . . . . . . 6.4 Logische Ausdr¨cke . . . . . . . . . . . . . u 6.5 Die Block-IF-Anweisung . . . . . . . . . . 6.5.1 Die IF-ENDIF-Struktur . . . . . . 6.5.2 Die ELSE-Anweisung . . . . . . . 6.5.3 Die ELSEIF-Anweisung . . . . . . 6.5.4 Geschachtelte IF-Anweisungen . . 6.6 Auswahl von Anweisungen . . . . . . . . . 6.7 Programmierung von Schleifen . . . . . . ¨ 6.8 Ubungsaufgaben zu Kapitel 6 . . . . . . . 7 Felder und Laufanweisungen 7.1 Ein Beispiel . . . . . . . . . . . . . . . 7.2 Die Laufanweisung . . . . . . . . . . . 7.2.1 Einfache DO-Schleifen . . . . . 7.2.2 Geschachtelte Laufanweisungen 7.3 Felder . . . . . . . . . . . . . . . . . . iv . . . . . . . . . .