Fortran Coder

查看: 23249|回复: 12
打印 上一主题 下一主题

[求助] 一个变量我初值赋0了可是输出却是1.0737E+08

[复制链接]

716

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
624 元
贡献
319 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

楼主
发表于 2014-10-9 10:33:52 | 显示全部楼层
哪个变量的值是 1.0737E+08 ?你对他赋初值的代码在什么源代码里,第几行?

CATCHMS 的值不对,应该是多少?实际是多少?

716

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
624 元
贡献
319 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2014-10-9 11:02:43 | 显示全部楼层
[Fortran] 纯文本查看 复制代码
      SUBROUTINE INTERMS (RNETMS, GIVP, MAI , FRINTLMS, CINTRLMS, 
     *   DTP, INTRMS, RINTMS, IRVPMS)
C     moss rain interception, used when NPINT > 1
C     same routine is used for snow interception, with different calling 
C        variables
      IMPLICIT NONE
C     input
        REAL   RNETMS    ! throughfall  minus  RSNO, mm/d
        REAL   GIVP      ! ground evaporation with interception, mm/d
        REAL   MAI       ! projected moss area index, m2/m2
        REAL   FRINTLMS  ! intercepted fraction of RNETMS per unit MAI
        REAL   CINTRLMS  ! maximum interception storage of rain per unit MAI, mm
        REAL   DTP       ! precipitation interval time step, d
        REAL   INTRMS    ! moss intercepted rain, mm
C     output
        REAL   RINTMS    ! moss catch rain rate, mm/d        
        REAL   IRVPMS    ! evaporation rate of  moss  intercepted rain, mm/d
C     local
        REAL   INTRMSMX  ! maximum moss storage for rain, mm
        REAL   CATCHMS   ! maximum RINTMS, mm/d
        REAL   NEWINTMS  ! first approximation to new moss storage (INTR)
C
         WRITE(*,*)"1CATCHMS=",CATCHMS !// 此时你没赋值,其值不确定,是很大的数字也很正常。
      CATCHMS = FRINTLMS* MAI* RNETMS!// 执行这一步后,其值为 0

716

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
624 元
贡献
319 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

板凳
发表于 2014-10-9 12:12:57 | 显示全部楼层
本帖最后由 楚香饭 于 2014-10-9 12:14 编辑

Serious water balance error (BALERD .GT. 0.003 mm)
Must be a programming error
intrms=  0.0000000E+00
EVAPD= -1.0737418E+08
IRVPMS= -1.0737418E+08  0.0000000E+00
1CATCHMS= -1.0737418E+08
2CATCHMS=  0.0000000E+00
4CATCHMS=  0.0000000E+00
2RINTMS=  0.0000000E+00
IRVPMS=  0.0000000E+00
请按任意键继续. . .


以上是我的执行结果。

你不是说 CATCHMS 应该是 0 么?
CATCHMS = FRINTLMS* MAI* RNETMS!// 执行这一步后,其值为 0

已经符合你的想法了,你还需要怎么解决?


716

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
624 元
贡献
319 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

地板
发表于 2014-10-9 12:48:42 | 显示全部楼层
你的代码太长,看懂并理解它需要太多的时间,且需要你专业的知识。我无法代劳。

你提到的赋值为 0 ,很大的数,我已给你做出解答。

看起来问题既不是 IRVPMS 也不是 CATCHMS ,恐怕需要你自己去寻求原因,或者向代码作者寻求帮助了。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-6-11 19:12

Powered by Tencent X3.4

© 2013-2024 Tencent

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