【问题标题】:Asterisks in Fortran: Syntax error in argument list at (1)Fortran 中的星号: (1) 处的参数列表中的语法错误
【发布时间】:2017-10-07 22:04:58
【问题描述】:

在下面的fortran77代码中,有这个子程序定义

  SUBROUTINE MSIRNS ( D , NOBST , N , X , R , RR , SURFT ,
 ,                    INOBSI , ISUR , IDELTS , IRELPS ,
 ,                    RNOBSI , RSUR , RDELTS , RRELPS ,
 ,                    OBSD , * , * )

最后两个参数,星号是什么意思?

那么我该如何调用该函数?

我尝试了所有这些变体

RES = CALL MSIRNS (D, NOBST, N, X, R, RR, SURFT, INOBSI, ISUR, IDELTS, IRELPS, RNOBSI, RSUR, RDELTS, RRELPS, OBSD, *, *)
    CALL MSIRNS (D, NOBST, N, X, R, RR, SURFT, INOBSI, ISUR, IDELTS, IRELPS, RNOBSI, RSUR, RDELTS, RRELPS, OBSD, *, *)
    RES = CALL MSIRNS (D, NOBST, N, X, R, RR, SURFT, INOBSI, ISUR, IDELTS, IRELPS, RNOBSI, RSUR, RDELTS, RRELPS, OBSD)

但总是得到

错误:(1) 处的参数列表中有语法错误

【问题讨论】:

    标签: fortran asterisk subroutine fortran77


    【解决方案1】:

    这是一个备用返回说明符:

    http://www.fortran.com/F77_std/rjcnf0001-sh-15.html#sh-15.8.3

    在调用 MSIRNS() 的代码中,您需要将星号替换为“*N”,其中 N 是备用返回行的标签。

    【讨论】:

    • 绝对是旧代码...替代返回在 Fortran 95 中被声明为“过时”,不应在新程序中使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多