爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3810|回复: 9

[求助] 读数出错

[复制链接]

新浪微博达人勋

发表于 2013-10-16 18:41:15 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 胖胖 于 2013-10-16 18:43 编辑

下载了欧洲中心的四维格点相对湿度数据,x,y,z,t分别为95,55,37,365。将nc转为GrADS能读的dat,用fortran将dat写为txt,结果在检验数据的时候(输出该txt各个点的值),fortran提示forrtl:severe(24):end-of-file during read,在GrADS中打开该dat时,分明有值。实在找不到哪里出错,各位帮忙看看。下面是dat转txt的程序,运行没出错。为什么读txt会出错?
program main
implicit none
!---------------------------------------------------
integer,parameter ::mx=95,my=55,mz=37,mt=365
integer                ::i,j,k,l,nt,m
real                     ::r(mx,my,mz,mt)
!--------------------------------------------------------------------
open(11,file='j:\shuju\r\2001.dat',access='direct',form='binary',recl=mx*my*mz*mt*4)
read(11,rec=1) ((((r(m,j,k,l),m=1,mx),j=1,my),k=1,mz),l=1,mt)
close(11)
  
!--------------------------------------------------------------------
open(12,file='j:\shuju\r\2001.txt')
do l=1,mt
    do k=1,mz
          do j=1,my
          write(12,'(95f15.7)')(r(m,j,k,l),m=1,mx)
          enddo
    enddo
enddo
close(12)
end program


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

新浪微博达人勋

发表于 2013-10-16 20:23:57 | 显示全部楼层
首先说nc是grads可以直接读取画图的,不需要其他的处理。第二,那就不存在楼主后面说的问题了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-16 20:26:38 | 显示全部楼层

我不要图,想要里面的数据拟合廓线。所以只能转数据
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-16 20:35:05 | 显示全部楼层
胖胖 发表于 2013-10-16 20:26
我不要图,想要里面的数据拟合廓线。所以只能转数据

没明白你的意思,这个程序里没有读txt文件的语句
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-16 20:51:09 | 显示全部楼层
river 发表于 2013-10-16 20:35
没明白你的意思,这个程序里没有读txt文件的语句

这是dat转txt 的程序,运行没有出错,生成的txt很大,1G多,打不开。想看看里面的数据,就写了另一个读这个txt的程序,结果显示上面的错误。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2013-10-16 23:05:11 | 显示全部楼层
二进制就是为了压缩数据,加速存取的,做计算干嘛要用txt?
你自己算算就知道为什么输出来会这么大了,你的输出过程没什么问题,但是不一定是你期望的,因为你可能对输入输出还不太理解,按照你的输入输出方法计算:
总共至少有:55*37*365=742775行,
每行95个小块,每个小块是15个字符,也就是95*15=1425列,加上最后的换行(假设为2个字节),那就是1427个字节的大小,再乘上行数,也就是1059939925字节,转换一下,也就是1010.8mb,也就是你的txt至少有1个多G,何必呢,二进制存储的话,只需要270mb左右。
所以,数据不一定要肉眼能看到是多少,你知道里面的结构能用来计算就行了,就算你看到数据是多少,你也不能凭肉眼算出结果来~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-10-17 08:57:12 | 显示全部楼层
错误的意思是没有那么长的数据,你检查一下看看吧,应该是数据量不足所致
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-17 12:18:55 | 显示全部楼层
mofangbao 发表于 2013-10-16 23:05
二进制就是为了压缩数据,加速存取的,做计算干嘛要用txt?
你自己算算就知道为什么输出来会这么大了,你的 ...

我需要各点每天的37层数据去拟合廓线(三次方函数),得到它的各项系数,再接着做下面的工作。现在只知道使用fortran拟合,自己也不知道其他方法。确实很苦恼!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-17 12:20:09 | 显示全部楼层
言深深 发表于 2013-10-17 08:57
错误的意思是没有那么长的数据,你检查一下看看吧,应该是数据量不足所致

就觉得理论上,不该出错的。我再看看,哪里不对。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-17 14:14:32 | 显示全部楼层
mofangbao 发表于 2013-10-16 23:05
二进制就是为了压缩数据,加速存取的,做计算干嘛要用txt?
你自己算算就知道为什么输出来会这么大了,你的 ...

谢谢清风,换了个方法做。原来老想着拟合的时候看不到数据做不了,是自己想错咯。
PS:灰色的界面,心情很沉痛。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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