Давайте проанализируем код, который вы предоставили:
perform 100-read-input-file
varying emp-rec-calls(ws-emp-total)
from 1 by ws-emp-total
until (ws-eof-flag = 'Y'
OR ws-array-counter > ws-array-max)
add emp-rec-calls(ws-emp-total) to ws-total-temp
Этот цикл не имеет никакого смысла. Вы говорите, что выполняйте этот цикл, изменяя вхождение X массива EMP-REC-CALLS от 1 до X, пока флаг, который никогда не устанавливается в цикле, не станет равным yes ИЛИ счетчик, который вы не увеличиваете, больше размера массива.
Я думаю, вы пытаетесь достичь чего-то вроде этого:
PERFORM VARYING WS-ARRAY-COUNTER
FROM 1 BY 1
UNTIL WS-ARRAY-COUNTER > WS-ARRAY-MAX
ADD EMP-REC-CALLS(WS-COUNTER) TO WS-TOTAL-TEMP
END-PERFORM
Это будет изменять счетчик WS-ARRAY-COUNTER на 1 на каждой итерации цикла (начиная с 1), пока этот счетчик не превысит установленный максимум.