【发布时间】:2012-08-16 05:19:19
【问题描述】:
我手头有以下程序
program foo
type bar
real, dimension(2) :: vector
end type
type(bar), dimension(3) :: bararray
call doSomething(bararray%vector)
end program
subroutine doSomething(v)
real, dimension(3,2), intent(inout) :: v
...
end subroutine
现在这给了我一个编译错误。
Error: Two or more part references with nonzero rank must not be specified at (1)
如果我将调用更改为
call doSomething((/bararray%vector(1), bararray%vector(2)/))
一切都很顺利。问题是这看起来有点麻烦,所以问题是,有没有其他方法可以为子程序编写参数?
提前致谢。
【问题讨论】:
标签: fortran argument-passing fortran90 gfortran