anchor.diff:      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
  
positive.code:     end subroutine
  
      subroutine print_cube(c)
          integer, intent(in) :: c(3, 3, 3)
          integer             :: i, j
  
          do j = 1, 3
              do i = 1, 3
                  write (*, "(3i2)") c(i, :, j)
              end do
              print *
          end do
  
negative.code:             return
          end if
  
          if (elim_islands) then
              if (min_island_vol(cube) < size(ps(1)%s, 2)) return
          end if
  
          ! Skip all rotations for the first piece (they are redundant).
          if (n == size(ps)) then
  