在Fortran中,变量的声明语句是否可以引用先前声明的变量?例如,当我尝试以下方法:在Fortran 90中,是否无法在新变量的声明语句中引用先前声明的变量?
PROGRAM test3
IMPLICIT NONE
INTEGER :: a=2286
INTEGER :: b=a/3
WRITE(*,*) a, b
END PROGRAM test3
我得到一个编译时错误消息:
test3.f90:5.16:
INTEGER :: b=a/3
1
Error: Parameter 'a' at (1) has not been declared or is a variable, which
does not reduce to a constant expression
在另一方面,如果我给你b到在/ 2从b申报单独的声明中,它编译和运行良好:
PROGRAM test3
IMPLICIT NONE
INTEGER :: a=2286
INTEGER :: b
b=a/3
WRITE(*,*) a, b
END PROGRAM test3
这给了我正确的输出:
2286 762
为什么会出现这样的情况 - 即已声明的变量不能包含在新变量的声明语句?难道我做错了什么?或者这只是一个“Fortran生活事实”?
非常感谢您的时间!
谢谢! – Andrew