TABLE OF CONTENTS
ABINIT/defs_wannier90 [ Modules ]
NAME
defs_wannier90
FUNCTION
This module contains interfaces for wannier90 lib.
COPYRIGHT
Copyright (C) 2004-2024 ABINIT group (BA, MT) This file is distributed under the terms of the GNU General Public License, see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt .
TODO
SOURCE
18 #if defined HAVE_CONFIG_H 19 #include "config.h" 20 #endif 21 22 module defs_wannier90 23 24 implicit none 25 26 interface 27 #ifndef HAVE_WANNIER90_V1 28 !WANNIER90_V2 29 subroutine wannier_setup(seed__name,mp_grid_loc,num_kpts_loc,& 30 real_lattice_loc,recip_lattice_loc,kpt_latt_loc,num_bands_tot, & 31 num_atoms_loc,atom_symbols_loc,atoms_cart_loc,gamma_only_loc,spinors_loc,& 32 nntot_loc,nnlist_loc,nncell_loc,num_bands_loc,num_wann_loc, & 33 proj_site_loc,proj_l_loc,proj_m_loc,proj_radial_loc,proj_z_loc, & 34 proj_x_loc,proj_zona_loc,exclude_bands_loc, & 35 & proj_s_loc,proj_s_qaxis_loc) 36 #else 37 !WANNIER90_V1 38 subroutine wannier_setup(seed__name,mp_grid_loc,num_kpts_loc,& 39 real_lattice_loc,recip_lattice_loc,kpt_latt_loc,num_bands_tot, & 40 num_atoms_loc,atom_symbols_loc,atoms_cart_loc,gamma_only_loc,spinors_loc,& 41 nntot_loc,nnlist_loc,nncell_loc,num_bands_loc,num_wann_loc, & 42 proj_site_loc,proj_l_loc,proj_m_loc,proj_radial_loc,proj_z_loc, & 43 proj_x_loc,proj_zona_loc,exclude_bands_loc) 44 #endif 45 use defs_basis 46 implicit none 47 character(len=*), intent(in) :: seed__name 48 integer, dimension(3), intent(in) :: mp_grid_loc 49 integer, intent(in) :: num_kpts_loc 50 real(dp), dimension(3,3), intent(in) :: real_lattice_loc 51 real(dp), dimension(3,3), intent(in) :: recip_lattice_loc 52 real(dp), dimension(3,num_kpts_loc), intent(in) :: kpt_latt_loc 53 integer, intent(in) :: num_bands_tot 54 integer, intent(in) :: num_atoms_loc 55 character(len=*), dimension(num_atoms_loc), intent(in) :: atom_symbols_loc 56 real(dp), dimension(3,num_atoms_loc), intent(in) :: atoms_cart_loc 57 logical, intent(in) :: gamma_only_loc 58 logical, intent(in) :: spinors_loc 59 integer, intent(out) :: nntot_loc 60 integer, dimension(num_kpts_loc,12), intent(out) :: nnlist_loc 61 integer,dimension(3,num_kpts_loc,12), intent(out) :: nncell_loc 62 integer, intent(out) :: num_bands_loc 63 integer, intent(out) :: num_wann_loc 64 real(dp), dimension(3,num_bands_tot), intent(out) :: proj_site_loc 65 integer, dimension(num_bands_tot), intent(out) :: proj_l_loc 66 integer, dimension(num_bands_tot), intent(out) :: proj_m_loc 67 integer, dimension(num_bands_tot), intent(out) :: proj_radial_loc 68 real(dp), dimension(3,num_bands_tot), intent(out) :: proj_z_loc 69 real(dp), dimension(3,num_bands_tot), intent(out) :: proj_x_loc 70 real(dp), dimension(num_bands_tot), intent(out) :: proj_zona_loc 71 integer, dimension(num_bands_tot), intent(out) :: exclude_bands_loc 72 #ifndef HAVE_WANNIER90_V1 73 !WANNIER90_V2 74 integer, dimension(num_bands_tot), optional, intent(out) :: proj_s_loc 75 real(dp), dimension(3,num_bands_tot), optional, intent(out) :: proj_s_qaxis_loc 76 #endif 77 end subroutine wannier_setup 78 end interface 79 80 interface 81 subroutine wannier_run(seed__name,mp_grid_loc,num_kpts_loc, & 82 real_lattice_loc,recip_lattice_loc,kpt_latt_loc,num_bands_loc, & 83 num_wann_loc,nntot_loc,num_atoms_loc,atom_symbols_loc, & 84 atoms_cart_loc,gamma_only_loc,M_matrix_loc,A_matrix_loc,eigenvalues_loc, & 85 U_matrix_loc,U_matrix_opt_loc,lwindow_loc,wann_centres_loc, & 86 wann_spreads_loc,spread_loc) 87 use defs_basis 88 character(len=*), intent(in) :: seed__name 89 integer, dimension(3), intent(in) :: mp_grid_loc 90 integer, intent(in) :: num_kpts_loc 91 real(dp), dimension(3,3), intent(in) :: real_lattice_loc 92 real(dp), dimension(3,3), intent(in) :: recip_lattice_loc 93 real(dp), dimension(3,num_kpts_loc), intent(in) :: kpt_latt_loc 94 integer, intent(in) :: num_bands_loc 95 integer, intent(in) :: num_wann_loc 96 integer, intent(in) :: nntot_loc 97 integer, intent(in) :: num_atoms_loc 98 character(len=*), dimension(num_atoms_loc), intent(in) :: atom_symbols_loc 99 real(dp), dimension(3,num_atoms_loc), intent(in) :: atoms_cart_loc 100 logical, intent(in)::gamma_only_loc 101 complex(dpc), dimension(num_bands_loc,num_bands_loc,nntot_loc,num_kpts_loc), intent(in) :: M_matrix_loc 102 complex(dpc), dimension(num_bands_loc,num_wann_loc,num_kpts_loc), intent(in) :: A_matrix_loc 103 real(dp), dimension(num_bands_loc,num_kpts_loc), intent(in) :: eigenvalues_loc 104 complex(dpc), dimension(num_wann_loc,num_wann_loc,num_kpts_loc), intent(out) :: U_matrix_loc 105 complex(dpc), dimension(num_bands_loc,num_wann_loc,num_kpts_loc), optional, intent(out) :: U_matrix_opt_loc 106 logical, dimension(num_bands_loc,num_kpts_loc), optional, intent(out) :: lwindow_loc 107 real(dp), dimension(3,num_wann_loc), optional, intent(out) :: wann_centres_loc 108 real(dp), dimension(num_wann_loc), optional, intent(out) :: wann_spreads_loc 109 real(dp), dimension(3), optional, intent(out) :: spread_loc 110 end subroutine wannier_run 111 end interface 112 113 end module defs_wannier90