COBOL (bzw. native IO) ist da manchmal nickelig.
Von der Kodierung gehört sich:

Start ...
invalid Key ...
end-start

read ... next
at end ...
end-read

Dies führt intern ggf. zu anderen Funktionsaufrufen (warum auch immer).
Meist deutet der Compiler dies mit 10/20er-Fehlern an.

Auch verwende ich meist
Start ... Key is >= ext.....

Logisch ist das zwar identisch mit "not <" aber ggf. wird hier ein "Aufsetzen mit" erst erzwungen.