24小时热门版块排行榜    

查看: 714  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 本人考085602 化学工程 专硕 +8 不知道叫什么! 2026-03-15 9/450 2026-03-16 07:45 by L135790
[教师之家] 焦虑 +6 水冰月月野兔 2026-03-13 8/400 2026-03-16 06:39 by lfq_198989
[考研] 材料工程专硕274一志愿211求调剂 +5 薛云鹏 2026-03-15 5/250 2026-03-15 20:38 by Logic2024
[考研] 080500,材料学硕302分求调剂学校 +4 初识可乐 2026-03-14 5/250 2026-03-14 21:08 by peike
[考研] 一志愿天津大学,英一数二305分求调剂,四六级已过 +8 小小番的茄 2026-03-09 8/400 2026-03-14 01:53 by JourneyLucky
[考研] 328,0703考生求调剂,一志愿为东北师范大学 +4 观素律 2026-03-09 5/250 2026-03-14 01:24 by JourneyLucky
[考研] 云南财经大学信息学院计算机学硕专硕学位点 +3 zjptai 2026-03-10 5/250 2026-03-14 01:23 by 飞行琦
[考研] 271求调剂 +10 生如夏花… 2026-03-11 10/500 2026-03-14 00:35 by 卖报员小雨
[考研] 26考研调剂 +3 ying123. 2026-03-10 3/150 2026-03-14 00:18 by JourneyLucky
[考研] 285 求调剂 资源与环境 一志愿北京化工大学 +3 未名考生 2026-03-10 3/150 2026-03-13 23:04 by JourneyLucky
[考研] 085600调剂 +5 漾漾123sun 2026-03-12 5/250 2026-03-13 22:06 by 星空星月
[考研] 0703化学一志愿211 总分320求调剂 +5 玛卡巴卡啊哈 2026-03-11 5/250 2026-03-13 21:40 by JourneyLucky
[考研] 281求调剂 +9 Koxui 2026-03-12 11/550 2026-03-13 20:50 by Koxui
[考研] 26调剂/材料科学与工程/总分295/求收留 +9 2026调剂侠 2026-03-12 9/450 2026-03-13 20:46 by 18595523086
[考研] 310求调剂 +3 【上上签】 2026-03-11 3/150 2026-03-13 16:16 by JourneyLucky
[考博] 2026年博士申请 +3 QwQwQW10 2026-03-11 3/150 2026-03-12 17:58 by gxch43
[考研] 341求调剂 +4 捣蛋猪猪 2026-03-11 4/200 2026-03-12 14:47 by ruiyingmiao
[基金申请] 提交后的基金本子,已让学校撤回了,可否换口子提交 +3 dut_pfx 2026-03-10 3/150 2026-03-11 08:38 by kudofaye
[考研] 279求调剂 +3 莫xiao 2026-03-10 4/200 2026-03-11 08:06 by 斩魂滴兔子!
[考研] 085602化工求调剂 +7 董boxing 2026-03-10 7/350 2026-03-10 17:07 by BruceLiu320
信息提示
请填处理意见