爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6835|回复: 5

[求助] fortran程序读取数据的问题

[复制链接]

新浪微博达人勋

发表于 2012-5-21 11:09:50 | 显示全部楼层 |阅读模式

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

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

x
我想把经过计算之后说得到的月降水(avrmo),年降水(avryr),系数(xishu),拟合nihe)写入'E:\data\sta02.txt'里面。
parameter(nm=21154,ns=752)
  character*8 stid(ns)
    real rlat(ns),rlon(ns),tim,avrmo,avryr,xishu,nihe  
        integer nlev,nflag,tianshu
        real rain(nm,ns)
        open(10,file='E:\data\1951_2008_daily_rain.dat',form='binary')
        open(11,file='E:\data\sta02.txt',form='formatted')
do im=1,nm
   tim=0.0
    if (nlev==1.and.nflag==1)then
         do is=1,ns
            read(10)stid(is),rlat(is),rlon(is),tim,nlev,nflag
                read(10)rain(im,is)
                write(11,*)stid(is),rlat(is),rlon(is),tim,nlev,nflag
         end do
        else
     read(10)stid(1),rlat(1),rlon(1),tim,nlev,nflag
         write(11,*)stid(is),rlat(is),rlon(is),tim,nlev,nflag
        end if
end do
rewind(11)
  do while(.not.eof(11))
     avrmo=0
         avryr=0
         xishu=0  
         nihe=0
         tianshu=0
  read(11,*)avrmo,avryr,xishu,nihe,tianshu
     end do
       计算部分略
end
运行的时候出了问题,        显示的错误是:run-time error F6103:READ(E:\data\sta02.txt)-invalid REAL
后来问老师,老师说
应该先将全部的open(10,file='E:\data\1951_2008_daily_rain.dat',form='binary')
中的数据读取之后再通过循环和选择结构选择站点进行处理
请问怎样能够实现把全部的open(10,file='E:\data\1951_2008_daily_rain.dat',form='binary')
中的数据读取呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-5-21 11:27:55 | 显示全部楼层
你读取的时候就有问题了  invalid real  表示非法实型  看看数据有没有问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-5-21 11:31:07 | 显示全部楼层
给楼主提供一个思路,全部讲数据定义成character型的,然后写成文本文件,看看是不是你的源文件里面有个文件头什么的,如果里面有字符型的数据,定义成real肯定是不能read的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-5-21 12:01:26 | 显示全部楼层
后来把write语句改成write(11,*)avrmo,avryr,xishu,nihe,tianshu通过了运行,
但是打开txt文件后里面全是
0.000000E+00    0.000000E+00    0.000000E+00    0.000000E+00           0
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-5-21 13:19:28 | 显示全部楼层

你是指将stid(is),rlat(is),rlon(is),tim,nlev,nflag都定义为character型么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-5-21 14:09:31 | 显示全部楼层
是的,或者直接定义一个二维数组就可以了,主要是查看一下你的数据样式,是不是都是实型的,还是有字符型的(实型的用字符型的也是可以读取的,并且写出来还可以是实型),这样将读进来的写到记事本文件里面方便查看一下数据类型
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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