WRITESYM Subroutine

public subroutine WRITESYM(IUNIT, SYM, LTERM)

Arguments

Type IntentOptional Attributes Name
integer :: IUNIT
type(Symmetry) :: SYM
logical :: LTERM

Contents

Source Code


Source Code

    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