爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9613|回复: 17

[经验总结] 针对 Fortran中binary与unformatted的小测试

[复制链接]

新浪微博达人勋

发表于 2014-8-1 12:33:05 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 freekiller 于 2014-8-1 12:34 编辑

程序很简单,读取一个数然用成binary和unformatted写出, 最后读取屏幕显示

program   testbinandunformatted
    implicit none

    real(kind=8)               :: a(100)
    integer                       :: i, j, rl, rc
    real(kind=8)               :: f1(100),f2(100),f3(100),f4(100)
  
   a= 10.000
! open file and write
   open(12,file="a.bin",form="binary",access='direct',recl=8)
   open(13,file="b.bin",form="unformatted",access='direct',recl=8)
    rl = 0
    do i = 1, 100
    rl = rl + 1
       write(12,rec=rl)  a(i)
    write(13,rec=rl)  a(i)
    end do
   
    close (12)
close (13)
! open the exist file and read

   open(14,file="a.bin",form="binary",     access='direct',recl=8)
   open(15,file="b.bin",form="unformatted",access='direct',recl=8)
   
    rc = 0
    do j = 1, 100
    rc = rc + 1
    read(14,rec=rc) f1(j)
    read(15,rec=rc) f2(j)
       write(6,*) j, f1(j), f2(j)
     end do   
stop
end

程序运行结果:

1.jpg


文件排列方式(可以用ultraedit查看)
                             binary                                                                                      
2.jpg                               unformatted      
3.jpg


文件大小

4.jpg


binary作为一种非标准的二进制格式,与unformatted的排列有着一定的区别。数据的大小、读取方式与写入数据的类型有一定的关系。这也是为什么二进制文件在不知道格式的情况下难以正确的原因。

仅供参考,欢迎拍砖。



密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-1 12:43:16 | 显示全部楼层
你是不是应该写个道歉信
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-8-1 12:45:20 | 显示全部楼层
wuyejincao 发表于 2014-8-1 12:43
你是不是应该写个道歉信

你先说                  
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-1 12:46:13 | 显示全部楼层

你发这个帖子不就是说明我对了吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-8-1 12:46:50 | 显示全部楼层
wuyejincao 发表于 2014-8-1 12:46
你发这个帖子不就是说明我对了吗

你认为哪里是4倍
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-1 12:51:05 | 显示全部楼层

1.你的软件?你的系统环境?
2.你的精度
3.如果你不明白计算机里面计算字节的方法和表示方式,我建议你学习一下基础理论。
4.你为什么不在我的帖子下面回帖,让浪费论坛的资源,你知道这论坛的钱谁出的吗?
5.从这件事上还是能看出你不适合科研。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-8-1 12:56:15 | 显示全部楼层
wuyejincao 发表于 2014-8-1 12:51
1.你的软件?你的系统环境?
2.你的精度
3.如果你不明白计算机里面计算字节的方法和表示方式,我建议你 ...

你的帖子被管理员锁了

我确实不适合, 我只是就问题说问题, 不要扯其他。你有时间可以把不同数据类型放进去试试,特别是把不同类型数据往同一个文件写。 我想我没必要和你争,你觉得这样就这样。既然是论坛交流,我只阐明我的观点。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-1 13:00:10 | 显示全部楼层
freekiller 发表于 2014-8-1 12:56
你的帖子被管理员锁了

我确实不适合, 我只是就问题说问题, 不要扯其他。你有时间可以把不同数据类型 ...

对,你可以阐明你的观点,但请不要把别人踩在脚下。类似于:“虽然我也说不清楚,但绝对不是你说的这样。”这样的话是很让人伤心的。以后审稿中你要是这么回答的话,后果也是不堪设想的。我只是再教你怎么面对科研分歧。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-8-1 13:06:15 | 显示全部楼层
wuyejincao 发表于 2014-8-1 13:00
对,你可以阐明你的观点,但请不要把别人踩在脚下。类似于:“虽然我也说不清楚,但绝对不是你说的这样。 ...

我再说一下, binary作为一种非标准型二进制格式,与编译器和系统环境有关,在不同地方结果会大相径庭。 我所以说这个问题没准,所以不好说,我之前碰到了很奇怪的问题。你有兴趣可以试试。所以我在你的帖子中回复的都是百度中讲解稍微详细的结果,完全是供你参考。是你一直认为我有意攻击你,我只是想让你注意。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-1 13:09:54 | 显示全部楼层
能不能打起来?需要裁判吗?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表