Module to handle ballistic transport.
Based on
< dosqc_1.0 >
Density Of States and Quantum Conductance - Version 1.0
Marco Buongiorno Nardelli, January 2000.
Reference:
- M. Buongiorno Nardelli, "Electronic transport in extended systems:
application to carbon nanotubes", Phys. Rev. B, vol. 60(11), 7828
(1999)
module~~w90_transport_mod~~UsesGraph
module~w90_transport_mod
w90_transport_mod
module~w90_comms
w90_comms
module~w90_transport_mod->module~w90_comms
module~w90_constants
w90_constants
module~w90_transport_mod->module~w90_constants
module~w90_error
w90_error
module~w90_transport_mod->module~w90_error
module~w90_comms->module~w90_constants
module~w90_error_base
w90_error_base
module~w90_comms->module~w90_error_base
module~w90_error->module~w90_comms
module~w90_error->module~w90_error_base
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
module~~w90_transport_mod~~UsedByGraph
module~w90_transport_mod
w90_transport_mod
proc~w90_transport
w90_transport
proc~w90_transport->module~w90_transport_mod
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Variables
Type
Visibility Attributes
Name
Initial
complex(kind=dp),
private,
parameter
::
eta
=
(0.0_dp, 0.0005_dp)
small complex number
integer,
private,
parameter
::
nterx
=
50
nterx = # of maximum iteration to calculate transfer matrix
Subroutines
Main transport subroutine
Arguments
Type
Intent Optional Attributes
Name
type(atom_data_type ),
intent(in)
::
atom_data
type(dis_manifold_type ),
intent(in)
::
dis_manifold
real(kind=dp),
intent(in),
allocatable
::
fermi_energy_list (:)
type(ham_logical_type ),
intent(inout)
::
ham_logical
real(kind=dp),
intent(in)
::
kpt_latt (:,:)
type(output_file_type ),
intent(in)
::
output_file
type(real_space_ham_type ),
intent(inout)
::
real_space_ham
type(transport_type ),
intent(inout)
::
transport
type(print_output_type ),
intent(in)
::
print_output
type(wannier_data_type ),
intent(in)
::
wannier_data
type(ws_region_type ),
intent(inout)
::
ws_region
type(w90_calculation_type ),
intent(in)
::
w90_calculation
complex(kind=dp),
intent(inout),
allocatable
::
ham_k (:,:,:)
complex(kind=dp),
intent(inout),
allocatable
::
ham_r (:,:,:)
complex(kind=dp),
intent(in)
::
u_matrix (:,:,:)
complex(kind=dp),
intent(in)
::
u_matrix_opt (:,:,:)
real(kind=dp),
intent(in)
::
eigval (:,:)
real(kind=dp),
intent(in)
::
real_lattice (3,3)
real(kind=dp),
intent(inout),
allocatable
::
wannier_centres_translated (:,:)
integer,
intent(inout),
allocatable
::
irvec (:,:)
integer,
intent(in)
::
mp_grid (3)
integer,
intent(inout),
allocatable
::
ndegen (:)
integer,
intent(inout),
allocatable
::
shift_vec (:,:)
integer,
intent(inout)
::
nrpts
integer,
intent(in)
::
num_bands
integer,
intent(in)
::
num_kpts
integer,
intent(in)
::
num_wann
integer,
intent(inout)
::
rpt_origin
character(len=*),
intent(in)
::
bands_plot_mode
logical,
intent(in)
::
have_disentangled
logical,
intent(in)
::
lsitesymmetry
character(len=50),
intent(in)
::
seedname
integer,
intent(in)
::
stdout
type(timer_list_type ),
intent(inout)
::
timer
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
type(real_space_ham_type ),
intent(in)
::
real_space_ham
complex(kind=dp),
intent(in)
::
ham_r (:,:,:)
real(kind=dp),
intent(inout),
allocatable
::
hr_one_dim (:,:,:)
real(kind=dp),
intent(in)
::
real_lattice (3,3)
integer,
intent(in)
::
irvec (:,:)
integer,
intent(in)
::
mp_grid (3)
integer,
intent(inout)
::
irvec_max
integer,
intent(in)
::
nrpts
integer,
intent(inout)
::
nrpts_one_dim
integer,
intent(in)
::
num_wann
integer,
intent(inout)
::
one_dim_vec
integer,
intent(in)
::
timing_level
integer,
intent(in)
::
stdout
type(timer_list_type ),
intent(inout)
::
timer
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
type(real_space_ham_type ),
intent(inout)
::
real_space_ham
type(transport_type ),
intent(inout)
::
transport
type(print_output_type ),
intent(in)
::
print_output
real(kind=dp),
intent(inout)
::
hr_one_dim (:,:,-irvec_max:)
real(kind=dp),
intent(in)
::
real_lattice (3,3)
real(kind=dp),
intent(in)
::
wannier_centres_translated (:,:)
integer,
intent(in)
::
mp_grid (3)
integer,
intent(in)
::
irvec_max
integer,
intent(inout)
::
num_pl
integer,
intent(in)
::
num_wann
integer,
intent(in)
::
one_dim_vec
integer,
intent(in)
::
stdout
type(timer_list_type ),
intent(inout)
::
timer
Construct h00 and h01
Arguments
Type
Intent Optional Attributes
Name
real(kind=dp),
intent(in),
allocatable
::
fermi_energy_list (:)
type(transport_type ),
intent(inout)
::
transport
real(kind=dp),
intent(inout),
allocatable
::
hB0 (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hB1 (:,:)
real(kind=dp),
intent(in)
::
hr_one_dim (:,:,-irvec_max:)
integer,
intent(in)
::
irvec_max
integer,
intent(in)
::
num_pl
integer,
intent(in)
::
num_wann
integer,
intent(in)
::
timing_level
character(len=50),
intent(in)
::
seedname
type(timer_list_type ),
intent(inout)
::
timer
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
type(transport_type ),
intent(in)
::
transport
real(kind=dp),
allocatable
::
hB0 (:,:)
real(kind=dp),
allocatable
::
hB1 (:,:)
integer,
intent(in)
::
timing_level
integer,
intent(in)
::
stdout
character(len=50),
intent(in)
::
seedname
type(timer_list_type ),
intent(inout)
::
timer
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
type(transport_type ),
intent(in)
::
transport
real(kind=dp),
intent(inout),
allocatable
::
hC (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hCR (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hL0 (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hL1 (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hLC (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hR0 (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hR1 (:,:)
integer,
intent(in)
::
timing_level
integer,
intent(in)
::
stdout
character(len=50),
intent(in)
::
seedname
type(timer_list_type ),
intent(inout)
::
timer
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
complex(kind=dp),
intent(out)
::
tot (nxx,nxx)
complex(kind=dp),
intent(out)
::
tott (nxx,nxx)
real(kind=dp),
intent(in)
::
h_00 (nxx,nxx)
real(kind=dp),
intent(in)
::
h_01 (nxx,nxx)
complex(kind=dp),
intent(in)
::
e_scan_cmp
integer,
intent(in)
::
nxx
integer,
intent(in)
::
stdout
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
complex(kind=dp),
intent(in)
::
tot (nxx,nxx)
complex(kind=dp),
intent(in)
::
tott (nxx,nxx)
real(kind=dp),
intent(in)
::
h_00 (nxx,nxx)
real(kind=dp),
intent(in)
::
h_01 (nxx,nxx)
real(kind=dp),
intent(in)
::
e_scan
complex(kind=dp),
intent(out)
::
g (nxx,nxx)
integer,
intent(in)
::
igreen
integer,
intent(in)
::
invert
integer,
intent(in)
::
nxx
integer,
intent(in)
::
stdout
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
integer,
intent(in)
::
nxx
real(kind=dp),
intent(out)
::
h_00 (nxx,nxx)
real(kind=dp),
intent(out)
::
h_01 (nxx,nxx)
character(len=50),
intent(in)
::
h_file
integer,
intent(in)
::
stdout
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
integer,
intent(in)
::
nxx
real(kind=dp),
intent(out)
::
h_00 (nxx,nxx)
character(len=50),
intent(in)
::
h_file
integer,
intent(in)
::
stdout
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
integer,
intent(in)
::
nxx1
integer,
intent(in)
::
nxx2
real(kind=dp),
intent(out)
::
h_01 (nxx1,nxx2)
character(len=50),
intent(in)
::
h_file
integer,
intent(in)
::
stdout
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
real(kind=dp),
intent(out),
allocatable
::
signatures (:,:)
integer,
intent(out)
::
num_G
type(print_output_type ),
intent(in)
::
print_output
real(kind=dp),
intent(in)
::
real_lattice (3,3)
complex(kind=dp),
intent(in)
::
u_matrix_opt (:,:,:)
complex(kind=dp),
intent(in)
::
u_matrix (:,:,:)
integer,
intent(in)
::
num_bands
integer,
intent(in)
::
num_wann
logical,
intent(in)
::
have_disentangled
real(kind=dp),
intent(in)
::
wannier_centres_translated (:,:)
integer,
intent(in)
::
stdout
character(len=50),
intent(in)
::
seedname
type(timer_list_type ),
intent(inout)
::
timer
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
real(kind=dp),
intent(in)
::
signatures (:,:)
integer,
intent(in)
::
num_G
logical,
intent(out)
::
pl_warning
type(transport_type ),
intent(inout)
::
transport
type(atom_data_type ),
intent(in)
::
atom_data
type(wannier_data_type ),
intent(in)
::
wannier_data
type(real_space_ham_type ),
intent(inout)
::
real_space_ham
type(print_output_type ),
intent(in)
::
print_output
real(kind=dp),
intent(in)
::
real_lattice (3,3)
integer,
intent(in)
::
num_wann
integer,
intent(in)
::
mp_grid (3)
complex(kind=dp),
intent(in)
::
ham_r (:,:,:)
integer,
intent(in)
::
irvec (:,:)
integer,
intent(inout)
::
nrpts
real(kind=dp),
intent(inout)
::
wannier_centres_translated (:,:)
integer,
intent(inout)
::
one_dim_vec
integer,
intent(inout)
::
nrpts_one_dim
integer,
intent(inout)
::
num_pl
integer,
intent(inout)
::
coord (3)
integer,
intent(inout),
allocatable
::
tran_sorted_idx (:)
real(kind=dp),
intent(inout),
allocatable
::
hr_one_dim (:,:,:)
integer,
intent(inout)
::
irvec_max
logical,
intent(in)
::
write_xyz
integer,
intent(in)
::
stdout
character(len=50),
intent(in)
::
seedname
type(timer_list_type ),
intent(inout)
::
timer
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
real(kind=dp),
intent(inout)
::
Array (:,:)
integer,
intent(in)
::
Array_groups (:)
integer,
intent(out),
allocatable
::
subgroup_info (:,:)
real(kind=dp),
intent(in)
::
tran_group_threshold
type(print_output_type ),
intent(in)
::
print_output
real(kind=dp),
intent(in)
::
wannier_centres_translated (:,:)
integer,
intent(in)
::
coord (3)
integer,
intent(in)
::
stdout
type(timer_list_type ),
intent(inout)
::
timer
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
real(kind=dp),
intent(inout)
::
non_sorted (:,:)
real(kind=dp),
intent(out)
::
sorted (:,:)
Arguments
Type
Intent Optional Attributes
Name
real(kind=dp),
intent(in)
::
array (:,:)
integer,
intent(out),
allocatable
::
array_groups (:)
real(kind=dp),
intent(in)
::
tran_group_threshold
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
real(kind=dp),
intent(in)
::
signatures (:,:)
integer,
intent(in)
::
num_G
type(atom_data_type ),
intent(in)
::
atom_data
type(transport_type ),
intent(inout)
::
transport
type(print_output_type ),
intent(in)
::
print_output
integer,
intent(in)
::
num_wann
real(kind=dp),
intent(in)
::
wannier_centres_translated (:,:)
integer,
intent(in)
::
coord (3)
integer,
intent(inout)
::
tran_sorted_idx (:)
logical,
intent(in)
::
write_xyz
integer,
intent(in)
::
stdout
character(len=50),
intent(in)
::
seedname
type(timer_list_type ),
intent(inout)
::
timer
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm
Arguments
Type
Intent Optional Attributes
Name
type(atom_data_type ),
intent(in)
::
atom_data
type(transport_type ),
intent(inout)
::
transport
real(kind=dp),
intent(in)
::
wannier_centres_translated (:,:)
integer,
intent(in)
::
tran_sorted_idx (:)
integer,
intent(in)
::
num_wann
character(len=50),
intent(in)
::
seedname
integer,
intent(in)
::
stdout
Arguments
Type
Intent Optional Attributes
Name
real(kind=dp),
intent(inout)
::
signatures (:,:)
type(print_output_type ),
intent(in)
::
print_output
type(transport_type ),
intent(in)
::
transport
integer,
intent(in)
::
num_wann
integer,
intent(in)
::
tran_sorted_idx (:)
real(kind=dp),
intent(inout)
::
hr_one_dim (:,:,-irvec_max:)
integer,
intent(in)
::
irvec_max
integer,
intent(in)
::
stdout
type(timer_list_type ),
intent(inout)
::
timer
Arguments
Type
Intent Optional Attributes
Name
logical,
intent(in)
::
pl_warning
type(real_space_ham_type ),
intent(inout)
::
real_space_ham
real(kind=dp),
intent(in),
allocatable
::
fermi_energy_list (:)
real(kind=dp),
intent(in)
::
kpt_latt (:,:)
integer,
intent(in)
::
num_wann
type(transport_type ),
intent(inout)
::
transport
type(print_output_type ),
intent(in)
::
print_output
real(kind=dp),
intent(in)
::
real_lattice (3,3)
integer,
intent(in)
::
mp_grid (3)
complex(kind=dp),
intent(in)
::
ham_r (:,:,:)
integer,
intent(in)
::
irvec (:,:)
integer,
intent(inout)
::
nrpts
real(kind=dp),
intent(in)
::
wannier_centres_translated (:,:)
integer,
intent(inout)
::
one_dim_vec
integer,
intent(inout)
::
nrpts_one_dim
integer,
intent(inout)
::
num_pl
integer,
intent(in)
::
coord (3)
integer,
intent(in)
::
tran_sorted_idx (:)
real(kind=dp),
intent(inout),
allocatable
::
hC (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hCR (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hL0 (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hL1 (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hLC (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hR0 (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hR1 (:,:)
real(kind=dp),
intent(inout),
allocatable
::
hr_one_dim (:,:,:)
integer,
intent(inout)
::
irvec_max
integer,
intent(in)
::
stdout
character(len=50),
intent(in)
::
seedname
type(timer_list_type ),
intent(inout)
::
timer
type(w90_error_type ),
intent(out),
allocatable
::
error
type(w90_comm_type ),
intent(in)
::
comm