我正在审查fortran(95/2003)代码,其中包含表单
的声明 do j=1,size(array)
res(j) = func((/array(j)/))
end do
其中func是function
,它将1个大小为size(array)
的数组作为参数。我知道(/ ... /)
是一个数组构造函数。但是func((/array(j)/))
声明的目的是什么?请注意,样本减少了诅咒,我希望我没有删除相关部分。
答案 0 :(得分:2)
正如您所提到的,func
是一个接受数组作为输入并返回标量的函数。
array(j)
只是一个标量,因此您无法直接将其传递给func
。因此,您可以通过(/ array(j) /)
构造一个维度为1的数组,并将该临时数组传递给您的函数。
当agentp指出[thanks!]时,以下内容也会传递一个维度1数组(确切地说,是一个长度为1的数组切片):
func( array(j:j) )