pure subroutine roundsym(isym, nbasismax)
type(basisfn), intent(inout) :: isym
integer, intent(in) :: nbasismax(5, *)
integer :: i
if (t_new_hubbard .and. t_k_space_hubbard) then
! deal differently with the new k-space hubbard
! use the lattice intrinsic function
! also do something in the real-space case!!
! maybe there i have to set k to 0..
isym = lat%round_sym(isym)
return
end if
IF (NBASISMAX(3, 3) == -2) THEN
! particle in a box
! parity symmetries
DO I = 1, 3
ISYM%k(I) = MOD(ISYM%k(I), 2)
end do
else if (NBASISMAX(3, 3) == -1) THEN
! UEG (can't remember the symmetries of that
! probably momentum conservation)
if (tperiodicinmom) CALL MOMPBCSYM(ISYM%k, NBASISMAX)
else if (NBASISMAX(3, 3) == 0) THEN
! Hubbard model
IF (NBASISMAX(1, 3) < 2) THEN
! momentum conservation - various PBC issues
!ALEX PLEASE CHECK.
CALL MOMPBCSYM(ISYM%k, NBASISMAX)
else if (NBASISMAX(1, 3) >= 2) THEN
! we're in real space so no sym
DO I = 1, 3
ISYM%k(I) = 0
end do
end if
else if (NBASISMAX(3, 3) == 1) THEN
! Generic spatial symmetries
! We need do nothing.
! However, there is still momentum conservation - various PBC issues
!ALEX PLEASE CHECK.
CALL MOMPBCSYM(ISYM%k, NBASISMAX)
end if
RETURN
END SUBROUTINE ROUNDSYM