Реально ли это все сделать в автоматическом режиме.
Реально. Обычно так и делают.
1. Читаете файл построчно
READ (*, *, IOSTAT=iostatus) ...
и считаете количество успешно прочитанных строк. (iostatus = 0)
2. Как только получаете EOF (iostatus < 0), запоминаете фактическое число строк.
3. Перемещаетесь к первой записи.
4. Дальше работает Ваш код.