ループには、一般的な DO-END DO や DO WHILE、あるいは IF/GOTO 文やラベルを使用できます。ただし、ループは、入口が 1 つだけでかつ出口が 1 つだけでなければ、ベクトル化できません。ループ構造の正しい使用例と誤った使用例を次に示します。
正しい使用例:
SUBROUTINE FOO (A, B, C)
DIMENSION A(100),B(100), C(100)
INTEGER I
I = 1
DO WHILE (I .LE.100)
A(I) = B(I) * C(I)
IF (A(I) .LT.0.0) A(I) = 0.0
I = I + 1
ENDDO
RETURN
END
誤った使用例:
SUBROUTINE FOO (A, B, C)
DIMENSION A(100),B(100), C(100)
INTEGER I
I = 1
DO WHILE (I .LE.100)
A(I) = B(I) * C(I)
C The next statement allows early
C exit from the loop and prevents
C vectorization of the loop.
IF (A(I) .LT.0.0) GOTO 10
I = I + 1
ENDDO
10 CONTINUE
RETURN
END