私は手元に次のプログラムを持っています
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)/))
すべてがうまくいきます。問題は、これは少し面倒に思えるだけなので、問題は、サブルーチンの引数を記述する他の方法はないかということです。
前もって感謝します。