- 积分
- 1968
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-10-16
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 倔强的葱头 于 2013-4-28 14:20 编辑
有如下文件,
196101.txt,196102.txt,....196112.txt..196201.txt...196212.txt...197012.txt(每年12个文件,共10年,120个文件)
代码如下:
real dt(360,640)
character(len=20)nouse,form,name(12),outname(12)
do lm=1,12
if(lm.lt.10)then
write(form,"(i1)") lm
write(name(lm),*) "19610",trim(form),".txt"
write(outname(lm),*) "19610",trim(form),".xls"
else
write(form,"(i2)") lm
write(name(lm),*) "1961",trim(form),".txt"
write(outname(lm),*) "1961",trim(form),".xls"
endif
open(1,file=name(lm))
do i=1,6
read(1,*)nouse
enddo
do i=1,360
read(1,*)(dt(i,j),j=1,640)
enddo
close(1)
open(2,file=outname(lm))
do i=1,360
do j=1,640
if(dt(i,j).ne.-9999.0) write(2,"(3f8.1)") 72+(j-1)*0.1,18+360*0.1-i*0.1,dt(i,j)
enddo
enddo
close(2)
enddo
end
以上程序只能处理196101.txt...196112.txt 12个文件,如何能使其批量处理所有的文件,如何加一个循环。以下是失败的。。
real dt(360,640)
character(len=20)nouse,form,name(12),outname(12)
do iyear=0,100
do i=1,12
write(form,"(i1)") lm
write(name(lm),*) lm= iyear*100+i +196000,".txt"
write(outname(lm),*) lm= iyear*100+i +196000,".xls"
enddo
enddo
open(1,file=name(lm))
do i=1,6
read(1,*)nouse
enddo
do i=1,360
read(1,*)(dt(i,j),j=1,640)
enddo
close(1)
open(2,file=outname(lm))
do i=1,360
do j=1,640
if(dt(i,j).ne.-9999.0) write(2,"(3f8.1)") 72+(j-1)*0.1,18+360*0.1-i*0.1,dt(i,j)
enddo
enddo
close(2)
enddo
end
|
|