24小时热门版块排行榜    

查看: 715  |  回复: 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的回帖
★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
dubo(金币+1): 欢迎讨论 2011-11-11 23:31:16
guojunhang(金币+1): 这个问题我也注意到了,所以改正后了程序流程 2011-11-13 18:27:43
你第一个程序中第一个 return 直接就结束了那个函数,后面的那个条件永远不会被执行啊……
2楼2011-11-11 22:53:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)


★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
jjdg(金币+1): 感谢参与 2011-11-12 00:41:19
余泽成: 专家考核存档 2011-11-13 21:35:24
引用回帖:
1楼: Originally posted by guojunhang at 2011-11-11 21:53:59:
请教个问题,看看我这个函数,fortran77写的:
      FUNCTION HEAVI(PRIS)
           REAL*8 PRIS   
      IF(PRIS.GT.0.0) THEN
         HEAVI=1.0
       ENDIF
       RETURN
C
         IF(PRIS. ...

貌似变量定义也有问题,第一个函数中用的是real*8,主程序给的有时候是real*8 ,有时候是real*4

[ Last edited by maomao1210 on 2011-11-11 at 23:00 ]
3楼2011-11-11 22:55:13
已阅   回复此楼   关注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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 0703化学调剂 +4 妮妮ninicgb 2026-03-15 7/350 2026-03-16 09:43 by 闲人终南山
[考研] 0703化学调剂 ,六级已过,有科研经历 +4 曦熙兮 2026-03-15 4/200 2026-03-15 18:01 by JourneyLucky
[考研] 289求调剂 +5 步川酷紫123 2026-03-11 5/250 2026-03-15 00:45 by kruisytel
[考研] 297一志愿上交085600求调剂 +5 指尖八千里 2026-03-14 5/250 2026-03-14 17:26 by a不易
[考研] 267一志愿南京工业大学0817化工求调剂 +5 SUICHILD 2026-03-12 5/250 2026-03-14 14:53 by jean5056
[考研] 330求调剂 +3 ?酱给调剂跪了 2026-03-13 3/150 2026-03-14 10:13 by JourneyLucky
[考研] 一志愿北京化工大学材料与化工296分求调剂 +16 稻妻小编 2026-03-09 18/900 2026-03-14 02:00 by JourneyLucky
[考研] 考研材料与化工,求调剂 +8 戏精丹丹丹 2026-03-09 8/400 2026-03-14 01:14 by JourneyLucky
[基金申请] 有必要更换申报口吗 20+3 fannyamoy 2026-03-11 3/150 2026-03-14 00:52 by zhanghaozhu
[考研] 271求调剂 +10 生如夏花… 2026-03-11 10/500 2026-03-14 00:35 by 卖报员小雨
[考研] 一志愿华中农业大学071010,总分三百二,求调剂 +3 困困困困坤坤 2026-03-10 3/150 2026-03-14 00:35 by JourneyLucky
[考研] 321求调剂 +3 CUcat 2026-03-10 3/150 2026-03-14 00:25 by JourneyLucky
[考研] 复试调剂 +9 Copy267 2026-03-10 9/450 2026-03-13 23:45 by userper
[考研] 304求调剂 +7 7712b 2026-03-13 7/350 2026-03-13 21:42 by peike
[考研] 工科,求调剂 +3 我887 2026-03-11 3/150 2026-03-13 21:39 by JourneyLucky
[考研] 301求调剂 +6 Liyouyumairs 2026-03-11 6/300 2026-03-13 20:11 by JourneyLucky
[考研] 304求调剂(085602一志愿985) +12 化工人999 2026-03-09 12/600 2026-03-13 12:02 by JourneyLucky
[考博] 2026年博士申请 +3 QwQwQW10 2026-03-11 3/150 2026-03-12 17:58 by gxch43
[考研] 420求调剂 +4 莫向外求11 2026-03-10 6/300 2026-03-12 14:41 by ruiyingmiao
[考研] 研究生招生 +3 徐海涛11 2026-03-10 7/350 2026-03-12 14:26 by 徐海涛11
信息提示
请填处理意见