- 积分
- 678
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-5-13
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
用fortran读取数据,一共3列,第一列日期,第二列时间(一小时一个),第三列是要用到的数据,但是数据有些是缺测的,缺测的数据没有用任何数值表示,所以如果按照read(1,*) dat(i,j),tim(i,j),ppbv(i,j) 这个顺序读的话,ppbv缺测时就直接读到下一行去了(就是下一行的dat被赋值给了上一行的ppbv),请问这个问题怎么解决呢?程序和数据的一部分如下所示:
program main
implicit none
integer m,n,i,j,t
parameter(m=1,n=1)
real dat(m,n),ppbv(m,n),ave(m),su(m)
character*8 tim(m,n)
open(1,file="f:\gjh\obs\o3.txt")
do j=1,n
do i=1,m
read(1,*) dat(i,j),tim(i,j),ppbv(i,j)
enddo
enddo
close(1)
print*,ppbv(1,1)
do i=1,m
do j=1,n
su(i)=su(i)+ppbv(i,j)
if(ppbv(i,j)/=0) then
t=t+1
endif
end do
ave(i)=su(i)/t
t=0
enddo
open(2,file="f:\gjh\ave.txt")
do i=1,m
write(2,*) dat(1,i),ave(i)
enddo
close(2)
end
数据的一部分:
090701 00:00,
090701 01:00,
090701 02:00,
090701 03:00,
090701 04:00,
090701 05:00,
090701 06:00,
090701 07:00,
090701 08:00,
090701 09:00, 73.81844
090701 10:00,
090701 11:00,
090701 12:00,
090701 13:00,
090701 14:00, 119.9938
090701 15:00, 146.0856
090701 16:00, 127.2168
090701 17:00, 131.7835
090701 18:00, 117.2331
090701 19:00, 126.4951
090701 20:00, 119.4215
090701 21:00, 77.94791
090701 22:00, 124.3685
090701 23:00, 109.4403
090702 00:00, 104.9256
090702 01:00, 100.0042
090702 02:00, 85.04134
090702 03:00, 71.45179
090702 04:00, 63.60510
090702 05:00, 23.91048
090702 06:00,
090702 07:00,
090702 08:00,
090702 09:00,
090702 10:00,
090702 11:00,
望大神指点一二。
|
|