FORTRAN 如何把十进制文件转化为二进制文件?

来源:百度知道 编辑:UC知道 时间:2024/06/17 19:57:05
我有一个数值文件,排列是36*36,是10进制的,现在要转化为2进制的文件.我的程序如下:
parameter(NN=36,KK=36)
dimension R(NN,KK)
OPEN(1,file='D:\morlet.txt')

do I=1,NN
do J=1,KK
read(1,*)R(I,J)

enddo
enddo
close(1)

open(2,file='D:\morlet.dat',form ='binary'
&,access='direct',recl=1)
k=0
do i=1,NN
do j=1,KK
k=k+1
write(2,rec=k)R(i,j)
enddo
enddo
close(2)
STOP
END

是哪里错了?一直得不出来啊...
显示说:end of file encountered

如果是end of file encountered的错误,我猜是楼主的morlet.txt数据不够,应该有1296行数据,楼主可以检查一下是不是不够。

另外还有一个问题,楼主把数据按二进制输出时,
open(2,file='D:\morlet.dat',form ='binary'
&,access='direct',recl=1)
这里recl=1可能不行,应该是4吧,因为一个实数缺省是4字节的。

详细步骤:
1、open(1,file="1.txt")
do i=1,m
do j=1,n
read(1,*)x(i,j)
enddo
enddo
close(1)
open(2,file="1.dat",form=binary)
write(2)((x(i,j),i=1,m),j=1,n)
close(2)
这样就实现了一个从文件1.txt读取并写入1.dat的功能,。
2、转格式并不是fortran的功能
fortran主要用于计算,数据只是一个读写过程;
3、关键是转出来写成什么样的格式,哪一层循环在内部哪一层在外部,循环嵌套顺序和读取顺序一定要一致,否则读出来就乱了。