w90_wannier90_readwrite Module

Read/write routines specific to wannier90.x data types


Uses

  • module~~w90_wannier90_readwrite~~UsesGraph module~w90_wannier90_readwrite w90_wannier90_readwrite module~w90_constants w90_constants module~w90_wannier90_readwrite->module~w90_constants module~w90_error w90_error module~w90_wannier90_readwrite->module~w90_error module~w90_readwrite w90_readwrite module~w90_wannier90_readwrite->module~w90_readwrite module~w90_types w90_types module~w90_wannier90_readwrite->module~w90_types module~w90_wannier90_types w90_wannier90_types module~w90_wannier90_readwrite->module~w90_wannier90_types module~w90_comms w90_comms module~w90_error->module~w90_comms module~w90_error_base w90_error_base module~w90_error->module~w90_error_base module~w90_readwrite->module~w90_constants module~w90_readwrite->module~w90_types module~w90_readwrite->module~w90_comms module~w90_types->module~w90_constants module~w90_wannier90_types->module~w90_constants module~w90_comms->module~w90_constants module~w90_comms->module~w90_error_base

Used by

  • module~~w90_wannier90_readwrite~~UsedByGraph module~w90_wannier90_readwrite w90_wannier90_readwrite proc~input_reader_special input_reader_special proc~input_reader_special->module~w90_wannier90_readwrite proc~w90_input_reader~2 w90_input_reader proc~w90_input_reader~2->module~w90_wannier90_readwrite proc~w90_input_setopt w90_input_setopt proc~w90_input_setopt->module~w90_wannier90_readwrite proc~w90_print_info~2 w90_print_info proc~w90_print_info~2->module~w90_wannier90_readwrite proc~wann_main_gamma wann_main_gamma proc~wann_main_gamma->module~w90_wannier90_readwrite proc~write_chkpt write_chkpt proc~write_chkpt->module~w90_wannier90_readwrite

Subroutines

public subroutine w90_wannier90_readwrite_read_special(settings, atom_data, kmesh_input, kmesh_info, kpt_latt, wann_control, proj, proj_input, select_proj, w90_system, w90_calculation, real_lattice, bohr, mp_grid, num_bands, exclude_bands, num_kpts, num_proj, num_wann, gamma_only, lhasproj, use_bloch_phases, distk, stdout, error, comm)

Read parameters and calculate derived values

Read more…

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(atom_data_type), intent(inout) :: atom_data
type(kmesh_input_type), intent(inout) :: kmesh_input
type(kmesh_info_type), intent(inout) :: kmesh_info
real(kind=dp), intent(inout), allocatable :: kpt_latt(:,:)
type(wann_control_type), intent(inout) :: wann_control
type(proj_type), intent(inout), allocatable :: proj(:)
type(proj_type), intent(inout), allocatable :: proj_input(:)
type(select_projection_type), intent(inout) :: select_proj
type(w90_system_type), intent(inout) :: w90_system
type(w90_calculation_type), intent(inout) :: w90_calculation
real(kind=dp), intent(inout) :: real_lattice(3,3)
real(kind=dp), intent(in) :: bohr
integer, intent(inout) :: mp_grid(3)
integer, intent(inout) :: num_bands
integer, intent(inout), allocatable :: exclude_bands(:)
integer, intent(inout) :: num_kpts
integer, intent(inout) :: num_proj
integer, intent(inout) :: num_wann
logical, intent(inout) :: gamma_only
logical, intent(inout) :: lhasproj
logical, intent(inout) :: use_bloch_phases
integer, intent(inout), allocatable :: distk(:)
integer, intent(in) :: stdout
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

public subroutine w90_wannier90_readwrite_read(settings, band_plot, dis_control, dis_spheres, dis_manifold, fermi_energy_list, fermi_surface_data, output_file, wvfn_read, wann_control, real_space_ham, kpoint_path, w90_system, tran, print_output, wann_plot, ws_region, real_lattice, w90_calculation, bohr, symmetrize_eps, num_bands, num_kpts, num_wann, optimisation, calc_only_A, cp_pp, gamma_only, lsitesymmetry, use_bloch_phases, seedname, stdout, error, comm)

Read parameters and calculate derived values

Read more…

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(band_plot_type), intent(inout) :: band_plot
type(dis_control_type), intent(inout) :: dis_control
type(dis_spheres_type), intent(inout) :: dis_spheres
type(dis_manifold_type), intent(inout) :: dis_manifold
real(kind=dp), intent(inout), allocatable :: fermi_energy_list(:)
type(fermi_surface_plot_type), intent(inout) :: fermi_surface_data
type(output_file_type), intent(inout) :: output_file
type(wvfn_read_type), intent(inout) :: wvfn_read
type(wann_control_type), intent(inout) :: wann_control
type(real_space_ham_type), intent(inout) :: real_space_ham
type(kpoint_path_type), intent(inout) :: kpoint_path
type(w90_system_type), intent(inout) :: w90_system
type(transport_type), intent(inout) :: tran
type(print_output_type), intent(inout) :: print_output
type(wannier_plot_type), intent(inout) :: wann_plot
type(ws_region_type), intent(inout) :: ws_region
real(kind=dp), intent(inout) :: real_lattice(3,3)
type(w90_calculation_type), intent(inout) :: w90_calculation
real(kind=dp), intent(in) :: bohr
real(kind=dp), intent(inout) :: symmetrize_eps
integer, intent(inout) :: num_bands
integer, intent(inout) :: num_kpts
integer, intent(inout) :: num_wann
integer, intent(inout) :: optimisation
logical, intent(out) :: calc_only_A
logical, intent(out) :: cp_pp
logical, intent(inout) :: gamma_only
logical, intent(inout) :: lsitesymmetry
logical, intent(out) :: use_bloch_phases
character(len=*), intent(in) :: seedname
integer, intent(in) :: stdout
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_sym(settings, symmetrize_eps, lsitesymmetry, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
real(kind=dp), intent(inout) :: symmetrize_eps
logical, intent(inout) :: lsitesymmetry
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_w90_calcs(settings, w90_calculation, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(w90_calculation_type), intent(inout) :: w90_calculation
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_transport(settings, transport, tran, restart, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
logical, intent(in) :: transport
type(transport_type), intent(inout) :: tran
character(len=*), intent(inout) :: restart
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_dist_cutoff(settings, real_space_ham, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(real_space_ham_type), intent(inout) :: real_space_ham
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_wannierise(settings, wann_control, num_wann, stdout, iprint, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(wann_control_type), intent(inout) :: wann_control
integer, intent(in) :: num_wann
integer, intent(in) :: stdout
integer, intent(in) :: iprint
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_disentangle(settings, dis_control, dis_spheres, num_bands, num_wann, bohr, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(dis_control_type), intent(inout) :: dis_control
type(dis_spheres_type), intent(inout) :: dis_spheres
integer, intent(in) :: num_bands
integer, intent(in) :: num_wann
real(kind=dp), intent(in) :: bohr
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_post_proc(settings, cp_pp, pp_only_A, postproc_setup, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
logical, intent(inout) :: cp_pp
logical, intent(inout) :: pp_only_A
logical, intent(inout) :: postproc_setup
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_restart(settings, w90_calculation, seedname, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(w90_calculation_type), intent(inout) :: w90_calculation
character(len=*), intent(in) :: seedname
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_outfiles(settings, output_file, num_kpts, num_valence_bands, disentanglement, gamma_only, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(output_file_type), intent(inout) :: output_file
integer, intent(in) :: num_kpts
integer, intent(in) :: num_valence_bands
logical, intent(in) :: disentanglement
logical, intent(in) :: gamma_only
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_plot_info(settings, wvfn_read, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(wvfn_read_type), intent(inout) :: wvfn_read
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_band_plot(settings, band_plot, num_wann, has_kpath, has_explicit_kpath, bands_plot, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(band_plot_type), intent(inout) :: band_plot
integer, intent(in) :: num_wann
logical, intent(in) :: has_kpath
logical, intent(in) :: has_explicit_kpath
logical, intent(in) :: bands_plot
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_wann_plot(settings, wann_plot, num_wann, wannier_plot, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(wannier_plot_type), intent(inout) :: wann_plot
integer, intent(in) :: num_wann
logical, intent(in) :: wannier_plot
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_fermi_surface(settings, fermi_surface_data, fermi_surface_plot, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(fermi_surface_plot_type), intent(inout) :: fermi_surface_data
logical, intent(in) :: fermi_surface_plot
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_one_dim(settings, w90_calculation, band_plot, real_space_ham, tran_read_ht, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(w90_calculation_type), intent(in) :: w90_calculation
type(band_plot_type), intent(in) :: band_plot
type(real_space_ham_type), intent(inout) :: real_space_ham
logical, intent(in) :: tran_read_ht
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_hamil(settings, hamiltonian, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(real_space_ham_type), intent(inout) :: hamiltonian
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_bloch_phase(settings, use_bloch_phases, disentanglement, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
logical, intent(inout) :: use_bloch_phases
logical, intent(in) :: disentanglement
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_explicit_kpts(settings, w90_calculation, kmesh_info, num_kpts, bohr, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(w90_calculation_type), intent(in) :: w90_calculation
type(kmesh_info_type), intent(inout) :: kmesh_info
integer, intent(in) :: num_kpts
real(kind=dp), intent(in) :: bohr
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_projections(settings, proj, proj_input, use_bloch_phases, lhasproj, guiding_centres, select_proj, num_proj, atom_data, recip_lattice, num_wann, gamma_only, spinors, bohr, stdout, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(proj_type), intent(inout), allocatable :: proj(:)
type(proj_type), intent(inout), allocatable :: proj_input(:)
logical, intent(in) :: use_bloch_phases
logical, intent(out) :: lhasproj
logical, intent(in) :: guiding_centres
type(select_projection_type), intent(inout) :: select_proj
integer, intent(inout) :: num_proj
type(atom_data_type), intent(in) :: atom_data
real(kind=dp), intent(in) :: recip_lattice(3,3)
integer, intent(in) :: num_wann
logical, intent(in) :: gamma_only
logical, intent(in) :: spinors
real(kind=dp), intent(in) :: bohr
integer, intent(in) :: stdout
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

private subroutine w90_wannier90_readwrite_read_constrained_centres(settings, wann_control, real_lattice, num_wann, iprint, stdout, error, comm)

Arguments

Type IntentOptional Attributes Name
type(settings_type), intent(inout) :: settings
type(wann_control_type), intent(inout) :: wann_control
real(kind=dp), intent(in) :: real_lattice(3,3)
integer, intent(in) :: num_wann
integer, intent(in) :: iprint
integer, intent(in) :: stdout
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

public subroutine w90_wannier90_readwrite_write(atom_data, band_plot, dis_control, dis_spheres, fermi_energy_list, fermi_surface_data, kpt_latt, output_file, wvfn_read, wann_control, proj, proj_input, real_space_ham, select_proj, kpoint_path, tran, print_output, wannier_data, wann_plot, w90_calculation, real_lattice, symmetrize_eps, mp_grid, num_bands, num_kpts, num_proj, num_wann, optimisation, cp_pp, gamma_only, lsitesymmetry, spinors, use_bloch_phases, stdout)

write wannier90 parameters to stdout

Arguments

Type IntentOptional Attributes Name
type(atom_data_type), intent(in) :: atom_data
type(band_plot_type), intent(in) :: band_plot
type(dis_control_type), intent(in) :: dis_control
type(dis_spheres_type), intent(in) :: dis_spheres
real(kind=dp), intent(in), allocatable :: fermi_energy_list(:)
type(fermi_surface_plot_type), intent(in) :: fermi_surface_data
real(kind=dp), intent(in) :: kpt_latt(:,:)
type(output_file_type), intent(in) :: output_file
type(wvfn_read_type), intent(in) :: wvfn_read
type(wann_control_type), intent(in) :: wann_control
type(proj_type), intent(in), allocatable :: proj(:)
type(proj_type), intent(in), allocatable :: proj_input(:)
type(real_space_ham_type), intent(in) :: real_space_ham
type(select_projection_type), intent(in) :: select_proj
type(kpoint_path_type), intent(in) :: kpoint_path
type(transport_type), intent(in) :: tran
type(print_output_type), intent(in) :: print_output
type(wannier_data_type), intent(in) :: wannier_data
type(wannier_plot_type), intent(in) :: wann_plot
type(w90_calculation_type), intent(in) :: w90_calculation
real(kind=dp), intent(in) :: real_lattice(3,3)
real(kind=dp), intent(in) :: symmetrize_eps
integer, intent(in) :: mp_grid(3)
integer, intent(in) :: num_bands
integer, intent(in) :: num_kpts
integer, intent(in) :: num_proj
integer, intent(in) :: num_wann
integer, intent(in) :: optimisation
logical, intent(in) :: cp_pp
logical, intent(in) :: gamma_only
logical, intent(in) :: lsitesymmetry
logical, intent(in) :: spinors
logical, intent(in) :: use_bloch_phases
integer, intent(in) :: stdout

public subroutine w90_wannier90_readwrite_w90_dealloc(atom_data, band_plot, dis_spheres, dis_manifold, exclude_bands, kmesh_input, kpt_latt, wann_control, proj, proj_input, select_proj, kpoint_path, wannier_data, wann_plot, eigval, error, comm)

Arguments

Type IntentOptional Attributes Name
type(atom_data_type), intent(inout) :: atom_data
type(band_plot_type), intent(inout) :: band_plot
type(dis_spheres_type), intent(inout) :: dis_spheres
type(dis_manifold_type), intent(inout) :: dis_manifold
integer, intent(inout), allocatable :: exclude_bands(:)
type(kmesh_input_type), intent(inout) :: kmesh_input
real(kind=dp), intent(inout), allocatable :: kpt_latt(:,:)
type(wann_control_type), intent(inout) :: wann_control
type(proj_type), intent(inout), allocatable :: proj(:)
type(proj_type), intent(inout), allocatable :: proj_input(:)
type(select_projection_type), intent(inout) :: select_proj
type(kpoint_path_type), intent(inout) :: kpoint_path
type(wannier_data_type), intent(inout) :: wannier_data
type(wannier_plot_type), intent(inout) :: wann_plot
real(kind=dp), intent(inout), allocatable :: eigval(:,:)
type(w90_error_type), intent(out), allocatable :: error
type(w90_comm_type), intent(in) :: comm

public subroutine w90_wannier90_readwrite_write_chkpt(chkpt, exclude_bands, wannier_data, kmesh_info, kpt_latt, num_kpts, dis_manifold, num_bands, num_wann, u_matrix, u_matrix_opt, m_matrix, mp_grid, real_lattice, omega_invariant, have_disentangled, iprint, stdout, seedname)

Write checkpoint file IMPORTANT! If you change the chkpt format, adapt accordingly also the w90chk2chk.x utility! note that this routine writes the full u_matrix and the m_matrix --remember to gather them from u_matrix_loc and m_matrix_loc first! (nothing here is parallel)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: chkpt
integer, intent(in), allocatable :: exclude_bands(:)
type(wannier_data_type), intent(in) :: wannier_data
type(kmesh_info_type), intent(in) :: kmesh_info
real(kind=dp), intent(in) :: kpt_latt(:,:)
integer, intent(in) :: num_kpts
type(dis_manifold_type), intent(in) :: dis_manifold
integer, intent(in) :: num_bands
integer, intent(in) :: num_wann
complex(kind=dp), intent(in) :: u_matrix(:,:,:)
complex(kind=dp), intent(in) :: u_matrix_opt(:,:,:)
complex(kind=dp), intent(in) :: m_matrix(:,:,:,:)
integer, intent(in) :: mp_grid(3)
real(kind=dp), intent(in) :: real_lattice(3,3)
real(kind=dp), intent(in) :: omega_invariant
logical, intent(in) :: have_disentangled
integer, intent(in) :: iprint
integer, intent(in) :: stdout
character(len=*), intent(in) :: seedname

public subroutine w90_wannier90_readwrite_memory_estimate(atom_data, kmesh_info, wann_control, proj_input, print_output, num_bands, num_kpts, num_proj, num_wann, optimisation, gamma_only, stdout)

Estimate how much memory we will allocate

Arguments

Type IntentOptional Attributes Name
type(atom_data_type), intent(in) :: atom_data
type(kmesh_info_type), intent(in) :: kmesh_info
type(wann_control_type), intent(in) :: wann_control
type(proj_type), intent(in), allocatable :: proj_input(:)
type(print_output_type), intent(in) :: print_output
integer, intent(in) :: num_bands
integer, intent(in) :: num_kpts
integer, intent(in) :: num_proj
integer, intent(in) :: num_wann
integer, intent(in) :: optimisation
logical, intent(in) :: gamma_only
integer, intent(in) :: stdout