| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | pos | |||
| integer, | intent(in) | :: | orbital | |||
| integer, | intent(in) | :: | type |
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