- 积分
- 8793
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-9-14
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我这样大概100个站点,每个站点开始的年月日不同,数据长度不同,比如有的站点是从51年开始记录,有的从60年记录。我想顺序读下去这些个文件,就编写了如下程序,程序链接时没有错误,但每次读取的时候总是显示数组溢出,可能是红色的问题。请问我的程序改怎么改?
module typedef
type rheight
integer :: station, lat,lon,height,year! 站点号,纬度,经度,高度
end type
type day
integer :: year,day
end type
end module
program main
use typedef
implicit none
integer, parameter :: fileid=9
integer, parameter :: days=16802 !选取最大文件的长度
character(len=80) :: tempstr
type(rheight) :: r(days) !原数据
type(day) :: d(days) ! 存储提取出数据
integer i,j,k,n
integer a,b,c
character stationfile(7)*9
data stationfile/'52378.txt','52495.txt','52674.txt','52679.txt','52681.txt','52787.txt','52797.txt'/
n=1
do j=1,58
open(n, file='f:\50-07/'//trim(stationfile(j))//'')
! 用循环读入每日站点数据
do i=1,days1
read(n,*) r(i)%station, r(i)%lat,r(i)%lon,r(i)%height,r(i)%
if ((r(i)%year)>1960) then
a=i-3652
d(a)%year=r(i)%year
d(a)%day=r(i)%day
end if
end do
close(n)
k=n+60
! 在文件中输出日降水量
open(k, file='f:\d'//trim(stationfile(j))//'')
do b=1,days2
write(k,"(I4,I2,I2,f8.1)") d(b)%year, d(b)%month,d(b)%day,d(b)%dr
end do
close(k)
n=n+1
end do
stop
end program
|
|