Read/write routines specific to wannier90.x data types
Read parameters and calculate derived values
| Type | Intent | Optional | 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 |
Read parameters and calculate derived values
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
write wannier90 parameters to stdout
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
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)
| Type | Intent | Optional | 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 |
Estimate how much memory we will allocate
| Type | Intent | Optional | 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 |