anchor.diff:      end subroutine
   
       subroutine print_cube(c)
  -        integer, intent(in) :: c(3, 3, 3)
  +        integer, intent(in) :: c(:, :, :)
           integer             :: i, j
   
           do j = 1, 3
               do i = 1, 3
  -                write (*, "(3i2)") c(i, :, j)
  +                write (*, "(3i2)") c(i, 1:3, j)
               end do
               print *
           end do
  
positive.code:             return
          end if
  
          ! TODO Remove searchs with tiny islands.
  
          ! Skip all rotations for the first piece (they are redundant).
          if (n == size(ps)) then
  
negative.code:     use list_module
      implicit none
  
      logical, parameter       :: elim_islands = .true.
      integer, parameter       :: isin(0:3) = (/ 0, 1,  0, -1 /), &
                                  icos(0:3) = (/ 1, 0, -1,  0 /)
      integer, parameter       :: eye(3, 3) = reshape((/ 1, 0, 0,       &
                                                         0, 1, 0,       &
                                                         0, 0, 1 /),    &
                                                      (/ 3, 3 /))
      integer                  :: mrot(3, 3, 3, 4), cube(3, 3, 3)
      type(piece), allocatable :: ps(:)
      type(list)               :: sols
  