Vorsicht bei der Verwendung von if's (Branching). Möglicherweise wird in
if-- else auf sehr verschiedene Bereiche im Speicher
zugegriffen, so daß ein Cache--Miss auftritt.
Branching verzögert eventuell die Programmausführung mehr als nötig.
Oft ist die Progammierung ohne if möglich:
falsch:
DO 10 i=1,l
DO 20 j=1,l
IF(j.eq.l)THEN
SUB1
ELSE
SUB2
END IF
20 CONTINUE
10 CONTINUE
richtig:
DO 10 i=1,l
DO 20 j=1,(l-1)
SUB2
20 CONTINUE
j=l
SUB1
10 CONTINUE
Bei Vektorrechnern hängt die Performance bei der Verwendung von ifs von Hersteller, Modell und Compilerversion ab. Unbedingt die Manuals konsultieren.