2014-11-10 8 views
0

나는 Fortan 루틴을 만들어 내 프로그램에 날씨 파일을 읽었습니다. 이 파일은 2 개의 헤더 행을 포함하고 10 분마다 데이터 행을 포함하므로 52562 행입니다.Fortran 루틴은 행을 건너 Y지만 허용되지 않습니다.

아래 코드로 파일을 읽을 때 -loop에 i = 52548에 대한 오류 Fortran runtime error: End of file을 반환합니다.

bdst=600 
allocate(clidat(int(3.1536d7/bdst),15)) 
open(2001,file='church_10m.cli',action='read') 
read(2001,*); read(2001,*) 
do i=1,size(clidat,1) 
     read(2001,*) clidat(i,:) 
enddo 
close(2001); 

사용 된 파일은이 드롭 박스 링크()를 사용하여 찾을 수 있습니다. 나는 파일에 52562 라인이 있는지 확인했다. i = 52548에 해당하는 행이 파일의 마지막 행입니다. i=1에 해당하는 행은 파일의 세 번째 행 (0으로 시작)입니다. 그래서 나는 그 사이에 몇 줄을 건너 뛴다 고 생각한다. 이것이 일어나는 이유는 무엇입니까?

답변

0

행에 15 개의 값 (clidat 크기)이 포함되어 있지 않으면 read 문은 다음 행으로 넘어 가서 다음 값을 읽습니다. church_10m.cli 파일에 값이 충분하지 않은 두 줄이 있습니다. (예 : 라인 1957).

이것은 Excel 파일에서 txt 파일로 변환 한 결과입니다.