双冒号“::”,通常出现于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)