subroutine init_dispersion_rel_cache() ! to avoid excessive calls to the cos() function cache the ! dispersion relation of the lattice and make them accessible ! through the symmetry label associated with the k-vectors! character(*), parameter :: this_routine = "init_dispersion_rel_cache" integer :: i, sym_min, sym_max, sym ASSERT(associated(lat)) if (allocated(dispersion_rel_cached)) deallocate(dispersion_rel_cached) sym_min = 0 sym_max = 0 do i = 1, lat%get_nsites() sym = lat%get_sym(i) if (sym < sym_min) sym_min = sym if (sym > sym_max) sym_max = sym end do allocate(dispersion_rel_cached(sym_min:sym_max), source=0.0_dp) do i = 1, lat%get_nsites() dispersion_rel_cached(lat%get_sym(i)) = lat%dispersion_rel_orb(i) end do end subroutine init_dispersion_rel_cache