爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6491|回复: 13

[求助] 求大神帮忙看下站点数据处理的fortran程序

[复制链接]

新浪微博达人勋

发表于 2016-4-21 11:40:20 | 显示全部楼层 |阅读模式

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

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

x
想把逐日的地面数据转成grads可识别的数据文件,但运行后得到的数据不对,求大神帮帮忙。


program e3_09
implicit none
   integer,parameter:: ms=622,mt=365 !ms总站点数mt总时间
   integer:: nlev,nflag=1
   !parameter(nflag=1, nlev=nflag+ml)
   character*8 endstn,stid(ms)
   character*5 sname(ms)!长度为5的字符数组用来做文件名打开每个站点的数据
   integer istid(ms)!?
   real rstid(ms)!?
   real lat(ms),lon(ms) !纬度 经度
   real ::dtime=0.0
  !每个站有12列
  !分别是:站点号 年 月 日 平均本站气压 日最高气温 日最低气温 平均相对湿度 20-20时降水量 平均风速 日照时数
  !每个站点的平均气温(avetemp)、20-20时降水量(p20)
   integer avestdata(12)  
   real  avetemp(ms,mt),p20(ms,mt)
   integer is,it
   data endstn/'end_time'/

   open(10,file='d:\ex3\2009sta.txt',form='formatted')

   open(12,file='d:\ex3\2009daliy.dat',form='binary')
      !读取存取站点号、经度、纬度
     do is=1,622   
            read(10,*) rstid(is),lon(is),lat(is)  
                istid(is)=rstid(is)
                write(sname(is),'(i5)') istid(is)!5位站点名
                write(stid(is),'(i5)')  istid(is)!8位站点名
     enddo
         print*,'ok'
   close(10)
          !读每个站点的地面数据avestdata

          do it=1,mt
                  
         do is=1,ms
                   open(13,file='d:\ex3\2009\'//sname(is)//'.txt',form='formatted')!注意变量作为文件名的写法
           read(13,'(12i6)') avestdata  !数据存放格式
                   !读取每个站点的平均气温(avetemp)、20-20时降水量(p20)
                   if(abs(avestdata(6))<9999)then
                       avetemp(is,it)=real(avestdata(6))/10.0
                   else
                       avetemp(is,it)=-999.0
                   endif
           if(abs(avestdata(10))<9999)then
                       p20(is,it)=real(avestdata(10))/10.0
                   else
                       p20(is,it)=-999.0
                   endif
        !存数据
           nlev=1
                   write(12)stid(is),lon(is),lat(is),dtime,nflag,nlev,avetemp(is,it),p20(is,it)!站头+地面报写在12
           !print*,stid(is),lat(is),lon(is),dtime,nflag,nlev,avetemp(is,it),p20(is,it)
                   close(13)
                enddo
        nlev=0
        write(12) endstn, 0., 0., 0., 0, 0 !时尾

         enddo
   close(12)
   print*,'done'
end

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

新浪微博达人勋

 楼主| 发表于 2016-4-21 22:02:47 | 显示全部楼层
为什么没人回贴
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-21 23:58:31 | 显示全部楼层
问题都不会问,论坛入门贴你看了?你这么问导师问题不会被喷?你真要有问题需要用这种方式解决,欢迎去悬赏问答区
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-22 00:45:43 | 显示全部楼层
相信楼上的回答已经解释了为什么没有回帖,提问是有艺术的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-22 08:08:03 | 显示全部楼层
又是那隻貓 发表于 2016-4-21 23:58
问题都不会问,论坛入门贴你看了?你这么问导师问题不会被喷?你真要有问题需要用这种方式解决,欢迎去悬赏 ...

嗯,我以后会注意提问方式的。不过提问,想得到帮助或者答案,非得要悬赏?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-22 08:08:10 | 显示全部楼层
又是那隻貓 发表于 2016-4-21 23:58
问题都不会问,论坛入门贴你看了?你这么问导师问题不会被喷?你真要有问题需要用这种方式解决,欢迎去悬赏 ...

嗯,我以后会注意提问方式的。不过提问,想得到帮助或者答案,非得要悬赏?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-22 08:08:15 | 显示全部楼层
又是那隻貓 发表于 2016-4-21 23:58
问题都不会问,论坛入门贴你看了?你这么问导师问题不会被喷?你真要有问题需要用这种方式解决,欢迎去悬赏 ...

嗯,我以后会注意提问方式的。不过提问,想得到帮助或者答案,非得要悬赏?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-22 08:08:20 | 显示全部楼层
又是那隻貓 发表于 2016-4-21 23:58
问题都不会问,论坛入门贴你看了?你这么问导师问题不会被喷?你真要有问题需要用这种方式解决,欢迎去悬赏 ...

嗯,我以后会注意提问方式的。不过提问,想得到帮助或者答案,非得要悬赏?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-25 13:42:17 | 显示全部楼层
surelee 发表于 2016-4-22 08:08
嗯,我以后会注意提问方式的。不过提问,想得到帮助或者答案,非得要悬赏?

猫的意思主要是让你改进提问方式,论坛从不鼓励花钱买答案。
如果因为一些原因一定要小学辅导班式的帮助,那可能就需要悬赏了。

楼主应该已经知道如何高效提问了,那祝你在论坛能有更多的收获。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-25 21:24:28 | 显示全部楼层
我当时仅仅处理了一个数据,没这么多,你在nlev=1那加上tim=0.0 nflag=1,然后把nlev=0后面数据改为stid(is-1),lon(is-1),lat(is-1),dtime,nflag,nlev,不知道可不可以
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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