24小时热门版块排行榜    

查看: 673  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

guojunhang

金虫 (正式写手)


[交流] 问一个关于函数调用的小问题

请教个问题,看看我这个函数,fortran77写的:
      FUNCTION HEAVI(PRIS)
           REAL*8 PRIS   
      IF(PRIS.GT.0.0) THEN
         HEAVI=1.0
       ENDIF
       RETURN
C
         IF(PRIS.LT.0.0) THEN
          HEAVI=0.0
        ENDIF
       RETURN
         END

调用的时候出现下列情况:
HEAVI(-3)=1.00000000000000,   
HEAVI(-3.0D0)=0.000000000000000E+000,
     HEAVI(-3.0)=1.00000000000000
HEAVI(3)=1.00000000000000,     
HEAVI(3.0D0)=1.000000000000000E+000,   
HEAVI(3.0)=1.00000000000000
不知道什么原因?

改成这样怎么就好了呢?

      Program ex005
      real HEAVI
      write(*,*) HEAVI(3.0d0)
      end

      FUNCTION HEAVI(PRIS)
       REAL PRIS
       Real HEAVI   
       IF(PRIS.GT.0.0) THEN
         HEAVI=1.0
       else
         HEAVI=0.0
       ENDIF
       RETURN
      END  
语言Fortran77,gfortran环境。
求解释。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1303haojian

新虫 (初入文坛)


★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
jjdg(金币+1): 感谢参与 2011-12-12 22:29:29
jjdg(金币+1): 感谢应助 2011-12-13 00:49:52
把第一个if块中的return去掉
4楼2011-12-12 14:57:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 guojunhang 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见