Como faço para lavar a saída para arquivar após cada gravação com um programa GFORTRAN FORTRAN 90?
Pergunta
Estou executando um loop em um programa Fortran 90 que gera valores numéricos para um arquivo de saída para cada iteração do loop. O problema é que a saída não é salva no arquivo, mas a cada tantas etapas. Como faço para que isso ligue cada etapa?
Código de exemplo:
open(unit=1,file='output')
do i = 1, 1000
write(1,*) i
end do
close(unit=1)
Desde já, obrigado.
Solução
A outra maneira, se o Gfortran o implementa, é chamar a sub-rotina não padrão. Nem todos os compiladores implementam isso.
Outras dicas
Você precisa tornar a saída não tufada. Tente definir o GFORTRAN_UNBUFFED_ALL Variável de ambiente para 'y', 'y' ou 1.
Quando preciso lavar, apenas fecho o arquivo e reabro. Isso é desajeitado e lento, mas não conheço uma maneira melhor no Fortran 90 que funcionará com todos os compiladores.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow