爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 15734|回复: 18

fortran生成的grd怎么都不对。

[复制链接]

新浪微博达人勋

发表于 2015-12-21 10:29:40 | 显示全部楼层 |阅读模式
1金钱
事情是这样的,我的一个求各个站点的多年平均值的程序,一共88个站,8016天,我现在要求这8016天的平均值,并且放到站点的grd里。
程序是我之前就写好了,并且运行过了,是正确的。当时站点是78个,7411天,我在更新了参数之后其他的地方没有动过手脚。结果生成的grd怎么都不能在GRADS中生成正确的.map文件。自然就不能用来画图。
找了多位同学帮我查看也没看出来有哪里不对。(也可能是我在描述时给了他们误导,以至于没有发现)
所以恳请各位知道的大神帮忙看看 我到底哪里错了。
以下是程序:
        program kongjianfenbu

        integer,parameter::m=88,nt=8016,p=6
        character(5)::sta(m)
        character(8)::stat(m)
        real lat(m),lon(m),h(m)
        integer zh(m,nt),yr(m,nt),mo(m,nt),day(m,nt)
        real pjqw(m,nt),zgqw(m,nt),zdqw(m,nt),xdsd(m,nt)
        real a45(m,nt),a68(m,nt)
        real station(m,p)
       

        !读入站点
        open(11,file='d:\study\taizhan.txt')
        do im=1,m
        read(11,*)sta(im),lon(im),lat(im),h(im)
        end do

        stat=sta

        close(11)
       


        do im=1,m
        open(11,file='d:\study\resultsta\'//sta(im)//'.txt')
        do it=1,nt
        read(11,*)zh(im,it),yr(im,it),mo(im,it),day(im,it),
     &pjqw(im,it),zgqw(im,it),zdqw(im,it),xdsd(im,it),
     &a45(im,it),a68(im,it)
        end do
        close(11)
        enddo
        !pause
        !计算年各个站点多年平均值
        do im=1,m
        do it=1,nt
        station(im,1)=station(im,1)+pjqw(im,it)/nt/10
        end do
        end do
       
        do im=1,m
        do it=1,nt
        station(im,2)=station(im,2)+zgqw(im,it)/nt/10
        end do
        end do

        do im=1,m
        do it=1,nt
        station(im,3)=station(im,3)+zdqw(im,it)/nt/10
        end do
        end do

        do im=1,m
        do it=1,nt
        station(im,4)=station(im,4)+xdsd(im,it)/nt
        end do
        end do


        do im=1,m
        do it=1,nt
        station(im,5)=station(im,5)+a45(im,it)/nt/10
        end do
        end do

        do im=1,m
        do it=1,nt
        station(im,6)=station(im,6)+a68(im,it)/nt/10
        end do
        end do
       

        tim=0.0
        nlev=1
        nflag=1

        open(2,file='d:/study/kjsj/zhanzhan.grd',form='binary')
        open(3,file='d:/study/kjsj/zhanzhan.txt')

        do im=1,m
        write(2)stat(im),lat(im),lon(im),tim,nlev,nflag,
     &(station(im,k),k=1,p)
        write(3,"(a8,11f10.4)")stat(im),lat(im),lon(im),tim,nlev,nflag,
     &(station(im,k),k=1,p)
        end do

        nlev=0
        write(2)stat(im-1),lat(im-1),lon(im-1),tim,nlev,nflag
        write(3,"(a8,5f10.4)")stat(im-1),lat(im-1),lon(im-1),tim,
     &nlev,nflag

        close(2)
        close(3)

        print*,'space ok'
        end


文件3是为了看看grd里写成啥样,所以特地生成了一个txt看看。txt内容如下
txt.png
检查了发现并没有啥不对。
grd对应写了ctl如下:
ctl.png

接下来用grads生成map文件也没报错,但是就是在画图的时候 画不出来


error.png
我检查了差值所用的底图文件和我的ctl时间是一致的,并没有看出来哪里不对。
也用别的文件测试了,并不是grads抽风突然坏掉。
还请大家帮忙看一下。我真心给跪了。

ps:画图的gs: skgs.png
底图差值的grid。ctl放在这里了 grid.png

含泪求助

最佳答案

查看完整内容

输出grd的时候经纬度反了,纬度在前面,可能是你的原始数据排列和之前不一样了吧。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-12-21 10:29:41 | 显示全部楼层
输出grd的时候经纬度反了,纬度在前面,可能是你的原始数据排列和之前不一样了吧。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2015-12-21 10:40:19 | 显示全部楼层
lqouc 发表于 2015-12-21 10:38
输出grd的时候经纬度反了,纬度在前面,可能是你的原始数据排列和之前不一样了吧。

马上去试试!我要是真的错在这里我就去自挂东南枝 先谢过
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2015-12-21 10:46:28 | 显示全部楼层
lqouc 发表于 2015-12-21 10:29
输出grd的时候经纬度反了,纬度在前面,可能是你的原始数据排列和之前不一样了吧。

的确是这个问题。。。我的天 我在改变taizhan数据的时候根本没有注意到这个问题,输出的时候只注意了内容对不对,没有注意顺序的问题。。还误导了大批帮助我的同学。
总之,多谢指点!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-12-21 10:50:46 | 显示全部楼层
我擦..... 居然......
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-12-21 11:14:06 | 显示全部楼层
你可能fortran生成是对的,但是你读取的方式不对吧
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2015-12-21 11:15:20 | 显示全部楼层
269772539 发表于 2015-12-21 11:14
你可能fortran生成是对的,但是你读取的方式不对吧

是的 我忘记了自己的台站文件里的数据是改动过的,正好把经纬度放错了位置。检查的时候只注意看了数值对不对。没有注意位置的问题
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2015-12-21 11:16:17 | 显示全部楼层
f117hqh 发表于 2015-12-21 10:50
我擦..... 居然......

怎么了?
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-12-21 11:28:06 | 显示全部楼层
我是彤-Tina 发表于 2015-12-21 10:46
的确是这个问题。。。我的天 我在改变taizhan数据的时候根本没有注意到这个问题,输出的时候只注意了内容 ...

grads要求站点格式必须是先纬度,后经度···
东南枝,东南枝,东南枝
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-12-21 11:43:41 | 显示全部楼层
我是彤-Tina 发表于 2015-12-21 10:46
的确是这个问题。。。我的天 我在改变taizhan数据的时候根本没有注意到这个问题,输出的时候只注意了内容 ...

不用客气,解决了就好
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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