Lendo inteiro do final do arquivo com `` Formato faltante para FORMATTED data transfer done``
Estou atualizando um programa Fortran para minhas necessidades. O programa compila usandof95
egcc
versão 4.1.2 (Eu sei que é antigo, mas não consigo atualizá-lo). Eu quero ler os parâmetros de um arquivo e eu tento isso via
inquire (file="resLast", exist=resExist)
if (readStart.eq.1.and.resExist) then
open (unit=18,file='resLast', status='old', action='read')
read (18) startConf
read (18) avlength, stdlength, avenergy
read (18) i,h2(1)
read (18) i,h2(2)
read (18) i,h2(4)
read (18) i,h2(5)
read (18) i,h2(8)
read (18) i,h2(9)
read (18) i,h2(13)
read (18) i,h2(16)
read (18) i,h2(17)
read (18) i,h2(18)
read (18) i,h2(20)
read (18) i,h2(25)
read (18) i,h2(32)
close (18)
else
startConf = 0
do i=1,32
h2(i)=0
comh2(i)=0
enddo
avlength=0d0
stdlength=0d0
avenergy=0d0
endif
O arquivo de entrada parece
0
196.090732114834 38451.5752213317 53.4452884569457
1 9.188750409521163E-004
2 4.548226133920252E-004
4 8.704101492185146E-005
5 2.175445697503164E-004
8 4.992044341634028E-005
9 2.108949411194772E-005
13 4.304789035813883E-005
16 4.693072696682066E-005
17 8.976260141935199E-005
18 2.737747854553163E-005
20 5.637826689053327E-005
25 3.860405195155181E-005
32 3.193027441739105E-005
Quando tento executar isso, recebo um erro
Fortran runtime error: Missing format for FORMATTED data transfer
done
O que aponta para o primeiroread
linha. ostartConf variable, as well as
i`` é um inteiro. O restante das variáveis tem precisão dupla.
Eu usei esse método para ler dados em números inteiros anteriormente (mesmo no mesmo código) sem problema, onde está minha falha atual?