爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: 水霖玲

ncl出错问题

[复制链接]
 楼主| 发表于 2014-3-28 12:04:08 | 显示全部楼层
longlivehj 发表于 2014-3-27 21:03
我下载的是ncep的vwnd.mon.mean.nc,维数和你用的应该是一致的。然后运行代码,看了一下,发现下面的问题 ...

是的,全是缺测值,那怎么解决呢
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-28 12:14:09 | 显示全部楼层
longlivehj 发表于 2014-3-27 21:03
我下载的是ncep的vwnd.mon.mean.nc,维数和你用的应该是一致的。然后运行代码,看了一下,发现下面的问题 ...

是的,全是缺测值,怎么解决呢
密码修改失败请联系微信:mofangbao
发表于 2014-3-28 12:33:33 | 显示全部楼层
水霖玲 发表于 2014-3-28 12:14
是的,全是缺测值,怎么解决呢

vf4里面没有0元素,mm里面的值不会得到更新,因为那个if块永远不执行。我不太懂你的程序的目的,只能靠你自己了解决了。如果你确定程序逻辑没有问题,可以从vf4为什么没有出现0元素开始查起。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-28 12:45:56 | 显示全部楼层
longlivehj 发表于 2014-3-28 12:33
vf4里面没有0元素,mm里面的值不会得到更新,因为那个if块永远不执行。我不太懂你的程序的目的,只能靠你 ...

我后来把vf4设定在一个区间内-0.01至0.01,可还是那个问题。我的循环语句没有问题吧
密码修改失败请联系微信:mofangbao
发表于 2014-3-28 13:31:27 | 显示全部楼层
水霖玲 发表于 2014-3-28 12:45
我后来把vf4设定在一个区间内-0.01至0.01,可还是那个问题。我的循环语句没有问题吧

vf2为0的可能性不大,要使vf4为0,只能是vf3中cos的结果为0。cos90度或-90度的值为0,就是说iy为0或72时才有可能出现vf4为0的情况。这样的话,既满足vf4为0,有要iyy满足你那些比如大于44小于56的条件是不可能的。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-28 14:27:14 | 显示全部楼层
longlivehj 发表于 2014-3-28 13:31
vf2为0的可能性不大,要使vf4为0,只能是vf3中cos的结果为0。cos90度或-90度的值为0,就是说iy为0或72时 ...

那我设定一个大点的区间可以吧
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-28 14:35:25 | 显示全部楼层
longlivehj 发表于 2014-3-28 13:31
vf2为0的可能性不大,要使vf4为0,只能是vf3中cos的结果为0。cos90度或-90度的值为0,就是说iy为0或72时 ...

修改了区间变成这样的错误   fatal:Subscript out of range, error in subscript #1
fatal:Execute: Error occurred at or near line 55 in file /home/lenovo/extent.ncl
密码修改失败请联系微信:mofangbao
发表于 2014-3-28 14:44:23 | 显示全部楼层
水霖玲 发表于 2014-3-28 14:35
修改了区间变成这样的错误   fatal:Subscript out of range, error in subscript #1
fatal:Execute: Err ...

mm=new((/360,3,3/),"float")

第二维你只给了3,应该是10吧!

我这边可以出图了。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-28 19:05:05 | 显示全部楼层
longlivehj 发表于 2014-3-28 14:44
mm=new((/360,3,3/),"float")

第二维你只给了3,应该是10吧!

纬度我改了,但我这边出不了图,还是subscript out of range的错误啊。求指导
密码修改失败请联系微信:mofangbao
发表于 2014-3-28 20:19:45 | 显示全部楼层
水霖玲 发表于 2014-3-28 19:05
纬度我改了,但我这边出不了图,还是subscript out of range的错误啊。求指导

mm=new((/360,10,3/),"float")
if (abs(vf4(itt,izz,iyy)) .le. 0.1) then
我就改了上面两句,其它都没有改。

错误发生时,ncl都会打印出错的位置!在出错行之前加入一些print语句,把出错的下标打印出来,就能发现错误原因了。

你仅告诉我下标越界了,没有其它信息,真心不知道咋帮你,o(∩∩)o...哈哈!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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