本帖最后由 wxy 于 2017-1-23 12:34 编辑
然后就是别人提供一个思路把第一列除以1000舍去小数部分剩下整数部分就是年份,这样可以判断年份 相同的年份输出到一个文件中,但是除以1000的语句和判断年份的语句怎么改也不对
[Fortran] 纯文本查看 复制代码 program ex
implicit none
integer m,i
INTEGER , allocatable :: days(:),year(:)
real , allocatable :: tMax(:) , tMin(:) , rain(:)
real :: srad
open(8,file="cn003830.wth")
!read(8,*)m !//m无法再文件中获取,需手动输入或获取文件行数减去3,得到。
open(10,file="test.wth")
open(11,file="A:\EX\test.wth")
m = 10592 !//我假设是300个
allocate(year(m),days(m),tMax(m),tMin(m),rain(m))
do i = 1,4
read(8,*)
end do !//跳过前4行
do i = 1,m
read(8,*)year(i), days(i) , srad , tMax(i) , tMin(i) , rain(i)
end do
close(8)
year(I)=days(i)/1000
WHERE (year(i)=year(i)+1)
write(10,"(i5.5,2xf5.1,2xf5.1,2xf4.1)") days(i) , tMax(i) , tMin(i) , rain(i)
ELSE WHERE
write(11,"(i5.5,2xf5.1,2xf5.1,2xf4.1)") days(i) , tMax(i) , tMin(i) , rain(i)
end where
end program ex
|