私はこの奇妙なステートメントをコードの一部で見つけました:
read(10, *) ((matrix(i, j), i=1, n), j=m, 1, -1)
このインライン再帰読み取りがどのように機能するのか疑問に思っています。の意味は何
((matrix(i, j), i=1, n), j=m, 1, -1)
ですか?
私はこの奇妙なステートメントをコードの一部で見つけました:
read(10, *) ((matrix(i, j), i=1, n), j=m, 1, -1)
このインライン再帰読み取りがどのように機能するのか疑問に思っています。の意味は何
((matrix(i, j), i=1, n), j=m, 1, -1)
ですか?
これはインラインの再帰的読み取りではありません(この用語をどこから取得したかはわかりません)。これは、ネストされた暗黙のdoループの例です。たとえば、暗黙のdoループの構文とこれらの多くの例については、ここを参照してください。動作中。基本的に、暗黙のdoループは、1行にdoループを記述する方法です。ネストされた暗黙のdoループを使用すると、1行に複数のdoループを記述できます。
あなたの場合、あなたが持っているものは(OPが知っておくべき違いがある場合は誰かがここで私を訂正してください)のようなものと同等です(私が暗黙のdoループを外側のループから内側に解き明かしたことに注意してください):
integer, parameter :: n=<some-value>
integer, parameter :: m=<some-value>
<some-type>, dimension(n,m) :: matrix
integer :: i, j
do j = m,1,-1
do i = 1,n
read(10,*) matrix(i,j)
end do
end do