|
本帖最后由 gerzer 于 2019-1-24 19:37 编辑
要用Fortran读一个二进制的dat数据,我没有写数据的源码,不知道如何写的,唯一知道的就是用MATLAB读这个数据的语句,如下:
fid = fopen('qwe.dat','r');
status = fseek(fid,0,'bof');
t = fread(fid,409,'float64');
查过MATLAB官网,float64是64位8字节的数据类型,所以用Fortran读这个二进制文件的句子我是这么写的:
real::tes
open(11,file='qwe.dat',status='old',action='read',form='unformatted',access='direct',recl=2)
read(11,rec=1)tes
我想先读第一个数看一下,发现不对,正确的话应该是26.3,读入的结果是10的-11次方量级。读了前十个数,都要么很大要么很小,量级差别太大。
http://fcode.cn/guide-4-1.html 这个网页里提到不同编译器对recl的定义不同,所以我又试了recl=8,读前十个数,依然不对。recl我从1到10试了一遍都读不对,不知道问题出在哪里……
系统xp,编译器cvf6.6.
如果一开始把变量的类型设置成real(kind=8)会不会有区别?
|
|