爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4570|回复: 13

[分享资料] 站点作图时候站点映射文件出现错误

[复制链接]

新浪微博达人勋

发表于 2014-3-8 01:34:34 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 3225412 于 2014-3-8 01:38 编辑

新手昨天按教程例子进行GRADS作图研究,遇到些错误,然后也跌跌碰碰完成了。今天进入实战,生成映射文件时候出现问题..自己无解了,求助各位program shizhan
          parameter(nt=30)
          integer::n,n1,n2,n3,n4
           real,allocatable::lon(:),lat(:),rd(:)    !动态数组分别用来储存站点的降水
           real:: temp(9)
          character*8,allocatable::sta(:)      !动态数组,储存站号,站号必须是8个字符,5个的话会stnmap出不出来   
        character*12 filename(nt)        !用于储存32个时次的文件名
           open(1,file='d:\surface\plot\filename.txt')
           do i=1,nt
               read(1,*) filename(i)
               print*,'Filename:',filename(i)
            enddo
            close(1)               
        open(2,file='D:\surface\plot\rain.grd',status='replace',form='binary') !储存32个时次的降水
       do k=1,nt
        open(3,file=filename(k))
        read(3,*)
        read(3,*) n1,n2,n3,n4,n    !将该时次的站点数赋值于n
        allocate(lat(n))
        allocate(lon(n))
        allocate(rd(n))
        allocate(sta(n))
        close(3)
        open(4,file=filename(k))   !获知n后,重新读取数据。
        read(4,*)
        read(4,*)
          do i=1,n        !只读降水,别的要素暂略
             read(4,*) sta(i),lon(i),lat(i),(temp(j),j=1,9),rd(i)
              tim=0.0;nlev=1;nflag=1
              write(2)  sta(i),lat(i),lon(i),tim,nlev,nflag,rd(i)  !一个时次的降水场输入完毕
           enddo
           nlev=0
            write(2) sta(n),lat(n),lon(n),tim,nlev,nflag
        !一个时次的降水场输入完毕,告诉Grads 该时次的数据结束。这是一个特殊标记。
        deallocate(lat)
        deallocate(lon)
        deallocate(rd)
        deallocate(sta)
        close(4)
        enddo
         close(2)
end

ctl:
dset d:/surface/plot/rain.grd
dtype station
stnmap d:/surface/plot/rain.map
undef   9999
title   RAINFALL ONSET DATE IN QTP
tdef 30 linear 02z07Jul2013 3hr
vars 1
r 0  99  Rainfall date
endvars


wen3.jpg
shuliang.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-8 06:17:10 | 显示全部楼层
你不是只有一个时次吗?ctl里怎么写30个呢·····  tdef 30 linear 02z07Jul2013 3hr
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-8 10:12:28 | 显示全部楼层

是30个时次吧.13070702开始,下一时次是3小时后的,一共30个呀?
然后谢谢前辈回复
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-8 11:09:26 | 显示全部楼层
3225412 发表于 2014-3-8 10:12
是30个时次吧.13070702开始,下一时次是3小时后的,一共30个呀?
然后谢谢前辈回复

从报错上看应该是Fortran输出数据有问题,grads读到第一个记录就直接跳出了,你在最后write之前print一下,查看结果是否正常。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-8 11:27:23 | 显示全部楼层
lqouc 发表于 2014-3-8 11:09
从报错上看应该是Fortran输出数据有问题,grads读到第一个记录就直接跳出了,你在最后write之前print一下 ...

嗯 好的  马上尝试  ,谢谢~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-8 13:03:55 | 显示全部楼层
lqouc 发表于 2014-3-8 11:09
从报错上看应该是Fortran输出数据有问题,grads读到第一个记录就直接跳出了,你在最后write之前print一下 ...

刚刚试了fortran,然后,好像在写入数据有点错?我研究了半天也没发现问题。呜呜呜。。
cuwu4.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-8 16:58:26 | 显示全部楼层
3225412 发表于 2014-3-8 10:12
是30个时次吧.13070702开始,下一时次是3小时后的,一共30个呀?
然后谢谢前辈回复

客气了,我的fortran学得不好,所以你这个批量读入写入的程序有地方不太理解······没办法帮你找错了。但是我感觉你写进去的只有一个时次吧,是不是需要加上一个30个时次的外循环呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-8 17:32:13 | 显示全部楼层
3225412 发表于 2014-3-8 13:03
刚刚试了fortran,然后,好像在写入数据有点错?我研究了半天也没发现问题。呜呜呜。。

这个大概是你的文件行数弄得不对,不妨在读取文件行数的时候print一下,然后pause。
这时候你去手动查看到底对不对。
话说看起来你的文件行数说明和数据是在一起的,为啥要关闭了再重新读取呢?至于你的数据看起来不是很大,动态数组也没必要了,直接设置一个你认为够用的数组就行了,程序可以简化不少的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-8 19:19:35 | 显示全部楼层
lqouc 发表于 2014-3-8 17:32
这个大概是你的文件行数弄得不对,不妨在读取文件行数的时候print一下,然后pause。
这时候你去手动查看 ...

        print*,'文件数',k
        open(11,file=filename(k))
        print*,filename(k)
        pause
        read(11,*)
        read(11,*) n,n,n,n,n
这里加了暂停,正常,按回车后回闪退,出现错误。原因和6楼一样。也就是问题在读取filename(1)时候出错了对吧?是不是因为   open(11,file=filename(k))这语句不能打开原路径下的数据文件呢?还有纰漏?
我老早就觉得这里有点问题,但是有碍于知识库有限,学虎不像虎...身边也没有人可以请教。麻烦版主,麻烦各位了!这2天了,一直对着电脑都眼花了.....
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-8 19:59:49 | 显示全部楼层
3225412 发表于 2014-3-8 19:19
print*,'文件数',k
        open(11,file=filename(k))
        print*,filename(k)

你的f文件和数据是在一个路径么?目前你用的是缺省路径啊。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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