- Titel: Programmieren mit FORTRAN 77
- Organisation: UNI JENA
- Seitenzahl: 89
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 . . . . . . . . . .