我是Fortran的新手,对于这个虚假的问题感到抱歉,我没有找到答案。 在代码中:
integer ( kind = 4 ) k
integer ( kind = 4 ) v(k)
integer ( kind = 4 ) list(*)
(k)和(*)在第二行,第三行中做了什么?
由于
答案 0 :(得分:4)
第一个整数k
是标量。第二个整数v(k)
是一个带有v
元素的数组k
。最后一个整数list(*)
一个假定大小的数组,它是一个过程的伪参数。它的长度(元素数量)将由传递给过程的实际参数确定。
请注意,kind = 4
不可移植,您应该使用内在函数kind()
或selected_int_kind()
来指定整数的大小。
答案 1 :(得分:3)
补充@casey的答案:
的定义
INTEGER(KIND=4) list(*)
仅作为伪参数的定义有效。但是,您可以在常量的帮助下将此列表定义为命名常量(由PARAMETER
关键字指定):
INTEGER(KIND=4), PARAMETER :: list(*) = [1,2,3,4,5]
在这种情况下,这称为隐含形状数组(5.3.8.6),它从常量数组中隐含地得到它的长度。