indices(3,nbz_closed) = indices for each k-point in the closed BZ
g0(3,nbz_closed) = g vectors between k-point inside bz and k-point given by indices
iktoint(nbz) = mapping between k-points in the bz and int indices
inttoik(nbz_closed) = mapping between int indices and k-points in the bz

indices(6,nbz_dense) = indices for each k-point in the closed BZ
g0(3,nbz_dense) = g vectors between k-point inside bz and k-point given by indices
iktoint(nbz_dense) = mapping between k-points in the bz and int indices
inttoik(nbz_dense) = mapping between int indices and k-points in the bz

790 subroutine double_grid_free(grid)
791 792 793 !This section has been created automatically by the script Abilint (TD).
794 !Do not modify the following lines by hand.
795 #undef ABI_FUNC
796 #define ABI_FUNC 'double_grid_free'
797 !End of the abilint section
798 799 implicit none
800 801 !Arguments ------------------------------------
802 type(double_grid_t),intent(inout) :: grid
803 804 ! *********************************************************************
805 806 DBG_ENTER("COLL")
807 808 !@double_grid
809 810 !integer
811 if (allocated(grid%inttoik_coarse)) then
812 ABI_DEALLOCATE(grid%inttoik_coarse)
813 end if
814 if (allocated(grid%inttoik_dense)) then
815 ABI_DEALLOCATE(grid%inttoik_dense)
816 end if
817 if (allocated(grid%iktoint_coarse)) then
818 ABI_DEALLOCATE(grid%iktoint_coarse)
819 end if
820 if (allocated(grid%iktoint_dense)) then
821 ABI_DEALLOCATE(grid%iktoint_dense)
822 end if
823 if (allocated(grid%indices_coarse)) then
824 ABI_DEALLOCATE(grid%indices_coarse)
825 end if
826 if (allocated(grid%indices_dense)) then
827 ABI_DEALLOCATE(grid%indices_dense)
828 end if
829 if (allocated(grid%g0_coarse)) then
830 ABI_DEALLOCATE(grid%g0_coarse)
831 end if
832 if (allocated(grid%g0_dense)) then
833 ABI_DEALLOCATE(grid%g0_dense)
834 end if
835 if (allocated(grid%dense_to_coarse)) then
836 ABI_DEALLOCATE(grid%dense_to_coarse)
837 end if
838 if (allocated(grid%coarse_to_dense)) then
839 ABI_DEALLOCATE(grid%coarse_to_dense)
840 end if
841 842 !real
843 if (allocated(grid%shiftk_dense)) then
844 ABI_DEALLOCATE(grid%shiftk_dense)
845 end if
846 847 if (allocated(grid%shiftk_coarse)) then
848 ABI_DEALLOCATE(grid%shiftk_coarse)
849 end if
850 851 DBG_EXIT("COLL")
852 853 end subroutine double_grid_free

m_double_grid/get_kpt_from_indices_coarse [ Functions ]

Returns the k-point index and g0 vector associated to the set of indices

INPUTS

indices(3) = index of the searched k-point
maxcomp(3) = Maximum int along each direction
inttoik(nkpt) = mapping between int indices and k-points in the bz
allg0(3,nkpt) = g vectors between k-point inside bz and k-point given by indices
nkpt = number of k-points

m_double_grid/kptfine_av [ Functions ]

Find the k-points of a fine grid that are around a k-point of a coarse mesh.

INPUTS

center(3) = the point of the coarse mesh around which you want know which
k-points of the fine mesh belong to.
qptrlatt(3,3) = qptrlatt of the considered calculation (this is obtained
from the input variable ngqpt and shiftq.
kpt_fine(3,nkpt_fine) = this table contain all the k-points of the fine grid
in the full BZ (no sym op. allowed) and is read from the header
of the dense WF file.
nkpt_fine = number of k-points of the fine grid read from the header of the
dense WF file.

OUTPUT

kpt_fine_sub(nkpt_sub) = k-points of the fine grid that are around center(3)
nkpt_sub = number of k-points of the fine grid that are around center(3)
wgt_sub(nkpt_sub) = weight of the k-points of the fine grid that are around center(3).