回 帖 发 新 帖 刷新版面

主题:[讨论]fortran 77 中if 内部例程出错,急

各位大侠,我一个F77编写的程序,运行到

      DO IJ=1,NOPTS
      IF ( CDNAME .EQ. OPTION(IJ)) GOTO( 6000, 1000, 2000, 3000,8000,
     &  4000,8500),IJ
      ENDDO

===================================================================
出现错误:
    "GDYN2S.f", Line = 50142, Column = 1: 内部: 在例程cif_message_rec的条件语句中选择  DEFAULT 条件。将无法运行到此处。[color=808000][/color]

 其中, Line = 50142是指的IF ( CDNAME .EQ. OPTION(IJ)) GOTO( 6000, 1000, 2000, 3000,8000,

====================================================================

  这到底是怎么回事,怎么修改,才能避免这样的错误。我已经对它研究了一个星期,也没有找到解决的办法,请教各位大侠,在此多谢啦。


回复列表 (共40个回复)

11 楼

2000这段代码是不是正好被包含在了一个IF...END IF 语句块或类似的语句块中?如果是这样,那肯定是有问题的了:)

12 楼


多谢cgl_lgs,我把这个子程序发给你,你帮我看看,多谢啦

13 楼

果然不出所料:)先看:
216行 IF(DIFF.LT.0.0000005.AND.DIFF2.LT.0.0000005) THEN
281行 ELSE
292行 ENDIF
而你的:
2000 CONTINUE則是267行,正好在這個IF和ELSE的中間。這對于新的FORTRAN是不被允許的(GOTO不可以GOTO到循環內或條件分支內)。你先看看原來的程序邏輯有沒有問題吧,如果沒有問題,那這一部分可能需要重新改改了:)

14 楼


多谢cgl_lgs,我已经把修改后的程序发多您邮箱,请多多指教。[em37]

15 楼

已回复,不明白再发:)

16 楼

 cgl_lgs老师,多谢您的热心帮助,我的程序已经运行无误[em2],感激感激再感激!!!

17 楼

呵呵,8客气,俺84老师,随便给个称呼就行了:)

18 楼

[quote]呵呵,8客气,俺84老师,随便给个称呼就行了:)[/quote]
好小爱新老师你好。
给几个关键词:bigc、广东、昌平

19 楼

[quote][quote]呵呵,8客气,俺84老师,随便给个称呼就行了:)[/quote]
好小爱新老师你好。
给几个关键词:bigc、广东、昌平[/quote]
董兄你人肉我?哈哈:)

20 楼

这几天听别人讲粤语听得我很迷茫……

我来回复

您尚未登录,请登录后再回复。点此登录或注册