在Fortran中键入声明

时间:2009-06-28 02:29:33

标签: types fortran declaration

我认为下面的Y类型是REAL。

      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?我的意思是类型声明的范围是什么,只是到达或者一直到行尾?

::服务的目的是什么?

(对不起,在午夜处理一个处于困惑状态的解析器让你害怕做出错误的假设和当下的智慧说去咨询其他有更多经验的人。)

2 个答案:

答案 0 :(得分:1)

范围到行尾:Y是REAL

对于“::”,它是FORTRAN 90中的新内容。

答案 1 :(得分:1)

您已声明IMPLICIT NONE,因此没有隐式输入。你是Y REAL是正确的 - 你被允许在一行上声明多个变量。

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

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