爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2434|回复: 7

[分享资料] 程序运行错误,求指导

[复制链接]

新浪微博达人勋

发表于 2013-9-26 09:42:32 | 显示全部楼层 |阅读模式

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

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

x
用gs算出时间平均,和经度平均
'reinit'
iyear=1981
while(iyear<=2010)
'sdfopen D:\lw2011\huanliu\vwnd.'iyear'.nc'
'set gxout fwrite'
'set fwrite D:\tmax\omega\sj\v-'iyear'.grd'
'set x -90 90'
'set lon 135'
'set t 1'
'set lev 1000 100'
  'define zz=ave(vwnd,time=30jun'iyear',time=14aug'iyear')'
  'define v1=ave(zz,lon=110,lon=160)'
  'd v1'
'disable fwrite'
'close 1'
iyear=iyear+1
endwhile
'reinit'

接着用fortran求出多年的平均和距平
    parameter(nl=30,nx=144,nz=17)        real q(nx,nz,nl),a(nx,nz),q13(nx,nz),cha(nx,nz)        character*9 filename(nl)
        open(31,file='D:\tmax\omega\sj\v-2013.grd',     &form='binary')             do j=1,nz        do i=1,nx        read(31) q13(i,j)        enddo;enddo        close(31)
        open(11,file='D:\tmax\huanliu_daily\name.txt')        do i=1,nl        read(11,'(a9)')filename(i)        enddo        close(11)
        do k=1,nl        open(21,file='D:\tmax\omega\sj\v-     &'//trim(filename(k))//'.grd',form='binary')        do j=1,nz        do i=1,nx        read(21) q(i,j,k)        enddo;enddo        close(21)        enddo
        do j=1,nz        do i=1,nx        a(i,j)=0        do k=1,nl        a(i,j)=a(i,j)+q(i,j,k)        enddo        a(i,j)=a(i,j)/real(nl)        enddo;enddo              do j=1,nz        do i=1,nx                cha(i,j)=q13(i,j)-a(i,j)        enddo;enddo
        open(12,file='D:\tmax\omega\sj\vave_30.txt')        write(12,*) ((a(i,j),i=1,nx),j=1,nz)        close(12)        open(22,file='D:\tmax\omega\sj\vave_30.grd',     &form='binary')        write(22) ((a(i,j),i=1,nx),j=1,nz)        close(22)
        open(32,file='D:\tmax\omega\sj\vju_2013.txt')        write(32,*) ((cha(i,j),i=1,nx),j=1,nz)        close(32)        open(42,file='D:\tmax\omega\sj\vju_2013.grd',     &form='binary')        write(42) ((cha(i,j),i=1,nx),j=1,nz)        close(42)
        end可是程序运行出错,不知道什么原因 未命名.jpg

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

新浪微博达人勋

发表于 2013-9-26 10:01:56 | 显示全部楼层
感觉问题还是在你的gs,set x -90 90是什么意思?这个明显写错了吧。
还有你贴那一大坨fortran代码,给你你愿意看么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-26 10:34:20 | 显示全部楼层
gs文件内的错误楼上指出来了,gs文件内只生成到2010年的文件,fortran代码内要读2013的文件,读不到自然报错了。
另大篇的没排版好可阅读性差的代码读起来的确累人,
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-9-26 11:21:05 | 显示全部楼层

后面程序知道问题了,现在想解决那个gs的问题,set t 1,set lon 135,然后下面一起平均,发现随便设置经度范围,出的图是一样的,是不是不能这么两个维度一起平均
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-9-26 11:21:44 | 显示全部楼层
rocklly 发表于 2013-9-26 10:34
gs文件内的错误楼上指出来了,gs文件内只生成到2010年的文件,fortran代码内要读2013的文件,读不到自然报错 ...

这个2013我单独运行了~
后面程序知道问题了,现在想解决那个gs的问题,set t 1,set lon 135,然后下面一起平均,发现随便设置经度范围,出的图是一样的,是不是不能这么两个维度一起平均
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-26 11:33:50 | 显示全部楼层
469482462 发表于 2013-9-26 11:21
后面程序知道问题了,现在想解决那个gs的问题,set t 1,set lon 135,然后下面一起平均,发现随便设置经度 ...

显然你要分开设置,gs里面计算时间平均的时候其实只是对135E进行了平均,其他经度还是一大堆时间,两部分的维度要分开设置。个人感觉应该是这样的。
'set x 1 144'
'set lon 110 160'
'set t 1'
'set lev 1000 100'
   'define zz=ave(vwnd,time=30jun'iyear',time=14aug'iyear')'
   'set lon 135'
   'define v1=ave(zz,lon=110,lon=160)'
   'd v1'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-26 21:43:18 | 显示全部楼层
先去补习一下grads的知识吧,求平均的思路都不太对,后面的肯定不行的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-17 11:54:14 | 显示全部楼层
支持原创,谢谢啦
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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