爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4570|回复: 5

[求助] 求解,eof输出数据的问题

[复制链接]

新浪微博达人勋

发表于 2012-6-18 17:15:19 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 言深深 于 2012-6-18 17:23 编辑

程序框架是这样的:
parameter(m=2970,n=356,mnl=356,ks=-1)
character*5 sta(m),zh(m)*5,zm(m)*6
dimension uf(m,n),uer(mnl,4),uegvt(m,mnl),uecof(mnl,n)
dimension vf(m,n),ver(mnl,4),vegvt(m,mnl),vecof(mnl,n)

open(1,file="tu2.grd",form='unformatted',recl=45*33,access='direct')   
do i=1,n
   read(1,rec=(i-1)*2+1)(uf(jt,i),jt=1,1485)
   read(1,rec=(i-1)*2+2)(uf(jt,i),jt=1486,m)
enddo

call eof(m,n,mnl,uf,ks,uer,uegvt,uecof)

open(2,file='egvt.grd',form='unformatted',recl=45*33,
     +access='direct')
do i=1,mnl   
   write(2,rec=(i-1)*2+1)(uegvt(jt,i),jt=1,1485)
   write(2,rec=(i-1)*2+2)(uegvt(jt,i),jt=1486,m)
enddo

输入一个356条的grd(14M左右),只能输出4.03m
把uegvt替换为uf依然这么大,求解
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-6-18 17:27:39 | 显示全部楼层
帮你改了一下题目【求解】俩字不能说明你的问题所在,希望以后注意!

我没有明白你的意思,你是读取了tu2数据,进行了一次eof处理。
你是想通过数据量的大小来知道结果是否正确么?14M是正确的结果?这个数据时你计算出来的吗?为什么不将结果直接绘图看看是不是出错了呢?

因为存储数据量的大小往往还和数据格式、编码方式有关系。

【建议】这种情况下,最好直接对结果绘图看看结论正确性
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-6-18 17:55:18 | 显示全部楼层
不好意思,刚才着急了一些没说清楚,这么说吧
我按
do i=1,n
   read(1,rec=(i-1)*2+1)(uf(jt,i),jt=1,1485)
   read(1,rec=(i-1)*2+2)(uf(jt,i),jt=1486,m)
enddo
输入后,又按
do i=1,n   
   write(2,rec=(i-1)*2+1)(uf(jt,i),jt=1,1485)
   write(2,rec=(i-1)*2+2)(uf(jt,i),jt=1486,m)
enddo
输出了一遍,结果输入的是14M,输出的依然是4.03M
我怀疑是不是编译器出了问题,我用的Compaq Visual Fortran Version 6.6,Win7 32位旗舰
新人,还请多多关照~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-6-18 17:55:41 | 显示全部楼层

不好意思,刚才着急了一些没说清楚,这么说吧
我按
do i=1,n
   read(1,rec=(i-1)*2+1)(uf(jt,i),jt=1,1485)
   read(1,rec=(i-1)*2+2)(uf(jt,i),jt=1486,m)
enddo
输入后,又按
do i=1,n   
   write(2,rec=(i-1)*2+1)(uf(jt,i),jt=1,1485)
   write(2,rec=(i-1)*2+2)(uf(jt,i),jt=1486,m)
enddo
输出了一遍,结果输入的是14M,输出的依然是4.03M
我怀疑是不是编译器出了问题,我用的Compaq Visual Fortran Version 6.6,Win7 32位旗舰
新人,还请多多关照~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-6-18 18:04:39 | 显示全部楼层
robindct 发表于 2012-6-18 17:55
不好意思,刚才着急了一些没说清楚,这么说吧
我按
do i=1,n

有通过文件大小判断对错的,但是还没见过像你这种的,难道14M的文件出来要41M才合理吗,当然要画出图来才能判断
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-6-18 18:21:42 | 显示全部楼层
好吧,我想我大约明白你的意思啦!
我想可能是由于数据覆盖造成的,你看是不是有可能在相同的记录位置(recl)上面写了两次覆盖掉了呢?
而且你的读取方式看起来也是比较奇怪的,对此我保留疑问,你可以自己想一下。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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