Fortran: FORTRAN 77: Anhang
<<< zur Fortran-Startseite | |
<< FORTRAN 77 | Fortran 90/95 >> |
< Ein- und Ausgabe | Anhang > |
PAUSE
[Bearbeiten]Die PAUSE
-Anweisung unterbricht die Programmausführung. Diese Anweisung wurde mit dem Fortran 90/95-Standard aus dem Fortran-Sprachumfang verbannt. Moderne Compiler geben deshalb teilweise bei Verwendung dieser Anweisung eine Warnmeldung (obsolete o.ä.) aus. Das Verfahren zur normalen Fortsetzung des infolge PAUSE
-Anweisung angehaltenen Programmes ist compilerabhängig, z. B.:
- gfortran und g77:
go
RETURN - g95: RETURN
- Intel Fortran Compiler 9.0:
continue
RETURN
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP WRITE (*,*) 'Hallo ' PAUSE WRITE (*,*) 'Welt!' END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
Ausgabe bei Compilierung mit gfortran:
Hallo PAUSE To resume execution, type go. Other input will terminate the job.
Ausgabe bei Compilierung mit g95:
Hallo PAUSE statement executed. Hit Return to continue
Ausgabe bei Compilierung mit ifort:
Hallo FORTRAN PAUSE PAUSE prompt>
INCLUDE
[Bearbeiten]INCLUDE
ermöglicht das Einbinden einer Datei. INCLUDE
ist nicht explizit im FORTRAN 77-Standard angeführt, sondern wurde 1978 als Erweiterung des FORTRAN-Standards vom US-amerikanischen DoD im MilStd 1753 festgelegt (siehe auch Abschnitt MilStd 1753).
Beispiel:
Datei bsp.f:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP INCLUDE 'inc.f' WRITE(*,*) 'Fläche ist', 10**2*PI, 'cm2' C Ausgabe: Fläche ist 314.1593 cm2 END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
Datei inc.f:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
REAL PI PARAMETER(PI=3.141593) |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
Hollerith-Konstanten
[Bearbeiten]Eine veraltete Möglichkeit Zeichenketten anzugeben stellen die Hollerith[1]-Konstanten dar. Eine Hollerith-Konstante besteht aus
- Einer positiven Ganzzahl, welche die Zeichenkettenlänge angibt
- Dem Buchstaben H
- Der Zeichenkette
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP CHARACTER*5 C DATA C /5HUralt/ WRITE (*,*) C C Ausgabe: Uralt END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
Arithmetisches IF
[Bearbeiten]Schon in grauer Vorzeit fanden Programmierer arithmetische IF-Anweisungen sehr unterhaltsam, weil damit der Programmcode interessanter gestaltet werden konnte (Quelle: Ed Post - Real Programmers Don't Use PASCAL). Diese Aussage ist begreiflicherweise auch heute noch uneingeschränkt gültig.
IF(ausdruck) ziel1, ziel2, ziel3 |
mit
ausdruck | springe zu |
---|---|
< 0 | ziel1 |
= 0 | ziel2 |
> 0 | ziel3 |
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP INTEGER I I = -55 IF(I) 100, 200, 300 GOTO 999 100 WRITE(*,*) "Negative Zahl" C Ausgabe: Negative Zahl GOTO 999 200 WRITE(*,*) "Null" GOTO 999 300 WRITE(*,*) "Positive Zahl" 999 CONTINUE END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
ASSIGN und Assigned GOTO
[Bearbeiten]Noch wesentlich amüsanter als bei der unachtsamen Verwendung des arithmetischen IF können die Ergebnisse durch Verwendung von Assign-Anweisungen ausfallen.
ASSIGN weist eine Zielmarke einer INTEGER-Variablen zu:
ASSIGN zielmarke TO variable |
Verwendung finden kann dies neben anderem beim Assigned GOTO:
GOTO variable (liste) |
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP INTEGER VAR C ... ASSIGN 200 TO VAR C ... C ... C ... GOTO VAR (100, 200, 300) 100 WRITE(*,*) "Negative Zahl" GOTO 999 200 WRITE(*,*) "Null" C Ausgabe: Null GOTO 999 300 WRITE(*,*) "Positive Zahl" 999 CONTINUE END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
MilStd 1753, DoD Supplement To American National Standard X3.9-1978
[Bearbeiten]Nachfolgend stichwortartig die vom amerikanischen Department of Defense im Jahr 1978 ergänzend zu FORTRAN 77 geforderten Spracheigenschaften
- END DO (gelabelt, für DO-Schleifen)
- DO WHILE-Schleife
- INCLUDE
- IMPLICIT NONE
- Manipulation von Bitfeldern (IOR, IAND,ISHFT, ...)
- READ/WRITE-Verhalten nach EOF.
- ↑ Herman Hollerith (* 1860, † 1929), Erfinder des Hollerith-Lochkartenverfahrens, Herman Hollerith
<<< zur Fortran-Startseite | |
<< FORTRAN 77 | Fortran 90/95 >> |
< Ein- und Ausgabe | Anhang > |