Fortran: Como aloco matrizes ao ler um arquivo de tamanho desconhecido?

Meu uso típico do Fortran começa com a leitura de um arquivo de tamanho desconhecido (geralmente de 5 a 100 MB). Minha abordagem atual para alocação de matriz envolve a leitura do arquivo duas vezes. Primeiro para determinar o tamanho do problema (para alocar matrizes) e uma segunda vez para ler os dados nessas matrizes.

Existem abordagens melhores para determinação de tamanho / alocação de matriz? Acabei de ler sobre a alocação automática de matriz (exemplo abaixo) em outro post que parecia muito mais fácil.

array = [array,new_data]

Quais são todas as opções e seus prós e contras?

questionAnswers(1)

yourAnswerToTheQuestion