急!!!求高手指教关于删除重复数据的程序(fortran)
一个文件中有很多重复的数据,数据为相互对应的两列,我想把凡是第一列有重复数据都删除掉(不知道程序中原有数据的个数)。我编写的代码如下,programfilterimpli...
一个文件中有很多重复的数据,数据为相互对应的两列,我想把凡是第一列有重复数据都删除掉(不知道程序中原有数据的个数)。我编写的代码如下,
program filter
implicit none
integer i, j
integer :: var = 0
double precision :: a(10000000), b(10000000)
double precision :: e = 0.00001
open(100, file='bedh.out', access='sequential', status='old')
i = 1
do while (var==0)
read(100, '(e22.15, 3xe16.14)',iostat=var) a(i), b(i)
i=i+1
end do
open(200, file='2.out',position='append')
write(200,*) a(1), b(1)
do j=2, i-1
if (abs(a(j)-a(j-1)).lt.e) cycle
write(200, *) a(j), b(j)
end do
close(200)
end
但是程序运行后输出的文件有问题,就是比如我原来的第一列数据是2.000000000000000E-004,但是输出的是2.000000000000000
我想可能是read中格式的设置问题,但是我不知道怎么设置,求高人指点 展开
program filter
implicit none
integer i, j
integer :: var = 0
double precision :: a(10000000), b(10000000)
double precision :: e = 0.00001
open(100, file='bedh.out', access='sequential', status='old')
i = 1
do while (var==0)
read(100, '(e22.15, 3xe16.14)',iostat=var) a(i), b(i)
i=i+1
end do
open(200, file='2.out',position='append')
write(200,*) a(1), b(1)
do j=2, i-1
if (abs(a(j)-a(j-1)).lt.e) cycle
write(200, *) a(j), b(j)
end do
close(200)
end
但是程序运行后输出的文件有问题,就是比如我原来的第一列数据是2.000000000000000E-004,但是输出的是2.000000000000000
我想可能是read中格式的设置问题,但是我不知道怎么设置,求高人指点 展开
1个回答
今至电子科技有限公司
2024-08-23 广告
2024-08-23 广告
上海今至电子科技有限公司,是一家从事运维服务、系统集成和网络工程的专业公司。业务涵盖IT解决方案、网络工程、应用软件开发、系统集成、服务器虚拟化、桌面虚拟化、高性能运算、负载均衡、数据容灾备份、服务外包、IT运维等。我们的理念:诚信为本,服...
点击进入详情页
本回答由今至电子科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询