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