vvt 发表于 2017-1-31 23:46:22

本帖最后由 vvt 于 2017-1-31 23:48 编辑

PROGRAM MAIN
USE typedef
implicit none
real::rain
type(tdd),allocatable::t(:)! 保存气温值
type(tdd):: total !日均温累加
integer i , m , dy , start , end
character(len=3) :: line
open(7,file="CN019067")
I=0
do
    READ(7,*,end=100) line
    i=i+1
end do
100 m = i - 1 !//你这个前面只多了一行
rewind(7)
allocate( t(m))
read(7,*)
write(*,*)"start:"
read(*,*) start
write(*,*)"end:"
read(*,*) end
do i=1,m
    read(7,*)dy , t(i)%tmax , t(i)%tmin , rain
    t(i)%average=(t(i)%tmax+t(i)%tmin)/2    !日均温
end do
total%average = 0
do i=start,end
    total%average=total%average+t(i)%average    !日均温累加=积温
enddo
print *, dy,total%average    !
end PROGRAM

wxy 发表于 2017-2-1 08:55:39

vvt 发表于 2017-1-31 23:46
PROGRAM MAIN
USE typedef
implicit none


谢谢,光照搬书上例子,把动态数组给忘了,还是要活学活用啊

vvt 发表于 2017-2-1 10:02:30

你欠缺一点对程序的理解。
文件的行数,必须运行的时候才能判断,然后才能知道数组的大小。
运行以后才知道大小的数组,就得用动态数组。
有两个时间很重要:编译时,和运行时。

wxy 发表于 2017-2-1 18:56:41

vvt 发表于 2017-2-1 10:02
你欠缺一点对程序的理解。
文件的行数,必须运行的时候才能判断,然后才能知道数组的大小。
运行以后才知道 ...

嗯嗯 明白了 谢谢

wxy 发表于 2017-2-2 12:17:48

vvt 发表于 2017-2-1 10:02
你欠缺一点对程序的理解。
文件的行数,必须运行的时候才能判断,然后才能知道数组的大小。
运行以后才知道 ...

我有个关于批量处理的问题发了个新帖 麻烦帮忙看一下吧:-loveliness:
页: 1 [2]
查看完整版本: 如何按行进行数据操作