双冒号“::”,通常出现于Fortran在变量声明中,但是在特殊情况下,也会出现于数组中。例如:
...
real,target,dimension(10):: a
real,pointer,dimension(:):: pa,pb
integer:: n=3
...
pa => a(n::1)
pb => a(n:10:1)
...
咋一看,数组中的“双冒号”像是新的语法,但其实这是一种假像,本质上是两个冒号,只不过中间的数组上界被省略了,程序中的两种写法是等效的。因此建议小伙伴们在写程序的时候,尽量少用省略的写法,也可以把两个冒号分开,不要给阅读程序的人造成不必要的困扰。例如:
pa => a(n::1)
可以写成
pa => a(n: :1)