SUBROUTINE WRITESYM(IUNIT, SYM, LTERM)
IMPLICIT NONE
INTEGER IUNIT
TYPE(SYMMETRY) SYM
LOGICAL LTERM
INTEGER Abel(3)
if (t_k_space_hubbard) then
write(iunit, "(I4)", advance='no') Sym
return
end if
IF (TAbelian) THEN
CALL DecomposeAbelianSym(SYM%s, Abel)
if (TwoCycleSymGens) then
write(IUNIT, '(" (",I2,",",I2,",",I2,")",I2)', advance='no') Abel(1:3), SYM%s
else
write(IUNIT, '(" (",I2,",",I2,",",I2,")",I2)', advance='no') Abel(1:3)
end if
else if (NSYM <= 16) THEN
write(IUNIT, "(Z5)", advance='no') SYM
else if (NSYM <= 24) THEN
write(IUNIT, "(Z7)", advance='no') SYM
else if (NSYM <= 32) THEN
write(IUNIT, "(Z9)", advance='no') SYM
else if (NSYM <= 40) THEN
write(IUNIT, "(Z11)", advance='no') SYM
else if (NSYM <= 48) THEN
write(IUNIT, "(Z13)", advance='no') SYM
else if (NSYM <= 56) THEN
write(IUNIT, "(Z15)", advance='no') SYM
ELSE
write(IUNIT, "(Z17)", advance='no') SYM
end if
IF (LTERM) write(IUNIT, *)
END SUBROUTINE WRITESYM