- 积分
- 16779
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-9-25
- 最后登录
- 1970-1-1
|
发表于 2017-1-26 14:10:21
|
显示全部楼层
character*8::filename
integer::yr,dy,date,stat=0
real::srad,tmax,tmin,rain
do yr=1981,1999 !假设数据到99年
write(filename,'(i4,".txt")'),yr !技巧,年份变为字符串,并加上.txt,变成要输出的文件名1981.txt,......
open(yr,file=filename) !打开所有要输出的文件
end do
open(7,file=该气象数据)
read(7,*);read(7,*);read(7,*);read(7,*) !跳过前4行没用的行
do while(stat==0)
read(7,*,iostat=stat),date,srad,tmax,tmin,rain
yr=date/1000 !参照2楼,把日期中的年份提出
dy=date-yr*1000 !提取日期中的天
yr=yr+1900 !年份变成一九几几年
write(yr,'(i3,4f6.1)'),dy,srad,tmax,tmin,rain !输出到对应文件
end do
close(7)
do yr=1981,1999
close(yr) !关掉所有文件
end do
附赠一条在linux shell下只要一行就搞定的命令
sed '1,4d' 该气象数据 | awk '{yr=substr($1,1,2)+1900;$1=substr($1,3,3);print > yr".txt"}'
|
|