FORTRANについての質問です。
FORTRANについての質問です。
現在、二つのファイル(a.csv,b.csv)を読んで,a.csvのファイル内の地点番号とb.csvのファイル内の地点番号が一緒なら抜き出すというプログラムを書きたいのですが、途中で抜け出せなくなってしまいました。下に使用しているファイルの中身を、ごくわずかですが載せておきます。
b.csvのほうは、年別で33個のファイルに分けられています。
----------------------a.csv------------------------------------------
30 23226 1977 大野
31 13311 1978 増毛
31 14101 1978 新篠津
31 15251 1978 芦別
31 16281 1978 真狩
31 17076 1978 興部
-----------------------------------------------------------------------
----------------------b.csv-------------------------------------------2006,1,1,11016,141.678,45.4147,3,稚内,0,33,16,-64,-51,-75,55,1,9
2006,1,1,11151,141.138,45.1767,14,沓形,1,20,1,-52,-36,-68,4,1,6
2006,1,1,11176,141.778,45.1017,12,豊富,0,9,4,-80,-51,-116,59,0,3
2006,1,1,11206,142.362,45.1117,13,浜頓別,1,12,13,-92,-47,-140,66,1,3
2006,1,1,11276,142.28,44.965,25,中頓別,0,5,11,-137,-44,-209,46,0,2
2006,1,1,11291,142.585,44.9397,7,北見枝幸,0,25,13,-70,-47,-94,70,0,6
2006,1,1,11316,142.48,44.84,14,歌登,0,2,1,-115,-49,-170,56,0,1
------------------------------------------------------------------------
implicit none
REAL :: number,code,year,name
REAL :: yea,mon,day,id,chiki,nam
INTEGER :: lon,lat,pre,wind,winddirection,temp
INTEGER :: hightemp,lowtemp,sunlight,maxrain,maxwind
open(10,file='a.csv',status='old',iostat=ie)
do iwork=1976, 2008
write(yyyy,"(i4.4)") iwork
open(50, file='b'//yyyy//'.csv', status='old', &
& iostat=io)
if (io < 0) cycle
do i = 1, 99
read(10,*) number,code,year,name
if(ie < 0) exit
do ii = 1, 30000
read(50,*) yea,mon,day,id,lon,lat,chiki,nam,pre,wind,winddirection,temp,&
& hightemp,lowtemp,sunlight,maxrain,maxwind
if(io < 0) exit
write(6,*) yea
stop
close(10)
close(50)
end
エラーメッセージがenddo文が予期されている。プログラムのファイルのendが予期されていない。とでます。enddo文を足したりしても治りませんでした。おそらくどこか書き方が違うのでしょう。どうかアドバイスください。
お礼
途中でミスをしていました。できました。ありがとうございます!
補足
open (10, file='test1.csv', status='old') の前にtest3.csvのオープン close (10) のあとにtest3.csvのクローズ をするでしょうか? 実際にやってみましたが、うまくできませんでした…