TABLE OF CONTENTS


ABINIT/defs_wannier90 [ Modules ]

[ Top ] [ 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