subroutine interleave63(d1,idir) ! Interleave (idir=1) or de-interleave (idir=-1) the array d1. integer d1(0:6,0:8) integer d2(0:8,0:6) if(idir.ge.0) then do i=0,6 do j=0,8 d2(j,i)=d1(i,j) enddo enddo call move(d2,d1,63) else call move(d1,d2,63) do i=0,6 do j=0,8 d1(i,j)=d2(j,i) enddo enddo endif return end subroutine interleave63