今日ホゲーとなったのは次の書き方.
real(8), dimension(2,2,2) :: target integer :: i, j, k do i = 1,2 do j = 1,2 do k = 1,2 target(i,j,k)=i+j+k end do end do end do do i = 1,2 do j = 1,2 do k = 1,2 print *, "i=", i,"j=",j, "k=",k, "matrix=",target end do end do end do
こんなんしたら!こんなんしたら!
i= 1 j= 1 k= 1 matrix= 3.00000000000000
4.00000000000000 4.00000000000000 5.00000000000000
4.00000000000000 5.00000000000000 5.00000000000000
6.00000000000000
i= 1 j= 1 k= 2 matrix= 3.00000000000000
4.00000000000000 4.00000000000000 5.00000000000000
4.00000000000000 5.00000000000000 5.00000000000000
6.00000000000000
i= 1 j= 2 k= 1 matrix= 3.00000000000000
4.00000000000000 4.00000000000000 5.00000000000000
4.00000000000000 5.00000000000000 5.00000000000000
6.00000000000000
i= 1 j= 2 k= 2 matrix= 3.00000000000000
4.00000000000000 4.00000000000000 5.00000000000000
4.00000000000000 5.00000000000000 5.00000000000000
6.00000000000000
i= 2 j= 1 k= 1 matrix= 3.00000000000000
4.00000000000000 4.00000000000000 5.00000000000000
4.00000000000000 5.00000000000000 5.00000000000000
6.00000000000000
i= 2 j= 1 k= 2 matrix= 3.00000000000000
4.00000000000000 4.00000000000000 5.00000000000000
4.00000000000000 5.00000000000000 5.00000000000000
6.00000000000000
i= 2 j= 2 k= 1 matrix= 3.00000000000000
4.00000000000000 4.00000000000000 5.00000000000000
4.00000000000000 5.00000000000000 5.00000000000000
6.00000000000000
i= 2 j= 2 k= 2 matrix= 3.00000000000000
4.00000000000000 4.00000000000000 5.00000000000000
4.00000000000000 5.00000000000000 5.00000000000000
6.00000000000000
こうなるに決まってるやろ…(その時点の配列の値が出力されるから,ループの中でこんな書き方したらダメ)
せめてこう書いてください…
real(8), dimension(2,2,2) :: target integer :: i, j, k do i = 1,2 do j = 1,2 do k = 1,2 target(i,j,k)=i+j+k end do end do end do do i = 1,2 do j = 1,2 do k = 1,2 print *, "i=", i,"j=",j, "k=",k, "matrix=",target(i,j,k) end do end do end do
i= 1 j= 1 k= 1 matrix= 3.00000000000000
i= 1 j= 1 k= 2 matrix= 4.00000000000000
i= 1 j= 2 k= 1 matrix= 4.00000000000000
i= 1 j= 2 k= 2 matrix= 5.00000000000000
i= 2 j= 1 k= 1 matrix= 4.00000000000000
i= 2 j= 1 k= 2 matrix= 5.00000000000000
i= 2 j= 2 k= 1 matrix= 5.00000000000000
i= 2 j= 2 k= 2 matrix= 6.00000000000000