新旧のすべてのコンパイラーでは、複数の DO、SELECT、BEGIN、 または PROCEDURE グループを 1 つの END ステートメントで閉じる ことが許可されます。ただし、新しいコンパイラーでは I レベルのメッセージが発行されます。
しかし、複数のグループを 1 つの END ステートメントで閉じることは、 良いプログラミング習慣ではありません。 コンパイラー・オプション RULES(NOMULTICLOSE) を指定すると、コンパイラーは そのようなコードに対して E レベルのメッセージと共にフラグを立てます。 例えば、このオプションを指定した場合、コンパイラーは次のコードに対して 反応します。
a: do i = 1 to 17;
b: do j = 1 to 29;
t = x(i,j); /* transpose i and j
x(i,j) = x(j,i);
x(j,i) = t;
end b; /* end of loop */
end a;
最初のコメントが閉じられていないため、両方の DO ループが end a; で 閉じることに注意してください。