Es gibt weder automatische noch dynamische Speicherverwaltung.
common / Name/ Variable1, Variable2, ...
Fehlerträchtig! Der Compiler erkennt unterschiedliche Datentypen
in verschiedenen Unterprogrammen nicht. Solche Fehler
führen zwangsläufig zu falschen Variableninhalten und damit zu meist nur schwer
auffindbaren Programmfehlern.
In FORTRAN gibt es keine rekursiven Funktionsaufrufe.
In FORTRAN gibt es keine zusammengesetzten Datentypen.
Datentypen: integer , real , double precision ,
complex , character , character* Länge , logical
Der Speicherbedarf der Datentypen integer , real und
double precision ist maschinenabhängig. Gewöhnlich benötigt der
real -Datentyp den vierfachen Speicherplatz des integer -Datentyps,
double precision entsprechend den achtfachen.
Man schreibt darum auch: real*4 statt real und real*8 statt
double precision .
Konstanten:
Der Datentyp complex besteht aus zwei einfach genauen
Werten. Ein doppelt genauer komplexer Datentypen ist im Standard-FORTRAN77
nicht enthalten.
Numerische Berechnungen sollten grundsätzlich in double precision
durchgeführt werden, sofern es der Speicherbedarf des Programmes zuläßt.
Der Rechenzeitbedarf ist dagegen für double precision bei modernen
Computern nicht höher als für real .
Typenumwandlung:
Werden ,,zahlenwertigen`` Datentypen integer, real, double precision ,
complex
Werte eines anderen zahlenwertigen Datentyps zugewiesen, so wird automatisch
letzterer in den Datentyp der Variablen umgewandelt (implizite Typumwandlung).
Die Umwandlung real integer wird durch einfaches
Abschneiden der Nachkommastellen realisiert.
integer i
real x
x = float(i)
Variablendeklaration:
Datentyp Variablenname
integer i,j
double precision x,y
character*128 satz
Parameter -Anweisung, weist einer Konstanten einen Namen zu.
Mit parameter deklarierte Konstanten sind ebenso wie Variablen in FORTRAN
lokal.
parameter ( Name = Wert)
Dem Namen muß zuvor ein Datentyp zugewiesen werden.
real pi
parameter (pi = 3.1415926)
Vereinbarungen für Variablennamen: Variablennamen müssen mit einem
Buchstaben beginnen und dürfen ansonsten nur Buchstaben, Zahlen und
- zumindest bei neueren Compilern - den Unterstrich ,,_`` enthalten.
Groß- und Kleinschreibung wird nicht unterschieden.
implicit-Anweisung, verknüpft einen Datentyp mit dem Anfangsbuchstaben
von Variablennamen. Muß am Anfang eines Blockes (Haupt- oder Unterprogramm)
stehen.
Die Verwendung von implicit erlaubt es, Variablen zu verwenden, ohne
sie zu Beginnn des (Unter-)Programms deklarieren zu mssen.
implicit integer (i-n), real (a-h,o-z) weist allen Variablen, die mit den Buchstaben
i, j, k, l, m oder n beginnen, den Datentyp integer zu.
Abweichungen von dieser Regel können durch explizite Typzuweisung
realisiert werden: real masse .
Ohne Angabe von implicit gilt stets die im Beispiel angegebene Grundeinstellung.
Eine Abschaltung erfolgt mittels implicit none . Nun müssen alle verwendeten
Variablen deklariert werden.
Die Verwendung von implicit sollte, wenn möglich, vermieden werden, da
es eine häufige Fehlerquelle darstellt:
implicit integer (i-n),real (a-h,o-z)
p = 0.150
m = 0.938
= p**2/(2.0*m)
Dieses Programm führt zu einer Division durch 0, da m durch
implicit
als integer deklariert ist und somit der Zahlenwert 0.938 in
0 konvertiert wird.
Felder:
Ein eindimensionales Feld mit den Indizes wird
definiert gemäß:
Datentyp Name
dimension Name(:)
oder kurz:
Datentyp Name(:)
, müssen vom Typ integer sein.
Beginnt die Numerierung der Indizes bei 1, so genügt die Definition:
Datentyp Name().
data-Anweisung, Initialisierung von Variablen und Feldern.
data Namensliste1/ Werte1, ...,
/ Namensliste/ Werte
real x,y(5),z
data y,z/ 1,2,3,4,5,0/, x/5/