1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
program implied_do_loops9
integer, parameter :: n = 3
complex :: b(n,n)
complex, parameter :: i_ = cmplx(0,1)
integer :: i,j
b = reshape([((merge(i + 1*i_,0*i_,i==j), i=1,n), j=1,n)], [n,n])
print * , b
if (b(1,1) /= cmplx(1,1)) error stop
if (b(1,2) /= cmplx(0,0)) error stop
if (b(1,3) /= cmplx(0,0)) error stop
if (b(2,1) /= cmplx(0,0)) error stop
if (b(2,2) /= cmplx(2,1)) error stop
if (b(2,3) /= cmplx(0,0)) error stop
if (b(3,1) /= cmplx(0,0)) error stop
if (b(3,2) /= cmplx(0,0)) error stop
if (b(3,3) /= cmplx(3,1)) error stop
end program
|