现代Fortran中的语法是什么语句声明一个数组而不给出它的长度并让编译器确定声明的长度?
下面的例子不工作:
program ONE
real :: V = [1,2,3]
end program
program ONE
real :: V(*) = [1,2,3]
end program
Run Code Online (Sandbox Code Playgroud)
但这个例子确实有效:
program ONE
real :: V(3) = [1,2,3]
end program
Run Code Online (Sandbox Code Playgroud)
为什么编译器不能从声明中计算所需的长度?有没有办法做到这一点?
您可以执行以下操作,这需要两行,声明和可执行语句:
program ONE
real, dimension (:), allocatable :: V
V = [1,2,3]
end program
Run Code Online (Sandbox Code Playgroud)
这使得Fortran 2003在分配时重新分配的功能.
| 归档时间: |
|
| 查看次数: |
296 次 |
| 最近记录: |