check_real_space_hubbard_input Subroutine

public subroutine check_real_space_hubbard_input()

Arguments

None

Contents


Source Code

    subroutine check_real_space_hubbard_input()
        use SystemData, only: tReltvy, tUEG, tUEG2, tHub, &
                              tKPntSym, tLatticeGens, tUEGNewGenerator, &
                              tGenHelWeighted, tGen_4ind_weighted, tGen_4ind_reverse, &
                              tUEGNewGenerator, tGen_4ind_part_exact, &
                              tGen_4ind_2, tGen_4ind_2_symmetric, tGen_4ind_unbound, tStoreSpinOrbs, &
                              tReal
        use OneEInts, only: tcpmdsymtmat, tOneelecdiag

        character(*), parameter :: this_routine = "check_real_space_hubbard_input"
        ! do all the input checking here, so no wrong input is used!

        if (tReltvy) call stop_all(this_routine, "tReltvy set to true!")

        ! what else..
        if (tUEG) call stop_all(this_routine, "tUEG set to true!")
        if (tUEG2) call stop_all(this_routine, "tUEG2 set to true!")
        if (tHub) call stop_all(this_routine, "tHub set to true!")
        if (tReal) call stop_all(this_routine, "tReal set to true!")
        if (tKPntSym) call stop_all(this_routine, "tKPntSym set to true!")
        if (tLatticeGens) call stop_all(this_routine, "tLatticeGens set to true!")
        if (tUEGNewGenerator) call stop_all(this_routine, "tUEGNewGenerator set to true!")
        if (tGenHelWeighted) call stop_all(this_routine, "tGenHelWeighted")
        if (tGen_4ind_weighted) call stop_all(this_routine, "tGen_4ind_weighted")
        if (tGen_4ind_reverse) call stop_all(this_routine, "tGen_4ind_reverse")
        if (tGen_4ind_part_exact) call stop_all(this_routine, "tGen_4ind_part_exact")
        if (tGen_4ind_2) call stop_all(this_routine, "tGen_4ind_2")
        if (tGen_4ind_2_symmetric) call stop_all(this_routine, "tGen_4ind_2_symmetric")
        if (tGen_4ind_unbound) call stop_all(this_routine, "tGen_4ind_unbound")
        if (tStoreSpinOrbs) call stop_all(this_routine, "tStoreSpinOrbs")
        if (tcpmdsymtmat) call stop_all(this_routine, "tcpmdsymmat")
        if (tOneelecdiag) call stop_all(this_routine, "tOneelecdiag")

        if (any(t_anti_periodic) .and. t_twisted_bc) &
            call stop_all(this_routine, "anti-periodic and twisted BCs not compatible!")

        if (tHPHF .and. t_uniform_excits .and. t_trans_corr_hop) then
            call stop_all(this_routine, "HPHF, transcorr and uniform excits is broken")
        end if

    end subroutine check_real_space_hubbard_input