Porting Sun Studio Compatível FORTRAN 77 para GCC: especificador de formato em leitura, formato
Pergunta
Eu tenho alguns fortran 77 antigos, estou tentando portar para o GCC no Windows.
Estou usando o gfortran 4.4.
A declaração usa Read (Foo, '(f)', err = bar) Baz e GCC estão reclamando de F. Pelo que eu vi, parece f precisa de um tamanho associado a ele. Existem também declarações de formato que usam um construto semelhante.
Qual é a maneira correta de portar isso? Parece que o uso de compiladores F de Studio Alons on Sun apenas se encaixa no tamanho adequado. Mas Gfortran reclama de não ser uma largura não negativa ou positiva.
Alguma idéia de como portar isso?
Solução
Esta é uma leitura formatada. Deve ser lido (foo, '(fn.m)', err = bar) baz, n e m números específicos, onde n é a largura do campo nos caracteres e m é o número de dígitos após o ponto decimal. Na entrada, M não importa se os dados têm um ponto decimal, porque o ponto decimal substituirá a especificação do formato. Se você não tiver certeza de que os dados de entrada sempre se encaixam nessa especificação estrita, provavelmente é melhor alternar para entrada sem formato: leia (foo, *, err = bar) baz. Isso também é chamado de E/S direcionada à lista. Isso é muito flexível e adivinhando, provavelmente corresponde melhor ao que a extensão "F" estava fazendo. (Livre de formato / direcionado à lista é diferente de não formatado, que é para arquivos binários sem qualquer conversão dos bits.)