行列のprint表示

今日ホゲーとなったのは次の書き方.

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