| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(aim_chain) | :: | this |
subroutine init_sites_aim_chain(this) class(aim_chain) :: this character(*), parameter :: this_routine = "init_sites_aim_chain" ! now this is the important routine.. integer :: i if (this%get_nsites() < 2) then call stop_all(this_routine, & "less than 2 sites!") end if ! for the chain we should assert that we only have one impurity! if (this%get_n_imps() > 1) then call stop_all(this_routine, "more than one impurity!") end if ! the first site is the impurity! this%sites(1) = site(1, 1, [2], site_type='impurity') ! the bath sites are connected within each other, but not periodic! do i = 1, this%get_n_bath() - 1 this%sites(i + 1) = site(i + 1, 2, [i, i + 2], site_type='bath') end do ! and the last bath site only has one neighbor this%sites(this%get_nsites()) = site(this%get_nsites(), 1, & [this%get_nsites() - 1], site_type='bath') end subroutine init_sites_aim_chain