setup_single_perturbation Subroutine

public subroutine setup_single_perturbation(pos, orbital, type)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: pos
integer, intent(in) :: orbital
integer, intent(in) :: type

Contents


Source Code

    subroutine setup_single_perturbation(pos, orbital, type)
        implicit none

        integer, intent(in) :: pos, orbital, type

        if (type == 1) then
            allocate(pops_pert(pos)%crtn_orbs(1))
            allocate(overlap_pert(pos)%crtn_orbs(1))
            overlap_pert(pos)%ncreate = 1
            pops_pert(pos)%ncreate = 1
            pops_pert(pos)%crtn_orbs(1) = orbital
            overlap_pert(pos)%crtn_orbs(1) = orbital
            call init_perturbation_creation(overlap_pert(pos))
            call init_perturbation_creation(pops_pert(pos))
        else
            allocate(pops_pert(pos)%ann_orbs(1))
            allocate(overlap_pert(pos)%ann_orbs(1))
            overlap_pert(pos)%nannihilate = 1
            pops_pert(pos)%nannihilate = 1
            pops_pert(pos)%ann_orbs(1) = orbital
            overlap_pert(pos)%ann_orbs(1) = orbital
            call init_perturbation_annihilation(overlap_pert(pos))
            call init_perturbation_annihilation(pops_pert(pos))
        end if
    end subroutine setup_single_perturbation