| Aufbereitung | * | freies Format |
| nA[w] | n mal CHARACTER der Länge w | |
| nFw.d | n mal REAL, DOUBLE PRECISION, COMPLEX | |
| nIw | n mal INTEGER mit w Stellen | |
| nX | n Leerzeichen | |
| Steuerung | ADVANCE = 'NO' | kein Zeilenvorschub |
| IOSTAT = variable | variable (INTEGER) enthält einen Wert, | |
| der Statusinformation angibt: i.a. 0 für ok | ||
| ERR = marke | verzweige im Falle eines Fehlers zur Marke "marke" | |
| Zeichenketten | H, ', " |
PROGRAM in_output
IMPLICIT NONE
REAL :: r
REAL, PARAMETER :: pi = 3.14
INTEGER :: i, ios
!-------------------------------------------------------
loop: DO
WRITE (*,'(A)',ADVANCE='NO') &
'geben Sie eine max. 3-stellige INTEGER-Zahl ein: '
READ (*,'(i3)',ERR=50,IOSTAT=ios) i
IF (ios /= 0) EXIT
r = pi*i**2.0
WRITE (*,60) i, r
60 FORMAT ('Die Flaeche eines Kreises mit Radius ',i3,' ist ',f10.2)
CYCLE
50 WRITE (*,*) 'Fehlerhafte Eingabe!'
ENDDO loop
WRITE (*,*)
STOP 'Programm wurde beendet!'
END PROGRAM in_output
Dieses Programm liefert folgende Ausgabe:
geben Sie eine max. 3-stellige INTEGER-Zahl ein: 999 Die Flaeche eines Kreises mit Radius 999 ist 3133723.25 geben Sie eine max. 3-stellige INTEGER-Zahl ein: 1000 Die Flaeche eines Kreises mit Radius 100 ist 31400.00 geben Sie eine max. 3-stellige INTEGER-Zahl ein: 34 Die Flaeche eines Kreises mit Radius 34 ist 3629.84 geben Sie eine max. 3-stellige INTEGER-Zahl ein: * Fehlerhafte Eingabe! geben Sie eine max. 3-stellige INTEGER-Zahl ein: STOP: Programm wurde beendet!und zwar aus folgendem Grund:
Das Programm ADD_2_REALS nun mit formatierter Ein- und Ausgabe:
PROGRAM ADD_2_REALS_AGAIN IMPLICIT NONE ! verhindert Tippfehler! REAL :: X, Y WRITE (*,'(A15)',ADVANCE='NO') 'Input data X:' READ (*,'(f2.2)') X ! lies zwei Positionen; falls kein Komma WRITE (*,*) "Input data X = ", X ! dabei, interpretiere die letzten beiden WRITE (*,'(A15)',ADVANCE='NO') 'Input data Y:' ! Zahlen als Nachkommastellen READ (*,'(f3.2)') Y ! lies drei Psitionen und falls kein Komma WRITE (*,*) "Input data Y = ", Y ! dabei -> 2 Nachkommastellen WRITE (*,*) 'X + Y =', X + Y END PROGRAM ADD_2_REALS_AGAINliefert zur Laufzeit: 2. Eingabe 3. Eingabe
Input data X:56.78 1.3 .56 Input data X = 0.5600000 1.0000000 0.5000000 Input data Y:4.567 456 .56 Input data Y = 4.5000000 4.5599999 0.5600000 X + Y = 5.0599999 5.5599999 1.0599999