Porting Sun Studio Compatível FORTRAN 77 para GCC: especificador de formato em leitura, formato

StackOverflow https://stackoverflow.com/questions/2323216

  •  22-09-2019
  •  | 
  •  

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?

Foi útil?

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.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top