爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: shirly

[分享资料] 【已解决】参考清风大侠的《fortran+grads站点作图详解》,生成站点映射文件(*map)时

  [复制链接]
发表于 2014-10-31 21:38:36 | 显示全部楼层
绯宜物语 发表于 2014-10-31 21:30
不是。之前写单时次的时候反了,后来改过来了。还专门注意了一下。

不好意思,刚没有理解你的意思。应该是这样lat(i-1),lon(i-1)?
密码修改失败请联系微信:mofangbao
发表于 2014-11-4 14:41:20 | 显示全部楼层
mofangbao 发表于 2014-10-31 20:51
看看是不是经纬度写反了

  program precititation
integer*4,parameter:: n=160,m=64
Character*8 stid(n)
Real lon(n),lat(n),tim
integer rain(n,m)
integer ::nlev,flag
  
open(1,file='f:\r1601.txt',status='old')
     read(1,*) ((rain(i,j),i=1,n),j=1,m)

  close(1)

open(2,file='f:\station.txt',status='old')
  do i=1,n
     read(2,*) stid(i),lon(i),lat(i)
  enddo

close(2)

open(3,file='f:\sta.grd',form='binary',status='replace')
  do j=1,m
     tim=0.0
     nlev=1
     flag=1
   do i=1,n
        write(3) stid(i),lat(i),lon(i),tim,nlev,flag,rain(i,j)
         enddo
                  nlev=0
                 flag=0
        write(3) stid(n),lat(n),lon(n),tim,nlev,flag  
  enddo

  close(3)

end
版主,我按照这样生成了grd文件,然后生成站点映射文件。
DSET   f:/sta/sta.grd
DTYPE  station  
STNMAP f:/sta/sta.map
UNDEF  -32766
TITLE  Rain Data Sample
TDEF   64 linear  00Z01jan1951 1yr
VARS 1
rain    0  99  Rain Data
ENDVARS
但是之后画图,各点的数据全是0.这是怎么回事呀?可以帮我看看嘛?
密码修改失败请联系微信:mofangbao
发表于 2014-11-13 14:07:20 | 显示全部楼层
  program precititation
integer*4,parameter:: n=160,m=64
Character*8 stid(n)
Real lon(n),lat(n),tim
integer rain(n,m)
integer ::nlev,flag
  
open(1,file='f:\r1601.txt',status='old')
     read(1,*) ((rain(i,j),i=1,n),j=1,m)

  close(1)

open(2,file='f:\station.txt',status='old')
  do i=1,n
     read(2,*) stid(i),lon(i),lat(i)
  enddo

close(2)

open(3,file='f:\sta.grd',form='binary',status='replace')
  do j=1,m
     tim=0.0
     nlev=1
     flag=1
   do i=1,n
        write(3) stid(i),lat(i),lon(i),tim,nlev,flag,rain(i,j)
         enddo
                  nlev=0
                 flag=0
        write(3) stid(n),lat(n),lon(n),tim,nlev,flag  
  enddo

  close(3)

end
楼主,我按照这样生成了grd文件,然后生成站点映射文件。
DSET   f:/sta/sta.grd
DTYPE  station  
STNMAP f:/sta/sta.map
UNDEF  -32766
TITLE  Rain Data Sample
TDEF   64 linear  00Z01jan1951 1yr
VARS 1
rain    0  99  Rain Data
ENDVARS
但是之后画图,各点的数据全是0.这是怎么回事呀?可以帮我看看嘛?
密码修改失败请联系微信:mofangbao
发表于 2014-12-25 18:05:36 | 显示全部楼层
这句 read(2,*) stid(i),lon(i),lat(i),没改,lon(i)和lat(i)互换一下就行了
密码修改失败请联系微信:mofangbao
发表于 2015-5-10 20:19:24 | 显示全部楼层
这个问题里面单看别人程序里改了哪一句话没什么用,感觉大家(包括我自己)需要改的那句话各不相同,还是要具体分析。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-5-11 17:18:19 | 显示全部楼层
cjjj 发表于 2015-5-10 20:19
这个问题里面单看别人程序里改了哪一句话没什么用,感觉大家(包括我自己)需要改的那句话各不相同,还是要 ...

赞,就是这样的
密码修改失败请联系微信:mofangbao
发表于 2015-10-22 10:50:03 | 显示全部楼层
lysx 发表于 2014-7-13 20:09
fortran关于文件打开关闭中的关键字很多。我在编写程序时,即使使再简单的文件,我也严格按照书上的要求 ...

我也遇到了同样的问题,后来是在CTL文件里加上OPTIONS big_endian 才不会出现hdr的错误。也就是说如果stid 8没错,还有最后一个nlev=0没错,以及经纬度没有写反的话,还需要考虑机器的endian。希望有所帮助。
密码修改失败请联系微信:mofangbao
发表于 2015-12-14 21:39:05 | 显示全部楼层
我也遇到同样的问题,按照大家的意见作了相应修改,但还是没有解决,头都大了
密码修改失败请联系微信:mofangbao
发表于 2015-12-14 22:00:18 | 显示全部楼层
终于解决了,感谢大家的分享~
密码修改失败请联系微信:mofangbao
发表于 2015-12-14 22:02:04 | 显示全部楼层
college2999 发表于 2015-12-14 22:00
终于解决了,感谢大家的分享~

同样也是数据溢出的问题,在最后一个记录里,应该是stid(in-1).....困扰了好久
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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