爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 12492|回复: 19

[经验总结] fortran读取大小未知数据

[复制链接]

新浪微博达人勋

发表于 2013-12-18 16:17:22 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 叩容 于 2013-12-18 18:44 编辑

我是读取站点数据遇到这个问题的。
有几百个文件,每个文件因为站点数不固定(检查剔除站点的技巧,此处不涉及),导致了文件的行数不一致。
现在的问题是怎样读取不确定大小的数据呢?

(如果只有1个文件我当然可以打开看一眼有几行再设置程序。但是如果有几百个,手动操作很不现实。)
所以我在百度上搜到了这个小技巧,顺便分享给大家。

  1. Program Main
  2.         Implicit None
  3.         integer n
  4.         integer :: GetFileN
  5.         Open( 12 , File = 'a.txt' )
  6.         n = GetFileN( 12 )
  7.         Write( * , * ) '共有',n,'行!'
  8.         Close( 12 )
  9. End Program Main  

  10. Integer Function GetFileN( iFileUnit )
  11.     Implicit None
  12.     Integer , Intent( IN ) :: iFileUnit
  13.     Integer :: ioS
  14.     Character(Len=1) :: cDummy
  15.     GetFileN = 0
  16.     Rewind( iFileUnit )
  17.     Do
  18.       Read( iFileUnit , * , ioStat = ioS ) cDummy
  19.       if ( ioS /= 0 ) Exit
  20.       GetFileN = GetFileN + 1
  21.     End Do
  22.     Rewind( iFileUnit )
  23.     Return
  24. End Function GetFileN


这个Function GetFileN 即可以确定打开的这个文件有多少行,后面的按顺序读取就行了。

原网址:  fortran如何读文件最后一行数据??


==========================
更新:
topmad童鞋的方法,请点击:
http://bbs.06climate.com/forum.php?mod=viewthread&tid=976



评分

参与人数 1金钱 +10 收起 理由
lqouc + 10 多谢分享

查看全部评分

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

新浪微博达人勋

发表于 2013-12-18 17:05:22 | 显示全部楼层
open(11,
     &file="F:\work5\data
     &\rain24_110807.dat",
     &form="formatted",access="sequential")
           read(11,*)
           do while(.not.eof(11))                
           read(11,*) temp,bb,cc,dd
           nvals1=nvals1+1

         enddo
           write(*,*) nvals1
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-12-18 18:10:22 | 显示全部楼层
读取文件行数的方法好几个  论坛有一个以end=标号 为方法的判断方法  这段代码以ios为依据 也是个好方法
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-12-18 18:49:25 | 显示全部楼层
这个不错,多谢分享!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-25 15:44:16 | 显示全部楼层
错别字的编程中 do while(.not.eof(设备号))
end do
比较 好用
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-20 10:37:12 | 显示全部楼层
试用了一下可以
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-21 14:45:44 来自手机 | 显示全部楼层
又长知识了,赞
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-22 08:36:23 | 显示全部楼层
好东西,学习了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-22 08:36:35 | 显示全部楼层
好东西,学习了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-29 13:13:18 | 显示全部楼层
谢谢啊,谢谢分享
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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