爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 11329|回复: 24

[求助] fortran读取数据问题

[复制链接]

新浪微博达人勋

发表于 2013-3-12 16:28:36 | 显示全部楼层 |阅读模式

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

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

x
4.0013250e+004  9.7566667e+000  8.6133333e+000  9.5666667e+001  1.8060000e+000  5.9473333e+001  
4.0013271e+004             NaN                  NaN                            NaN                          NaN             NaN         
4.0013292e+004  9.4533333e+000  9.1833333e+000  9.5966667e+001  9.7666667e-001  2.3786667e+002  
我用的是real变量读取数据生成一部分要用的数据文件,但其中会有像中间这样的缺省值,要怎么办?不能把缺省行直接删了,因为要有时间段的,怎么使缺省行在生成的数据文件中是空行或如上是缺省的呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-12 18:44:32 | 显示全部楼层
嗯哈,
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-12 19:06:17 | 显示全部楼层
你这个是计算得来的吗?一般是除数为0的时候才会出现NaN,这不是缺省值。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-12 19:44:50 | 显示全部楼层
你读取的时候吧数组设置成字符型的,然后读出来每一个数据后进行判断,如果是NAN就赋-999,如果不是的话就转换为real的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-3-12 20:27:28 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-3-12 20:38:05 | 显示全部楼层
本帖最后由 fengzhimu 于 2013-3-12 20:41 编辑
lqouc 发表于 2013-3-12 19:44
你读取的时候吧数组设置成字符型的,然后读出来每一个数据后进行判断,如果是NAN就赋-999,如果不是的话就转 ...


如果是要把那行变为和上行一样的数据呢?应该可以先设real再转字符型的吧,可是要怎么判断?怎么转换啊?没学过,求指点!谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-12 21:04:24 | 显示全部楼层
其实这个我不该帮你的,应该你自己来写程序,网上是很容易查到这些方法的,而且我的方法也不一定好,以后尽量自己写程序,出错了再拿出来问大家吧,想别人要程序是无法进步的。
character(len=14)::data
real,dimension(1:6,1:99999)::data1
这样你就把数据都读出来了。
判断的话,if(data.eq.'        NAN    ') then
data1(i,j)=-999
else
read(data(1:14),*)data1(i,j)
end if
这样就转换为浮点数了,然后输出。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-3-12 21:54:22 | 显示全部楼层
lqouc 发表于 2013-3-12 21:04
其实这个我不该帮你的,应该你自己来写程序,网上是很容易查到这些方法的,而且我的方法也不一定好,以后尽 ...

Thank you!虽然不是我想要的,但我还是学到一些东西了。那数据我用自己的方法改了……
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-14 21:42:46 | 显示全部楼层
lqouc 发表于 2013-3-12 19:44
你读取的时候吧数组设置成字符型的,然后读出来每一个数据后进行判断,如果是NAN就赋-999,如果不是的话就转 ...

设置成字符类型,数字部分也成了字符类型?
如果可以进行判断,比如if(a(i)==NaN)then
a(i)=-999就可以吧?
不用再赋值成字符了吧?
请指点!!!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-15 08:24:29 | 显示全部楼层
kongfeng0824 发表于 2013-3-14 21:42
设置成字符类型,数字部分也成了字符类型?
如果可以进行判断,比如if(a(i)==NaN)then
a(i)=-99 ...

确实数字会变成字符型,不过要转换回来也很简单,但是整形或者实型不能够识别NAN吧,不像是matlab比较智能?fortran里面我没那么试过。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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