R


Fortran90 Befehle


Programmieren


Basiswissen


Hier steht eine knappe Übersicht zu einigen der wichtigsten Befehle der Computer-Programmiersprache Fortran90.

Programmaufbau


program name
implicit none
{Hier kommen die Befehle}
end program name

Allgemein


! COMMENT ⭢ Anfang einer Kommentarzeile
PROGRAM NAME ⭢ Muss am Anfang eines Programmes stehen
END PROGRAM NAME ⭢ Muss am Ende des Programmes stehen
STOP ⭢ Beendet das Programm
SUBROUTINE NAME(arg1,arg2...) ⭢ Deklariert Unterprogramm
END SUBROUTINE NAME ⭢ Ende der Unterprogramm
INTEGER FUNCTION NAME (arg1...) ⭢ Deklariert Integer Unterprogramm
END FUNCTION NAME ⭢ Ende der Funktion
SAVE ⭢ Speichert Werte von Variablen zwischen Aufrufen
INTENT(IN),INTENT(OUT),INTENT(INOUT) ⭢ Optionale Variablen

Variablen


INTEGER :: NAME{=n} ⭢ Deklariert Ganzzahl {Initialisierung}
DOUBLE PRECISION :: NAME{=n_dop} ⭢ Deklariert diesen Datentyp
REAL :: NAME ⭢ Deklariert Real-Datentyp
INTEGER,PARAMETER :: NAME=n ⭢ Initialisiert read-only-Variable

Operatoren


= ⭢ Zuweisung
+ ⭢ plus
* ⭢ mal
/ ⭢ geteilt
** ⭢ hoch
== ⭢ Testet auf Gleichheit
/= ⭢ Testet auf Ungleichheit
> ⭢ größer als
< ⭢ Weniger als
<= ⭢ Weniger als oder gleich
>= ⭢ Größer oder gleich
.eq. ⭢ gleich
.lt. ⭢ weniger als
.le. ⭢ weniger oder gleich
.ne. ⭢ ungleich
.gt. ⭢ größer als
.ge. ⭢ größer oder gleich
.and. Logisches und
.not. ⭢ logisches nicht
.or. ⭢ logisches oder
.eqv. ⭢ logische Gleichwertigkeit

Programmablauf


DO VAR=START,END{,INC} ⭢ Do-Schleife mit Anfang und Endwert sowie Schrittweite. Variable muss Ganzzahl sein
END DO ⭢ Ende einer Do-Schleife
LOOP_NAME:DO i=1,10 ⭢ Schleifenname für äußere Schleifen
END DO LOOP_NAME ⭢ Ende äußerer Schleife
EXIT ⭢ Verlasse Do-Schleife
IF (BEDINGUNG) THEN ⭢ Bedingte Verzweigung
END IF ⭢ Ende der If-Anweisungen
ELSE IF (BEDINGUNG) THEN ⭢ Verschachtelte Bedingung

Eingebaute Funktionen


SIN(N) ⭢ Sinus im Bogenmaß
ASIN(N) ⭢ Arkussinus im Bogenmaß
SINH(N) ⭢ Sinus Hyperbolicus im Bogenmaß
COS(N) ⭢ Cosinus im Bogenmaß
ACOS(N) ⭢ Arkuscosinus im Bogenmaß
COSH(N) ⭢ Cosinus Hyperbolicus im Bogenmaß
TAN(N) ⭢ Tangens im Bogenmaß
ATAN(N) ⭢ Arkustangens im Bogenmaß
TANH(N) ⭢ Tangens Hyperbolicus im Bogenmaß
ATAN2(x,y) ⭢ Arkustangens im Bereich x bis y
SQRT(N) ⭢ Quadratwurzel
EXP(N) ⭢ e hoch
LOG(N) ⭢ Logarithmus zur Basis 10
SIGN(N) ⭢ Vorzeichen
DBLE(N) ⭢ Wandelt Ganzzahl in Double Precision um
INT(N) ⭢ rundet Zahl auf Ganzzahl ab
NINT(N) ⭢ rundet auf nächstliegende Ganzzahl
MOD(N,I) ⭢ Rest von N geteilt durch P

Felder (Arrays)


INTEGER,DIMENSION(10)::ARRAY ⭢ Ganzzahlfeld mit 10 Elementen
INTEGER::ARRAY(0:9) ⭢ Ganzzahlfeld mit 9 Feldern, Start bei 0
INTEGER::ARRAY2D(1:3,1:5) ⭢ Ganzzahlfeld mit festen Grenzen
ARRAY(:)=0 ⭢ Alle Elemente kriegen Wert 0
ARRAY(1:5)=5 ⭢ Weise Elementen 1 bis 5 Wert 5 zu
ARAY2d(1,:)=ARRAY(6:10) ⭢ Kopiere Elemente zwischen Feldern

Datei Ein- und Ausgabe

OPEN(UNIT=15,FILE="file.txt") ⭢ Öffnet file bei Unit 15
OPEN(15,STATUS="OLD",FILE="old.txt") ⭢ Öffnet bestehende Datei als read-only
OPEN(15,"NEW","new.txt",IOSTAT=ios) ⭢ Öffnet neue Datei mit Fehlerprüfung
READ(UNIT=15,FMT=*,IOSTAT=ios)N ⭢ Lies N von Datei mit Fehlerprüfung
PRINT *, 'Höhe ist', h ⭢ Schreibt auf Standard-Ausgabe
WRITE(UNIT=15,FMT="F12.5")N ⭢ Schreibe N in Datei als formatierten Text
CLOSE(UNIT=15) ⭢ Schließe Unit 15
IF(ios!=0)EXIT "Error in file read!" ⭢ Überprüfe auf Lesefehler in Datei


www.cmt.york.ac.uk/compmag/resources/F90Summary.pdf