怎样输出ASCII数据文件,谢谢!
和一个软件作接口,需要ASCII文件,采用FORTRAN怎么编写文件输出格式!10.0 0.0
2500.0000000000 0.0
383.33333333333 0.0
4166.6666666667 0.0
5250.0000000000 0.0
6333.3333333333 0.0
7416.6666666667 0.0
8500.0000000000 500.0000000000
9500.0000000000 83.33333333333
10500.0000000000 166.6666666667
200.000000000000 416.6666666667
53 -250.0000000000 -500.0000000000
54 -125.0000000000 -500.0000000000
55 0.0 -500.0000000000
56125.0000000000 -500.0000000000
57250.0000000000 -500.0000000000
62875.0000000000 -500.0000000000
631000.000000000 0.0
641000.000000000 -416.6666666667
651000.000000000 -333.3333333333
Re:怎样输出ASCII数据文件,谢谢!
我查了一下,基本上数值小于1000的数,小数点后面的位数为10位,大于1000的后面为9位,如果数值为0的直接输出0.0就可以,我想这个格式还是很容易在fortran里面实现的!因为现在手头没有fortran编译器,提供一个思路参考一下!假设x,y为要输出的值,num为输出的个数
int type=0;
loopi:do i=1,num
if(x==0.and.y==0) type=0;
if(x==0.and.abs( y)<1000)type=1;
if(x==0.and.abs( y)>=1000)type=2;
if(abs( x) <1000.and.abs( y)<1000) type=3;
if(abs( x) <1000.and.abs( y)>=1000)type=4;
if(abs( x) >=1000.and.abs( y)>=1000)type=5;
...其本上把各种可能的格式总结出来,当然如果接口软件对格式要求并不是那么严格的话,也没必要这么复杂的,简单写一个就好了!
selectcase(type)
case 0:
write(filename,1)i,0.0,0.0
1 format(i2,f3.1,f3.1)
case 1:
write(filename,2)i,0.0,y
2 format(i2,f3.1,f14.10)
case 2:
write(filename,3)i,0.0,y
3 foramt(i2,f3.1,f14.9)
case 3:
write(filename,4)......
写出各种格式对应的输出!
end selectcase
enddo loopi
呵呵,这个输出应该说是很粗糙的了,希望有更好的输出办法可以探讨一下!
页:
[1]