gfortran读写无格式有记录的二进制文件示例:
写入数据的代码:
!-----'savedata.f90' program savedata implicit none integer,parameter::xn=32 !-----数组大小 integer,parameter::fileunit=8 !-----文件设备号 integer::x,irec !-----定义整型变量 !-----定义数组,保存变量 real(kind=4) :: h(xn) !-----数据 !-----数组赋值 do x=1,xn h(x) = real(x) !-----数据 enddo !-----将数据写入文件 open(fileunit,file='m.dat',status='replace',form='unformatted',access='direct',recl=4) !---在open语句中,gfortran编译real(kind=4)时,recl=4 irec = 1 do x=1,xn write(fileunit,rec=irec) h(x) irec = irec + 1 enddo close(fileunit) !-----结束 write(*,*)'irec=',irec end program savedata
!-----'readdata.f90' program readdata implicit none integer,parameter::xn=32 !-----数组大小 integer,parameter::fileunit=8 !-----文件设备号 integer::x,irec !-----定义整型变量 !-----定义数组,保存变量 real(kind=4) :: h(xn) !-----将数据写入文件 open(fileunit,file='m.dat',status='old',form='unformatted',access='direct',recl=4) !---在open语句中,gfortran编译real(kind=4)时,recl=4 irec = 0 !---数据记录号 do x=1,xn irec=irec+1 read(fileunit,rec=irec)h(x) write(*,*)'h(',x,')=',h(x) enddo close(fileunit) !-----结束 write(*,*)'irec=',irec end program readdata