Не могу понять, где ошибка
Matrix68. Дана матрица размера M × N и целое число K (1 ≤ K ≤ M). Перед строкой матрицы с номером K вставить строку из нулей.
program ZZ
integer, allocatable, dimension(:,:)::A, B
integer::m, n, k, x, y
print*,'Enter M'
read*,m
print*,'Enter N'
read*,n
print*,'Enter K'
read*,k
allocate(a(m,n),b(m,n+1))
do y=1,n+1
read*,(a(x,y),x=1,m)
end do
do y=1,n
b(k+1,y)=0
end do
if(1<=k.and.k<=m)then
do x=1,m
do i=1,k
b(x,i)=a(x,i)
end do
end do
do
x=k+2,n+1
b(x,i)=a(x,i-1)
end do
else
do y=1,n
print*,a(x,y)
end do
end if
do
i=1,n+1
print*,b(x,i)
end do
end program
Источник: Stack Overflow на русском