- 积分
- 801
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2015-4-2
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2015-9-23 22:30:44
|
显示全部楼层
OOO{:eb502:}
program station_temperation
integer i,a,b,c,mean1,mean2,mean3,sum1,sum2,sum3
real sta(17685),yer(17685),mou(17685),day(17685),tem(17685),te(17685)
do i=1,17685
open(1,file='e:\temper\TD50353.txt')
open(11,file='e:\temper\11.txt')
read (1,*)sta(i),yer(i),mou(i),day(i),tem(i)
if (mou(i)==4) then !筛选4月
if(day(i)<11)then !上旬温度
if(tem(i)>999)then !缺省值判断
te(i)=(tem(i-1)+tem(i+1))/2
else
te(i)=tem(i)
!插值法补缺省值
endif
a=a+1 !筛选的数据数
sum1=sum1+te(i) !选后温度总和
else if(day(i)>10.and.day(i)<21)then !中旬温度
if(tem(i)>999)then
te(i)=(tem(i-1)+tem(i+1))/2
else
te(i)=tem(i)
endif
b=b+1
sum2=sum2+tem(i)
else if(day(i)>20)then !下旬温度
if(tem(i)>999)then
te(i)=(tem(i-1)+tem(i+1))/2
else
te(i)=tem(i)
endif
c=c+1
sum3=sum3+tem(i)
endif
end if
enddo
close(1)
mean1=sum1/a !上旬平均温度
mean2=sum2/b
mean3=sum3/c
write(11,*)mean1,mean2,mean3
close(11)
end
没有错误 但是运行出现
RUN TIME ERROR READ <E:\TEMPER\TD50353.TXT>
我还有些疑问
1.可以同时 声明integer a
real sta(a) 么 数组无界是不不可以
2.如果无界数组 怎么处理呢
强制把它定义成 有界但是数值是我猜的一个远大于实际项数的数 对运行程序有没有影响呢
3.tem(i)=tem(i) 这样重复赋值可以么
灰常感谢 |
|