subroutine interleave9(ia,ndir,ib) integer*1 ia(0:205),ib(0:205) integer j0(0:205) logical first data first/.true./ save first,j0 !Save not working, or j0 overwritten ??? if(first) then k=-1 do i=0,255 m=i n=iand(m,1) n=2*n + iand(m/2,1) n=2*n + iand(m/4,1) n=2*n + iand(m/8,1) n=2*n + iand(m/16,1) n=2*n + iand(m/32,1) n=2*n + iand(m/64,1) n=2*n + iand(m/128,1) if(n.le.205) then k=k+1 j0(k)=n endif enddo ! first=.false. endif if(ndir.gt.0) then do i=0,205 ib(j0(i))=ia(i) enddo else do i=0,205 ib(i)=ia(j0(i)) enddo endif return end subroutine interleave9