使用Fortran数组构造函数func的作用是什么((/ array(i)/))

时间:2015-03-01 15:33:42

标签: arrays fortran

我正在审查fortran(95/2003)代码,其中包含表单

的声明
  do j=1,size(array)
    res(j) = func((/array(j)/))
  end do

其中func是function,它将1个大小为size(array)的数组作为参数。我知道(/ ... /)是一个数组构造函数。但是func((/array(j)/))声明的目的是什么?请注意,样本减少了诅咒,我希望我没有删除相关部分。

1 个答案:

答案 0 :(得分:2)

正如您所提到的,func是一个接受数组作为输入并返回标量的函数。

array(j)只是一个标量,因此您无法直接将其传递给func。因此,您可以通过(/ array(j) /)构造一个维度为1的数组,并将该临时数组传递给您的函数。

当agentp指出[thanks!]时,以下内容也会传递一个维度1数组(确切地说,是一个长度为1的数组切片):

func( array(j:j) )