爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6145|回复: 11

[求助] 请问运行fortran程序时 出现math—exp:overflow error 怎么办

[复制链接]

新浪微博达人勋

发表于 2013-5-25 14:03:28 | 显示全部楼层 |阅读模式

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

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

x
程序是求各等压面上的比湿:
do it=1,nt
  do iz=1,nz
   do ij=1,ny
            do ii=1,nx
         if(temper(ii,ij,iz,it).ge.-15)then
            AA=17.2693882
                        BB=35.86
                        else if(temper(ii,ij,iz,it).le.-40)then
                        AA=21.8745584
                        BB=7.66
                        else
                        AA=21.8745584+(17.2693882-21.8745584)/(-15-(-40.))*(temper(ii,ij,iz,it)-(-40))
                        BB=7.66+(35.86-7.66)/(-15-(-40.))*(temper(ii,ij,iz,it)-(-40))
                        endif
                        EE=6.1078*exp(AA*temper(ii,ij,iz,it)-ttd(ii,ij,iz,it))/(273.16+(temper(ii,ij,iz,it)-ttd(ii,ij,iz,it))-BB)
                        q(ii,ij,iz,it)=622*EE/(p(iz)-0.378*EE)
                enddo
          enddo
        enddo
enddo

其中temper数组中数据也就-60到30之间 ,ttd数组中数据在0到30之间,P数组的数据为1000,925,850,700,500,400,300,250,200,150,100
请问要咋改啊

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

新浪微博达人勋

发表于 2013-5-25 14:18:57 | 显示全部楼层

回帖奖励 +1 金钱

提示说的比较清楚了,数学函数exp出错了,溢出错误。估计是你的数据超出了exp的定义域了。是不是没处理缺测值啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-25 14:25:40 | 显示全部楼层

应该没有缺测值  数据是老师给的,没提有缺测的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-25 14:29:22 | 显示全部楼层
心语 发表于 2013-5-25 14:25
应该没有缺测值  数据是老师给的,没提有缺测的

自己输出到屏幕上看一下,老师不可能什么都交代给你
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-5-25 14:29:58 | 显示全部楼层
建议将 EE=6.1078*exp(AA*temper(ii,ij,iz,it)-ttd(ii,ij,iz,it))/(273.16+(temper(ii,ij,iz,it)-ttd(ii,ij,iz,it))-BB)
                        q(ii,ij,iz,it)=622*EE/(p(iz)-0.378*EE)
这两个公式里面的变量都print出来看看,可能出现了异常
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-25 14:58:29 | 显示全部楼层
言深深 发表于 2013-5-25 14:29
建议将 EE=6.1078*exp(AA*temper(ii,ij,iz,it)-ttd(ii,ij,iz,it))/(273.16+(temper(ii,ij,iz,it)-ttd(ii,ij ...

其他变量没错  就是EE输出前半部分是0.0000E+00,后半部分是无穷
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-25 14:58:56 | 显示全部楼层
river 发表于 2013-5-25 14:29
自己输出到屏幕上看一下,老师不可能什么都交代给你

其他变量没错  就是EE输出前半部分是0.0000E+00,后半部分是无穷
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-25 15:18:22 | 显示全部楼层
print *,(AA*temper(ii,ij,iz,it)-ttd(ii,ij,iz,it))/(273.16+(temper(ii,ij,iz,it)-ttd(ii,ij,iz,it))-BB)的结果 标题.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-25 16:02:06 | 显示全部楼层
我懂啦  这儿少了个括号exp(AA*temper(ii,ij,iz,it)-ttd(ii,ij,iz,it))/(273.16+(temper(ii,ij,iz,it)-ttd(ii,ij,iz,it))-BB)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-25 16:31:31 | 显示全部楼层
心语 发表于 2013-5-25 16:02
我懂啦  这儿少了个括号exp((AA*temper(ii,ij,iz,it)-ttd(ii,ij,iz,it))/(273.16+(temper(ii,ij,iz,it)-tt ...

自问自答了,不错
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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