- 积分
- 1592
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2015-1-9
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
折腾了一天安装上了vs2010 和IVF2011 ,想讲一个txt文件写成grd的文件
可是调试了一晚上,一直是这个错误。。
将程序贴在这里,希望大神可以解答疑惑:
program main
implicit none
integer,parameter :: z=99
real,allocatable::dat(:,:)
integer i,j,k,mm,count,error
real tk(z) !温度(K)
real f(z) !相对湿度(%)
real p(z),u(z),v(z),det,cha
character buffer,filename(11)*18
!data p/600,575,550,525,500,475,450,425 ,400,375 ,350,325 ,300,275 ,250,225 ,200,175 ,150,125 ,100/
do i=1,z
p(i)=590-(i-1)*5
enddo
!-------------------------下面这个文件是源文件
open(13,file='d:\liuxin\tlnp\data\20140807231821.txt',status='old')
!---------------下面这个文件是要生成的目标文件
open(15,file='d:\liuxin\tlnp\data\grd\sta_LL08072.grd',status='replace',form='binary')
count=0
do while(.true.)
read(13,*,iostat=error) buffer
if ( error/=0 ) exit
count=count+1
end do
mm=count
print*,mm
allocate(dat(mm,7))
rewind(13)
do i=1,mm
read(13,*) (dat(i,j),j=1,7)
enddo
tk(1)=dat(1,3);f(1)=dat(1,5);u(1)=dat(1,6);v(z)=dat(1,7)
do k=2,z
det=100
do i=2,mm
cha=abs(p(k)-dat(i,1))
if(cha.lt.det) then
det=cha
tk(k)=dat(i,3);f(k)=dat(i,5);u(k)=dat(i,6);v(k)=dat(i,7)
endif
enddo
enddo
write(15) (tk(j),j=1,z)
write(15) (f(j),j=1,z)
write(15) (u(j),j=1,z)
write(15) (v(j),j=1,z)
deallocate(dat)
print*,(tk(j),j=1,z)
close(15)
end
然后txt文件类似这样:
587.4 4508.0 8.8 55.1 91.0 0.00 0.00
585.3 4514.0 8.9 55.6 89.0 0.00 0.00
584.7 4519.0 8.9 55.7 89.0 0.00 0.00
584.0 4525.0 8.8 55.7 89.0 0.00 0.00
583.4 4537.0 8.7 55.7 90.0 0.00 0.00
582.9 4542.0 8.6 55.6 90.0 0.00 0.00
582.3 4548.0 8.6 55.7 90.0 0.00 0.00
581.7 4559.0 8.5 55.7 90.0 0.00 0.00
580.6 4571.0 8.4 55.8 90.0 0.00 0.00
580.1 4582.0 8.3 55.7 90.0 0.00 0.00
579.6 4588.0 8.3 55.8 90.0 0.00 0.00
579.0 4599.0 8.3 55.9 90.0 1.46 -1.36
578.4 4605.0 8.3 56.0 89.0 1.46 -1.36
578.0 4611.0 8.4 56.2 89.0 1.46 -1.36
577.4 4622.0 8.4 56.3 88.0 1.46 -1.36
577.0 4628.0 8.4 56.4 87.0 1.46 -1.36
575.7 4645.0 8.4 56.6 87.0 1.46 -1.36
575.3 4651.0 8.3 56.5 87.0 1.46 -1.36
574.9 4656.0 8.3 56.6 87.0 1.46 -1.36
574.2 4668.0 8.3 56.7 87.0 1.46 -1.36
573.7 4673.0 8.3 56.8 86.0 1.46 -1.36
573.2 4685.0 8.2 56.7 86.0 -0.84 0.54
572.6 4691.0 8.2 56.8 86.0 -0.82 0.57
572.1 4696.0 8.2 56.9 85.0 -0.79 0.62
571.6 4708.0 8.2 57.0 85.0 -0.69 0.72
571.1 4713.0 8.2 57.1 84.0 -0.64 0.77
570.7 4719.0 8.2 57.2 84.0 -0.59 0.81
570.1 4730.0 8.2 57.3 84.0 -0.53 0.85
569.6 4736.0 8.2 57.3 84.0 -0.50 0.87
|
|