此代码在gfortran,Intel Fortran和Solaris Studio中编译
real, dimension(:) :: A(2)
print *, size(A)
end
结果是2。
但是,在维度语句中尝试另一个array-spec时
dimension A(1)
real :: A(2)
print *, size(A)
end
所有三个编译器都会发出一个错误,即维度属性被赋予了两次。
第一个代码标准是否符合标准(尽可能最近)的标准是什么?
标准说:
第一个程序符合标准,按照标准观察行为;鉴于C815,第二个不是。
这些规则自Fortran 90开始应用。相当于C815也在F77中,F66特征模糊不清......