2

我想下面的 Y 类型是真实的。

      SUBROUTINE F(X, Y)
C        IMPLICIT NONE
        REAL :: X, Y
C        REAL :: A, B
C        REAL, PARAMETER :: C = 3.14E0
C        X = Y + 2 * SIN(Y)
      END

但是这里的类型是什么?

      SUBROUTINE F(X, Y)
C        IMPLICIT NONE
        REAL X, Y
C        REAL :: A, B
C        REAL, PARAMETER :: C = 3.14E0
C        X = Y + 2 * SIN(Y)
      END

由于该行开头的 REAL 标记,它是隐式类型还是 REAL?我的意思是类型声明的范围是什么,直到 ,或者一直到行尾?

:: 服务的目的是什么?

(抱歉,半夜在困惑的状态下使用解析器让你害怕做出错误的假设,而当下的智慧说去咨询有更多经验的人。)

4

2 回答 2

1

您已声明IMPLICIT NONE,因此不会进行隐式键入。你是对的——你可以在一行上声明多个变量YREAL

Fortran 90 声明中使用该::字符来指定实际变量名的类型和选项。正如您所发现的,如果您忽略它,编译器通常会很高兴,但我发现包含它会使它更具可读性。

附带说明一下,这段代码看起来是使用 FORTRAN 77 样式编写的 - 如果它是新代码,您可能希望使用 Fortran 90 样式的语法编写代码,从注释到缩进(例如,您不必启动命令在某些列中,有更多可用的内在函数、动态内存等)

于 2009-06-28T05:03:30.667 回答
1

范围到行尾:Y 是 REAL

至于“::”,它是FORTRAN 90中的新东西。

于 2009-06-28T02:44:36.680 回答