w90_parameters Module

This module contains parameters to control the actions of wannier90. Also routines to read the parameters and write them out again.


Uses

  • module~~w90_parameters~~UsesGraph module~w90_parameters w90_parameters module~w90_constants w90_constants module~w90_parameters->module~w90_constants module~w90_io w90_io module~w90_parameters->module~w90_io module~w90_io->module~w90_constants

Used by

  • module~~w90_parameters~~UsedByGraph module~w90_parameters w90_parameters module~w90_ws_distance w90_ws_distance module~w90_ws_distance->module~w90_parameters proc~kslice_print_info kslice_print_info proc~kslice_print_info->module~w90_parameters proc~wigner_seitz wigner_seitz proc~wigner_seitz->module~w90_parameters proc~wann_domega wann_domega proc~wann_domega->module~w90_parameters proc~wann_phases wann_phases proc~wann_phases->module~w90_parameters proc~tran_lcr_2c2_build_ham tran_lcr_2c2_build_ham proc~tran_lcr_2c2_build_ham->module~w90_parameters proc~get_ff_r get_FF_R proc~get_ff_r->module~w90_parameters module~w90_overlap w90_overlap module~w90_overlap->module~w90_parameters proc~wann_main_gamma wann_main_gamma proc~wann_main_gamma->module~w90_parameters proc~spin_get_moment_k spin_get_moment_k proc~spin_get_moment_k->module~w90_parameters proc~sitesym_symmetrize_rotation sitesym_symmetrize_rotation proc~sitesym_symmetrize_rotation->module~w90_parameters proc~symmetrize_ukirr symmetrize_ukirr proc~symmetrize_ukirr->module~w90_parameters proc~script_fermi_lines script_fermi_lines proc~script_fermi_lines->module~w90_parameters proc~conv_write_spn conv_write_spn proc~conv_write_spn->module~w90_parameters proc~overlap_rotate overlap_rotate proc~overlap_rotate->module~w90_parameters proc~pw90common_fourier_r_to_k pw90common_fourier_R_to_k proc~pw90common_fourier_r_to_k->module~w90_parameters proc~pw90common_fourier_r_to_k->module~w90_ws_distance proc~kmesh_spacing_mesh kmesh_spacing_mesh proc~kmesh_spacing_mesh->module~w90_parameters proc~overlap_allocate overlap_allocate proc~overlap_allocate->module~w90_parameters proc~wann_calc_projection wann_calc_projection proc~wann_calc_projection->module~w90_parameters proc~wham_get_eig_uu_hh_aa_sc_tb_conv wham_get_eig_UU_HH_AA_sc_TB_conv proc~wham_get_eig_uu_hh_aa_sc_tb_conv->module~w90_parameters proc~gyrotropic_get_k_list gyrotropic_get_k_list proc~gyrotropic_get_k_list->module~w90_parameters proc~conv_read_spn conv_read_spn proc~conv_read_spn->module~w90_parameters proc~pw90common_wanint_param_dist pw90common_wanint_param_dist proc~pw90common_wanint_param_dist->module~w90_parameters proc~pw90common_fourier_r_to_k_new_second_d_tb_conv pw90common_fourier_R_to_k_new_second_d_TB_conv proc~pw90common_fourier_r_to_k_new_second_d_tb_conv->module~w90_parameters proc~pw90common_fourier_r_to_k_new_second_d_tb_conv->module~w90_ws_distance proc~get_hh_r get_HH_R proc~get_hh_r->module~w90_parameters proc~overlap_dealloc overlap_dealloc proc~overlap_dealloc->module~w90_parameters proc~pw90common_get_occ pw90common_get_occ proc~pw90common_get_occ->module~w90_parameters proc~sitesym_symmetrize_gradient sitesym_symmetrize_gradient proc~sitesym_symmetrize_gradient->module~w90_parameters proc~master_sort_and_group master_sort_and_group proc~master_sort_and_group->module~w90_parameters proc~gyrotropic_outprint_tensor gyrotropic_outprint_tensor proc~gyrotropic_outprint_tensor->module~w90_parameters proc~hamiltonian_write_rmn hamiltonian_write_rmn proc~hamiltonian_write_rmn->module~w90_parameters proc~hamiltonian_write_tb hamiltonian_write_tb proc~hamiltonian_write_tb->module~w90_parameters proc~dos_get_levelspacing dos_get_levelspacing proc~dos_get_levelspacing->module~w90_parameters proc~hamiltonian_get_hr hamiltonian_get_hr proc~hamiltonian_get_hr->module~w90_parameters proc~tran_bulk tran_bulk proc~tran_bulk->module~w90_parameters proc~k_path_get_points k_path_get_points proc~k_path_get_points->module~w90_parameters proc~wannier_run wannier_run proc~wannier_run->module~w90_parameters proc~wannier_run->module~w90_overlap module~w90_disentangle w90_disentangle proc~wannier_run->module~w90_disentangle module~w90_kmesh w90_kmesh proc~wannier_run->module~w90_kmesh proc~ws_write_vec ws_write_vec proc~ws_write_vec->module~w90_parameters proc~r_wz_sc R_wz_sc proc~r_wz_sc->module~w90_parameters proc~gyrotropic_main gyrotropic_main proc~gyrotropic_main->module~w90_parameters proc~overlap_read overlap_read proc~overlap_read->module~w90_parameters proc~wann_write_r2mn wann_write_r2mn proc~wann_write_r2mn->module~w90_parameters proc~tran_write_xyz tran_write_xyz proc~tran_write_xyz->module~w90_parameters proc~pw90common_fourier_r_to_k_vec pw90common_fourier_R_to_k_vec proc~pw90common_fourier_r_to_k_vec->module~w90_parameters proc~pw90common_fourier_r_to_k_vec->module~w90_ws_distance module~w90_disentangle->module~w90_parameters proc~wham_get_eig_deleig_tb_conv wham_get_eig_deleig_TB_conv proc~wham_get_eig_deleig_tb_conv->module~w90_parameters proc~fourier_q_to_r fourier_q_to_R proc~fourier_q_to_r->module~w90_parameters proc~pw90common_fourier_r_to_k_vec_dadb pw90common_fourier_R_to_k_vec_dadb proc~pw90common_fourier_r_to_k_vec_dadb->module~w90_parameters proc~pw90common_fourier_r_to_k_vec_dadb->module~w90_ws_distance proc~berry_get_sc_klist berry_get_sc_klist proc~berry_get_sc_klist->module~w90_parameters proc~wann_main wann_main proc~wann_main->module~w90_parameters proc~sitesym_symmetrize_zmatrix sitesym_symmetrize_zmatrix proc~sitesym_symmetrize_zmatrix->module~w90_parameters proc~get_aa_r get_AA_R proc~get_aa_r->module~w90_parameters proc~dos_get_k dos_get_k proc~dos_get_k->module~w90_parameters proc~get_ss_r get_SS_R proc~get_ss_r->module~w90_parameters proc~get_win_min get_win_min proc~get_win_min->module~w90_parameters proc~overlap_project overlap_project proc~overlap_project->module~w90_parameters proc~pw90common_fourier_r_to_k_vec_dadb_tb_conv pw90common_fourier_R_to_k_vec_dadb_TB_conv proc~pw90common_fourier_r_to_k_vec_dadb_tb_conv->module~w90_parameters proc~pw90common_fourier_r_to_k_vec_dadb_tb_conv->module~w90_ws_distance proc~wann_omega wann_omega proc~wann_omega->module~w90_parameters proc~wann_write_vdw_data wann_write_vdw_data proc~wann_write_vdw_data->module~w90_parameters proc~sitesym_symmetrize_u_matrix sitesym_symmetrize_u_matrix proc~sitesym_symmetrize_u_matrix->module~w90_parameters proc~wann_check_unitarity wann_check_unitarity proc~wann_check_unitarity->module~w90_parameters program~wannier wannier program~wannier->module~w90_parameters program~wannier->module~w90_overlap program~wannier->module~w90_disentangle program~wannier->module~w90_kmesh proc~plot_bvec plot_bvec proc~plot_bvec->module~w90_parameters proc~wann_omega_gamma wann_omega_gamma proc~wann_omega_gamma->module~w90_parameters program~postw90 postw90 program~postw90->module~w90_parameters module~w90_geninterp w90_geninterp program~postw90->module~w90_geninterp program~postw90->module~w90_kmesh module~w90_boltzwann w90_boltzwann program~postw90->module~w90_boltzwann proc~conv_write_chkpt conv_write_chkpt proc~conv_write_chkpt->module~w90_parameters proc~gyrotropic_get_noa_k gyrotropic_get_NOA_k proc~gyrotropic_get_noa_k->module~w90_parameters proc~wham_get_d_h wham_get_D_h proc~wham_get_d_h->module~w90_parameters proc~plot_u_matrices plot_u_matrices proc~plot_u_matrices->module~w90_parameters proc~pw90common_fourier_r_to_k_new_second_d pw90common_fourier_R_to_k_new_second_d proc~pw90common_fourier_r_to_k_new_second_d->module~w90_parameters proc~pw90common_fourier_r_to_k_new_second_d->module~w90_ws_distance proc~tdf_kpt TDF_kpt proc~tdf_kpt->module~w90_parameters proc~group group proc~group->module~w90_parameters proc~get_cc_r get_CC_R proc~get_cc_r->module~w90_parameters proc~wannier_setup wannier_setup proc~wannier_setup->module~w90_parameters proc~wannier_setup->module~w90_kmesh proc~sitesym_replace_d_matrix_band sitesym_replace_d_matrix_band proc~sitesym_replace_d_matrix_band->module~w90_parameters proc~tran_lcr tran_lcr proc~tran_lcr->module~w90_parameters proc~sitesym_slim_d_matrix_band sitesym_slim_d_matrix_band proc~sitesym_slim_d_matrix_band->module~w90_parameters proc~conv_write_spn_fmt conv_write_spn_fmt proc~conv_write_spn_fmt->module~w90_parameters proc~hamiltonian_wigner_seitz hamiltonian_wigner_seitz proc~hamiltonian_wigner_seitz->module~w90_parameters proc~kmesh_spacing_singleinteger kmesh_spacing_singleinteger proc~kmesh_spacing_singleinteger->module~w90_parameters proc~pw90common_wanint_setup pw90common_wanint_setup proc~pw90common_wanint_setup->module~w90_parameters module~w90_geninterp->module~w90_parameters proc~tran_find_integral_signatures tran_find_integral_signatures proc~tran_find_integral_signatures->module~w90_parameters proc~overlap_project_gamma overlap_project_gamma proc~overlap_project_gamma->module~w90_parameters proc~gyrotropic_get_noa_bnl_orb gyrotropic_get_NOA_Bnl_orb proc~gyrotropic_get_noa_bnl_orb->module~w90_parameters proc~get_bb_r get_BB_R proc~get_bb_r->module~w90_parameters proc~wham_get_eig_deleig wham_get_eig_deleig proc~wham_get_eig_deleig->module~w90_parameters proc~conv_write_chkpt_fmt conv_write_chkpt_fmt proc~conv_write_chkpt_fmt->module~w90_parameters proc~gyrotropic_get_curv_w_k gyrotropic_get_curv_w_k proc~gyrotropic_get_curv_w_k->module~w90_parameters proc~tran_reduce_hr tran_reduce_hr proc~tran_reduce_hr->module~w90_parameters proc~spin_get_moment spin_get_moment proc~spin_get_moment->module~w90_parameters proc~berry_get_imfgh_klist berry_get_imfgh_klist proc~berry_get_imfgh_klist->module~w90_parameters proc~wham_get_eig_uu_hh_jjlist wham_get_eig_UU_HH_JJlist proc~wham_get_eig_uu_hh_jjlist->module~w90_parameters proc~berry_get_shc_klist berry_get_shc_klist proc~berry_get_shc_klist->module~w90_parameters proc~gyrotropic_outprint_tensor_w gyrotropic_outprint_tensor_w proc~gyrotropic_outprint_tensor_w->module~w90_parameters proc~plot_interpolate_bands plot_interpolate_bands proc~plot_interpolate_bands->module~w90_parameters proc~plot_interpolate_bands->module~w90_ws_distance proc~spin_get_s spin_get_S proc~spin_get_s->module~w90_parameters proc~wham_get_jjp_jjm_list wham_get_JJp_JJm_list proc~wham_get_jjp_jjm_list->module~w90_parameters proc~tran_get_ht tran_get_ht proc~tran_get_ht->module~w90_parameters proc~conv_read_chkpt conv_read_chkpt proc~conv_read_chkpt->module~w90_parameters proc~ws_translate_dist ws_translate_dist proc~ws_translate_dist->module~w90_parameters proc~plot_wannier plot_wannier proc~plot_wannier->module~w90_parameters proc~conv_read_spn_fmt conv_read_spn_fmt proc~conv_read_spn_fmt->module~w90_parameters proc~berry_get_kubo_k berry_get_kubo_k proc~berry_get_kubo_k->module~w90_parameters proc~tran_cut_hr_one_dim tran_cut_hr_one_dim proc~tran_cut_hr_one_dim->module~w90_parameters proc~tran_lcr_2c2_sort tran_lcr_2c2_sort proc~tran_lcr_2c2_sort->module~w90_parameters module~w90_kmesh->module~w90_parameters proc~k_path k_path proc~k_path->module~w90_parameters proc~check_and_sort_similar_centres check_and_sort_similar_centres proc~check_and_sort_similar_centres->module~w90_parameters proc~hamiltonian_setup hamiltonian_setup proc~hamiltonian_setup->module~w90_parameters proc~wann_svd_omega_i wann_svd_omega_i proc~wann_svd_omega_i->module~w90_parameters proc~get_shc_r get_SHC_R proc~get_shc_r->module~w90_parameters proc~wham_get_deleig_a wham_get_deleig_a proc~wham_get_deleig_a->module~w90_parameters proc~pw90common_fourier_r_to_k_new pw90common_fourier_R_to_k_new proc~pw90common_fourier_r_to_k_new->module~w90_parameters proc~pw90common_fourier_r_to_k_new->module~w90_ws_distance proc~plot_main plot_main proc~plot_main->module~w90_parameters proc~plot_main->module~w90_ws_distance proc~k_slice k_slice proc~k_slice->module~w90_parameters proc~wham_get_d_h_p_value wham_get_D_h_P_value proc~wham_get_d_h_p_value->module~w90_parameters proc~pw90common_wanint_data_dist pw90common_wanint_data_dist proc~pw90common_wanint_data_dist->module~w90_parameters proc~dos_main dos_main proc~dos_main->module~w90_parameters proc~plot_fermi_surface plot_fermi_surface proc~plot_fermi_surface->module~w90_parameters proc~get_gauge_overlap_matrix get_gauge_overlap_matrix proc~get_gauge_overlap_matrix->module~w90_parameters proc~sitesym_read sitesym_read proc~sitesym_read->module~w90_parameters proc~conv_read_chkpt_fmt conv_read_chkpt_fmt proc~conv_read_chkpt_fmt->module~w90_parameters proc~wham_get_eig_uu_hh_aa_sc wham_get_eig_UU_HH_AA_sc proc~wham_get_eig_uu_hh_aa_sc->module~w90_parameters proc~sitesym_dis_extract_symmetry sitesym_dis_extract_symmetry proc~sitesym_dis_extract_symmetry->module~w90_parameters proc~tran_parity_enforce tran_parity_enforce proc~tran_parity_enforce->module~w90_parameters proc~wann_write_xyz wann_write_xyz proc~wann_write_xyz->module~w90_parameters proc~calctdfanddos calcTDFandDOS proc~calctdfanddos->module~w90_parameters module~w90_boltzwann->module~w90_parameters proc~berry_main berry_main proc~berry_main->module~w90_parameters proc~k_path_print_info k_path_print_info proc~k_path_print_info->module~w90_parameters proc~hamiltonian_write_hr hamiltonian_write_hr proc~hamiltonian_write_hr->module~w90_parameters proc~wham_get_d_h_a wham_get_D_h_a proc~wham_get_d_h_a->module~w90_parameters proc~wham_get_occ_mat_list wham_get_occ_mat_list proc~wham_get_occ_mat_list->module~w90_parameters proc~spin_get_nk spin_get_nk proc~spin_get_nk->module~w90_parameters proc~tran_main tran_main proc~tran_main->module~w90_parameters

Contents

iprint energy_unit length_unit wvfn_formatted spn_formatted uHu_formatted berry_uHu_formatted spin num_bands num_dump_cycles num_print_cycles slwf_num selective_loc slwf_constrain ccentres_frac ccentres_cart slwf_lambda devel_flag adpt_smr adpt_smr_fac adpt_smr_max smr_fixed_en_width library_param_read_first_pass spin_moment spin_axis_polar spin_axis_azimuth use_degen_pert degen_thr spin_decomp num_valence_bands found_fermi_energy scissors_shift smr_index exclude_bands num_wann mp_grid gamma_only dis_win_min dis_win_max dis_froz_min dis_froz_max dis_num_iter dis_mix_ratio dis_conv_tol dis_conv_window dis_spheres_first_wann dis_spheres_num dis_spheres num_iter num_cg_steps conv_tol conv_window wannier_plot wannier_plot_list wannier_plot_supercell wannier_plot_format wannier_plot_mode wannier_plot_spinor_mode wannier_plot_spinor_phase write_u_matrices bands_plot write_bvec bands_num_points bands_plot_format bands_plot_mode bands_plot_project bands_plot_dim write_hr write_rmn write_tb hr_cutoff dist_cutoff dist_cutoff_mode dist_cutoff_hc one_dim_axis use_ws_distance ws_distance_tol ws_search_size fermi_surface_plot fermi_surface_num_points fermi_surface_plot_format fermi_energy kpath kpath_task kpath_num_points kpath_bands_colour kslice kslice_task kslice_corner kslice_b1 kslice_b2 kslice_2dkmesh kslice_fermi_lines_colour dos dos_plot dos_task dos_adpt_smr dos_adpt_smr_fac dos_smr_index dos_smr_fixed_en_width dos_adpt_smr_max dos_energy_max dos_energy_min dos_energy_step num_dos_project dos_project dos_kmesh_spacing dos_kmesh berry berry_task berry_kmesh_spacing berry_kmesh berry_curv_adpt_kmesh berry_curv_adpt_kmesh_thresh berry_curv_unit kubo_adpt_smr kubo_adpt_smr_fac kubo_smr_index kubo_smr_fixed_en_width kubo_adpt_smr_max sc_phase_conv sc_eta sc_w_thr wanint_kpoint_file transl_inv shc_freq_scan shc_alpha shc_beta shc_gamma shc_bandshift shc_bandshift_firstband shc_bandshift_energyshift gyrotropic gyrotropic_task gyrotropic_kmesh gyrotropic_kmesh_spacing gyrotropic_smr_index gyrotropic_smr_fixed_en_width gyrotropic_freq_min gyrotropic_freq_max gyrotropic_freq_step gyrotropic_nfreq gyrotropic_freq_list gyrotropic_box_corner gyrotropic_box gyrotropic_box_tmp gyrotropic_degen_thresh gyrotropic_band_list gyrotropic_num_bands smr_max_arg gyrotropic_smr_max_arg gyrotropic_eigval_max fermi_energy_scan fermi_energy_min fermi_energy_max fermi_energy_step nfermi fermi_energy_list kubo_freq_min kubo_freq_max kubo_freq_step kubo_nfreq kubo_freq_list kubo_eigval_max spin_kmesh_spacing spin_kmesh kmesh_spacing kmesh global_kmesh_set geninterp geninterp_alsofirstder geninterp_single_file boltzwann boltz_calc_also_dos boltz_2d_dir_num boltz_2d_dir boltz_dos_energy_step boltz_dos_energy_min boltz_dos_energy_max boltz_dos_adpt_smr boltz_dos_smr_fixed_en_width boltz_dos_adpt_smr_fac boltz_dos_adpt_smr_max boltz_mu_min boltz_mu_max boltz_mu_step boltz_temp_min boltz_temp_max boltz_temp_step boltz_kmesh_spacing boltz_kmesh boltz_tdf_energy_step boltz_TDF_smr_index boltz_dos_smr_index boltz_relax_time boltz_TDF_smr_fixed_en_width boltz_bandshift boltz_bandshift_firstband boltz_bandshift_energyshift transport tran_easy_fix transport_mode tran_win_min tran_win_max tran_energy_step tran_num_bb tran_num_ll tran_num_rr tran_num_cc tran_num_lc tran_num_cr tran_num_bandc tran_write_ht tran_read_ht tran_use_same_lead tran_num_cell_ll tran_num_cell_rr tran_group_threshold translation_centre_frac num_shells skip_B1_tests explicit_nnkpts shell_list kpt_latt real_lattice postproc_setup cp_pp calc_only_A use_bloch_phases restart write_r2mn guiding_centres num_guide_cycles num_no_guide_iter fixed_step trial_step precond write_proj timing_level spinors num_elec_per_state translate_home_cell write_xyz write_hr_diag conv_noise_amp conv_noise_num wannier_plot_radius wannier_plot_scale search_shells kmesh_tol optimisation write_vdw_data omega_invariant checkpoint have_disentangled atoms_pos_frac atoms_pos_cart atoms_species_num atoms_label atoms_symbol num_atoms num_species lhasproj input_proj_site input_proj_l input_proj_m input_proj_s input_proj_s_qaxis input_proj_z input_proj_x input_proj_radial input_proj_zona proj_site proj_l proj_m proj_s proj_s_qaxis proj_z proj_x proj_radial proj_zona num_proj lselproj num_select_projections select_projections proj2wann_map auto_projections num_kpts recip_lattice cell_volume real_metric recip_metric bands_num_spec_points bands_label bands_spec_points kpt_cart disentanglement lenconfac num_wannier_plot num_bands_project num_exclude_bands lfixstep nnh nntot nnlist neigh nncell wbtot wb bk bka ndimwin lwindow frozen_states a_matrix m_matrix_orig m_matrix_orig_local eigval eig_found u_matrix_opt u_matrix m_matrix m_matrix_local lsitesymmetry symmetrize_eps max_shells num_nnmax library ispostw90 effective_model wannier_centres wannier_spreads omega_total omega_tilde automatic_translation one_dim_dir num_lines in_data ctmp ltmp hr_plot

Variables

TypeVisibility AttributesNameInitial
integer, public, save:: iprint

Controls the verbosity of the output

character(len=20), public, save:: energy_unit

Units for energy

character(len=20), public, save:: length_unit

Units for length

logical, public, save:: wvfn_formatted

Read the wvfn from fortran formatted file

logical, public, save:: spn_formatted

Read the spin from fortran formatted file

logical, public, save:: uHu_formatted
logical, public, save:: berry_uHu_formatted

Read the uHu from fortran formatted file

integer, public, save:: spin

Spin up=1 down=2

integer, public, save:: num_bands

Number of bands

integer, public, save:: num_dump_cycles

Number of steps before writing checkpoint

integer, public, save:: num_print_cycles

Number of steps between writing output

integer, public, save:: slwf_num

Number of objective Wannier functions (others excluded from spread functional)

logical, public, save:: selective_loc

Selective localization

logical, public, save:: slwf_constrain

Constrained centres

real(kind=dp), public, allocatable, save:: ccentres_frac(:,:)
real(kind=dp), public, allocatable, save:: ccentres_cart(:,:)
real(kind=dp), public, save:: slwf_lambda

Centre constraints for each Wannier function. Co-ordinates of centre constraint defaults to centre of trial orbital. Individual Lagrange multipliers, lambdas, default to global Lagrange multiplier.

character(len=50), public, save:: devel_flag
logical, private :: adpt_smr
real(kind=dp), private :: adpt_smr_fac
real(kind=dp), private :: adpt_smr_max
real(kind=dp), private :: smr_fixed_en_width
logical, public, save:: library_param_read_first_pass
logical, public, save:: spin_moment
real(kind=dp), public, save:: spin_axis_polar
real(kind=dp), public, save:: spin_axis_azimuth
logical, public, save:: use_degen_pert
real(kind=dp), public, save:: degen_thr
logical, public, save:: spin_decomp
integer, public, save:: num_valence_bands
logical, private :: found_fermi_energy
real(kind=dp), public, save:: scissors_shift
integer, private :: smr_index
integer, public, allocatable, save:: exclude_bands(:)
integer, public, save:: num_wann

number of wannier functions

integer, public, save:: mp_grid(3)

Dimensions of the Monkhorst-Pack grid

logical, public, save:: gamma_only

Use the special Gamma-point routines

real(kind=dp), public, save:: dis_win_min

lower bound of the disentanglement outer window

real(kind=dp), public, save:: dis_win_max

upper bound of the disentanglement outer window

real(kind=dp), public, save:: dis_froz_min

lower bound of the disentanglement inner (frozen) window

real(kind=dp), public, save:: dis_froz_max

upper bound of the disentanglement inner (frozen) window

integer, public, save:: dis_num_iter

number of disentanglement iteration steps

real(kind=dp), public, save:: dis_mix_ratio

Mixing ratio for the disentanglement routine

real(kind=dp), public, save:: dis_conv_tol

Convergence tolerance for the disentanglement

integer, public, save:: dis_conv_window

Size of the convergence window for disentanglement

integer, public, save:: dis_spheres_first_wann
integer, public, save:: dis_spheres_num
real(kind=dp), public, allocatable, save:: dis_spheres(:,:)
integer, public, save:: num_iter

Number of wannierisation iterations

integer, public, save:: num_cg_steps

Number of Conjugate Gradient steps

real(kind=dp), public, save:: conv_tol
integer, public, save:: conv_window
logical, public, save:: wannier_plot
integer, public, allocatable, save:: wannier_plot_list(:)
integer, public, save:: wannier_plot_supercell(3)
character(len=20), public, save:: wannier_plot_format
character(len=20), public, save:: wannier_plot_mode
character(len=20), public, save:: wannier_plot_spinor_mode
logical, public, save:: wannier_plot_spinor_phase
logical, public, save:: write_u_matrices
logical, public, save:: bands_plot
logical, public, save:: write_bvec
integer, public, save:: bands_num_points
character(len=20), public, save:: bands_plot_format
character(len=20), public, save:: bands_plot_mode
integer, public, allocatable, save:: bands_plot_project(:)
integer, public, save:: bands_plot_dim
logical, public, save:: write_hr
logical, public, save:: write_rmn
logical, public, save:: write_tb
real(kind=dp), public, save:: hr_cutoff
real(kind=dp), public, save:: dist_cutoff
character(len=20), public, save:: dist_cutoff_mode
real(kind=dp), public, save:: dist_cutoff_hc
character(len=20), public, save:: one_dim_axis
logical, public, save:: use_ws_distance
real(kind=dp), public, save:: ws_distance_tol

absolute tolerance for the distance to equivalent positions

integer, public, save:: ws_search_size(3)

maximum extension in each direction of the supercell of the BvK cell to search for points inside the Wigner-Seitz cell

logical, public, save:: fermi_surface_plot
integer, public, save:: fermi_surface_num_points
character(len=20), public, save:: fermi_surface_plot_format
real(kind=dp), private, save:: fermi_energy
logical, public, save:: kpath
character(len=20), public, save:: kpath_task
integer, public, save:: kpath_num_points
character(len=20), public, save:: kpath_bands_colour
logical, public, save:: kslice
character(len=20), public, save:: kslice_task
real(kind=dp), public, save:: kslice_corner(3)
real(kind=dp), public, save:: kslice_b1(3)
real(kind=dp), public, save:: kslice_b2(3)
integer, public, save:: kslice_2dkmesh(2)
character(len=20), public, save:: kslice_fermi_lines_colour
logical, public, save:: dos
logical, public :: dos_plot
character(len=20), public, save:: dos_task
logical, public, save:: dos_adpt_smr
real(kind=dp), public, save:: dos_adpt_smr_fac
integer, public, save:: dos_smr_index
real(kind=dp), public, save:: dos_smr_fixed_en_width
real(kind=dp), public, save:: dos_adpt_smr_max
real(kind=dp), public, save:: dos_energy_max
real(kind=dp), public, save:: dos_energy_min
real(kind=dp), public, save:: dos_energy_step
integer, public, save:: num_dos_project
integer, public, allocatable, save:: dos_project(:)
real(kind=dp), public, save:: dos_kmesh_spacing
integer, public, save:: dos_kmesh(3)
logical, public, save:: berry
character(len=120), public, save:: berry_task
real(kind=dp), public, save:: berry_kmesh_spacing
integer, public, save:: berry_kmesh(3)
integer, public, save:: berry_curv_adpt_kmesh
real(kind=dp), public, save:: berry_curv_adpt_kmesh_thresh
character(len=20), public, save:: berry_curv_unit
logical, public, save:: kubo_adpt_smr
real(kind=dp), public, save:: kubo_adpt_smr_fac
integer, public, save:: kubo_smr_index
real(kind=dp), public, save:: kubo_smr_fixed_en_width
real(kind=dp), public, save:: kubo_adpt_smr_max
integer, public, save:: sc_phase_conv
real(kind=dp), public, save:: sc_eta
real(kind=dp), public, save:: sc_w_thr
logical, public, save:: wanint_kpoint_file
logical, public, save:: transl_inv
logical, public, save:: shc_freq_scan
integer, public, save:: shc_alpha
integer, public, save:: shc_beta
integer, public, save:: shc_gamma
logical, public, save:: shc_bandshift
integer, public, save:: shc_bandshift_firstband
real(kind=dp), public, save:: shc_bandshift_energyshift
logical, public, save:: gyrotropic
character(len=120), public, save:: gyrotropic_task
integer, public, save:: gyrotropic_kmesh(3)
real(kind=dp), public, save:: gyrotropic_kmesh_spacing
integer, public, save:: gyrotropic_smr_index
real(kind=dp), public, save:: gyrotropic_smr_fixed_en_width
real(kind=dp), private :: gyrotropic_freq_min
real(kind=dp), private :: gyrotropic_freq_max
real(kind=dp), private :: gyrotropic_freq_step
integer, public, save:: gyrotropic_nfreq
complex(kind=dp), public, allocatable, save:: gyrotropic_freq_list(:)
real(kind=dp), public, save:: gyrotropic_box_corner(3)
real(kind=dp), public, save:: gyrotropic_box(3,3)
real(kind=dp), private :: gyrotropic_box_tmp(3)
real(kind=dp), public, save:: gyrotropic_degen_thresh
integer, public, allocatable, save:: gyrotropic_band_list(:)
integer, public, save:: gyrotropic_num_bands
real(kind=dp), private :: smr_max_arg
real(kind=dp), public, save:: gyrotropic_smr_max_arg
real(kind=dp), public, save:: gyrotropic_eigval_max
logical, private :: fermi_energy_scan
real(kind=dp), private :: fermi_energy_min
real(kind=dp), private :: fermi_energy_max
real(kind=dp), private :: fermi_energy_step
integer, public, save:: nfermi
real(kind=dp), public, allocatable, save:: fermi_energy_list(:)
real(kind=dp), private :: kubo_freq_min
real(kind=dp), private :: kubo_freq_max
real(kind=dp), private :: kubo_freq_step
integer, public, save:: kubo_nfreq
complex(kind=dp), public, allocatable, save:: kubo_freq_list(:)
real(kind=dp), public, save:: kubo_eigval_max
real(kind=dp), public, save:: spin_kmesh_spacing
integer, public, save:: spin_kmesh(3)
real(kind=dp), private, save:: kmesh_spacing
integer, private, save:: kmesh(3)
logical, private, save:: global_kmesh_set
logical, public, save:: geninterp
logical, public, save:: geninterp_alsofirstder
logical, public, save:: geninterp_single_file
logical, public, save:: boltzwann
logical, public, save:: boltz_calc_also_dos
integer, public, save:: boltz_2d_dir_num
character(len=4), private, save:: boltz_2d_dir
real(kind=dp), public, save:: boltz_dos_energy_step
real(kind=dp), public, save:: boltz_dos_energy_min
real(kind=dp), public, save:: boltz_dos_energy_max
logical, public, save:: boltz_dos_adpt_smr
real(kind=dp), public, save:: boltz_dos_smr_fixed_en_width
real(kind=dp), public, save:: boltz_dos_adpt_smr_fac
real(kind=dp), public, save:: boltz_dos_adpt_smr_max
real(kind=dp), public, save:: boltz_mu_min
real(kind=dp), public, save:: boltz_mu_max
real(kind=dp), public, save:: boltz_mu_step
real(kind=dp), public, save:: boltz_temp_min
real(kind=dp), public, save:: boltz_temp_max
real(kind=dp), public, save:: boltz_temp_step
real(kind=dp), public, save:: boltz_kmesh_spacing
integer, public, save:: boltz_kmesh(3)
real(kind=dp), public, save:: boltz_tdf_energy_step
integer, public, save:: boltz_TDF_smr_index
integer, public, save:: boltz_dos_smr_index
real(kind=dp), public, save:: boltz_relax_time
real(kind=dp), public, save:: boltz_TDF_smr_fixed_en_width
logical, public, save:: boltz_bandshift
integer, public, save:: boltz_bandshift_firstband
real(kind=dp), public, save:: boltz_bandshift_energyshift
logical, public, save:: transport
logical, public, save:: tran_easy_fix
character(len=20), public, save:: transport_mode
real(kind=dp), public, save:: tran_win_min
real(kind=dp), public, save:: tran_win_max
real(kind=dp), public, save:: tran_energy_step
integer, public, save:: tran_num_bb
integer, public, save:: tran_num_ll
integer, public, save:: tran_num_rr
integer, public, save:: tran_num_cc
integer, public, save:: tran_num_lc
integer, public, save:: tran_num_cr
integer, public, save:: tran_num_bandc
logical, public, save:: tran_write_ht
logical, public, save:: tran_read_ht
logical, public, save:: tran_use_same_lead
integer, public, save:: tran_num_cell_ll
integer, public, save:: tran_num_cell_rr
real(kind=dp), public, save:: tran_group_threshold
real(kind=dp), public, save:: translation_centre_frac(3)
integer, public, save:: num_shells

no longer an input keyword

logical, public, save:: skip_B1_tests

do not check the B1 condition

logical, public, save:: explicit_nnkpts

nnkpts block is in the input file (allowed only for post-proc setup)

integer, public, allocatable, save:: shell_list(:)
real(kind=dp), public, allocatable, save:: kpt_latt(:,:)

kpoints in lattice vecs

real(kind=dp), public, save:: real_lattice(3,3)
logical, public, save:: postproc_setup
logical, public, save:: cp_pp

Car-Parinello post-proc flag/transport

logical, public, save:: calc_only_A
logical, public, save:: use_bloch_phases
character(len=20), public, save:: restart
logical, public, save:: write_r2mn
logical, public, save:: guiding_centres
integer, public, save:: num_guide_cycles
integer, public, save:: num_no_guide_iter
real(kind=dp), public, save:: fixed_step
real(kind=dp), public, save:: trial_step
logical, public, save:: precond
logical, public, save:: write_proj
integer, public, save:: timing_level
logical, public, save:: spinors
integer, public, save:: num_elec_per_state
logical, public, save:: translate_home_cell
logical, public, save:: write_xyz
logical, public, save:: write_hr_diag
real(kind=dp), public, save:: conv_noise_amp
integer, public, save:: conv_noise_num
real(kind=dp), public, save:: wannier_plot_radius
real(kind=dp), public, save:: wannier_plot_scale
integer, public, save:: search_shells
real(kind=dp), public, save:: kmesh_tol
integer, public, save:: optimisation
logical, public, save:: write_vdw_data
real(kind=dp), public, save:: omega_invariant
character(len=20), public, save:: checkpoint
logical, public, save:: have_disentangled
real(kind=dp), public, allocatable, save:: atoms_pos_frac(:,:,:)
real(kind=dp), public, allocatable, save:: atoms_pos_cart(:,:,:)
integer, public, allocatable, save:: atoms_species_num(:)
character(len=maxlen), public, allocatable, save:: atoms_label(:)
character(len=2), public, allocatable, save:: atoms_symbol(:)
integer, public, save:: num_atoms
integer, public, save:: num_species
logical, public, save:: lhasproj
real(kind=dp), public, allocatable, save:: input_proj_site(:,:)
integer, public, allocatable, save:: input_proj_l(:)
integer, public, allocatable, save:: input_proj_m(:)
integer, public, allocatable, save:: input_proj_s(:)
real(kind=dp), public, allocatable, save:: input_proj_s_qaxis(:,:)
real(kind=dp), public, allocatable, save:: input_proj_z(:,:)
real(kind=dp), public, allocatable, save:: input_proj_x(:,:)
integer, public, allocatable, save:: input_proj_radial(:)
real(kind=dp), public, allocatable, save:: input_proj_zona(:)
real(kind=dp), public, allocatable, save:: proj_site(:,:)
integer, public, allocatable, save:: proj_l(:)
integer, public, allocatable, save:: proj_m(:)
integer, public, allocatable, save:: proj_s(:)
real(kind=dp), public, allocatable, save:: proj_s_qaxis(:,:)
real(kind=dp), public, allocatable, save:: proj_z(:,:)
real(kind=dp), public, allocatable, save:: proj_x(:,:)
integer, public, allocatable, save:: proj_radial(:)
real(kind=dp), public, allocatable, save:: proj_zona(:)
integer, public, save:: num_proj
logical, public, save:: lselproj
integer, public, save:: num_select_projections
integer, public, allocatable, save:: select_projections(:)
integer, public, allocatable, save:: proj2wann_map(:)
logical, public, save:: auto_projections
integer, public, save:: num_kpts
real(kind=dp), public, save:: recip_lattice(3,3)
real(kind=dp), public, save:: cell_volume
real(kind=dp), public, save:: real_metric(3,3)
real(kind=dp), public, save:: recip_metric(3,3)
integer, public, save:: bands_num_spec_points
character(len=20), public, allocatable, save:: bands_label(:)
real(kind=dp), public, allocatable, save:: bands_spec_points(:,:)
real(kind=dp), public, allocatable, save:: kpt_cart(:,:)
logical, public, save:: disentanglement
real(kind=dp), public, save:: lenconfac
integer, public, save:: num_wannier_plot
integer, public, save:: num_bands_project
integer, public, save:: num_exclude_bands
logical, public, save:: lfixstep
integer, public, save:: nnh
integer, public, save:: nntot
integer, public, save, allocatable:: nnlist(:,:)
integer, public, save, allocatable:: neigh(:,:)
integer, public, save, allocatable:: nncell(:,:,:)
real(kind=dp), public, save:: wbtot
real(kind=dp), public, save, allocatable:: wb(:)
real(kind=dp), public, save, allocatable:: bk(:,:,:)
real(kind=dp), public, save, allocatable:: bka(:,:)
integer, public, save, allocatable:: ndimwin(:)
logical, public, save, allocatable:: lwindow(:,:)
logical, public, save:: frozen_states
complex(kind=dp), public, allocatable, save:: a_matrix(:,:,:)
complex(kind=dp), public, allocatable, save:: m_matrix_orig(:,:,:,:)
complex(kind=dp), public, allocatable, save:: m_matrix_orig_local(:,:,:,:)
real(kind=dp), public, allocatable, save:: eigval(:,:)
logical, public, save:: eig_found
complex(kind=dp), public, allocatable, save:: u_matrix_opt(:,:,:)
complex(kind=dp), public, allocatable, save:: u_matrix(:,:,:)
complex(kind=dp), public, allocatable, save:: m_matrix(:,:,:,:)
complex(kind=dp), public, allocatable, save:: m_matrix_local(:,:,:,:)
logical, public, save:: lsitesymmetry =.false.
real(kind=dp), public, save:: symmetrize_eps =1.d-3
integer, public, parameter:: max_shells =6
integer, public, parameter:: num_nnmax =12
logical, public, save:: library =.false.
logical, public, save:: ispostw90 =.false.
logical, public, save:: effective_model =.false.
real(kind=dp), public, save, allocatable:: wannier_centres(:,:)
real(kind=dp), public, save, allocatable:: wannier_spreads(:)
real(kind=dp), public, save:: omega_total
real(kind=dp), public, save:: omega_tilde
logical, public, save:: automatic_translation
integer, public, save:: one_dim_dir
integer, private :: num_lines
character(len=maxlen), private, allocatable:: in_data(:)
character(len=maxlen), private :: ctmp
logical, private :: ltmp
logical, private :: hr_plot

Functions

public function param_get_smearing_type(smearing_index)

This function returns a string describing the type of smearing associated to a given smr_index integer value.

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: smearing_index

The integer index for which we want to get the string

Return Value character(len=80)

public function param_get_convention_type(sc_phase_conv)

This function returns a string describing the convention associated to a sc_phase_conv integer value.

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: sc_phase_conv

The integer index for which we want to get the string

Return Value character(len=80)

private function get_smearing_index(string, keyword)

This function parses a string containing the type of smearing and returns the correct index for the smearing_index variable

Read more…

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: string

The string read from input

character(len=*), intent(in) :: keyword

The keyword that was read (e.g., smr_type), so that we can print a more useful error message

Return Value integer


Subroutines

public subroutine param_read()

Read parameters and calculate derived values

Read more…

Arguments

None

private subroutine internal_set_kmesh(spacing, reclat, mesh)

This routines returns the three integers that define the interpolation k-mesh, satisfying the condition that the spacing between two neighboring points along each of the three k_x, k_y and k_z directions is at smaller than a given spacing.

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(in) :: spacing

Minimum spacing between neighboring points, in angstrom^(-1)

real(kind=dp), intent(in), dimension(3, 3):: reclat

Matrix of the reciprocal lattice vectors in cartesian coordinates, in angstrom^(-1)

integer, intent(out), dimension(3):: mesh

Will contain the three integers defining the interpolation k-mesh

private subroutine get_module_kmesh(moduleprefix, should_be_defined, module_kmesh, module_kmesh_spacing)

This function reads and sets the interpolation mesh variables needed by a given module

Read more…

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: moduleprefix

The prefix that is appended before the name of the variables. In particular, if the prefix is for instance XXX, the two variables that are read from the input file are XXX_kmesh and XXX_kmesh_spacing.

logical, intent(in) :: should_be_defined

A logical flag: if it is true, at the end the code stops if no value is specified. Define it to .false. if no check should be performed. Often, you can simply pass the flag that activates the module itself.

integer, intent(out), dimension(3):: module_kmesh

the integer array (length 3) where the interpolation mesh will be saved

real(kind=dp), intent(out) :: module_kmesh_spacing

the real number on which the min mesh spacing is saved. -1 if it the user specifies in input the mesh and not the mesh_spacing

private subroutine param_uppercase()

Convert a few things to uppercase to look nice in the output

Arguments

None

public subroutine param_write()

write wannier90 parameters to stdout

Arguments

None

public subroutine param_postw90_write()

write postw90 parameters to stdout

Arguments

None

public subroutine param_write_header()

Write a suitable header for the calculation - version authors etc

Arguments

None

public subroutine param_dealloc()

release memory from allocated parameters

Arguments

None

public subroutine param_write_chkpt(chkpt)

Write checkpoint file IMPORTANT! If you change the chkpt format, adapt accordingly also the w90chk2chk.x utility! Also, note that this routine writes the u_matrix and the m_matrix - in parallel mode these are however stored in distributed form in, e.g., u_matrix_loc only, so if you are changing the u_matrix, remember to gather it from u_matrix_loc first!

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: chkpt

public subroutine param_read_chkpt()

Read checkpoint file IMPORTANT! If you change the chkpt format, adapt accordingly also the w90chk2chk.x utility!

Read more…

Arguments

None

public subroutine param_chkpt_dist()

Distribute the chk files

Arguments

None

private subroutine param_in_file()

Load the *.win file into a character array in_file, ignoring comments and blank lines and converting everything to lowercase characters

Arguments

None

private subroutine param_get_keyword(keyword, found, c_value, l_value, i_value, r_value)

Finds the value of the required keyword.

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: keyword

Keyword to examine

logical, intent(out) :: found

Is keyword present

character(len=*), intent(inout), optional :: c_value

Keyword value

logical, intent(inout), optional :: l_value

Keyword value

integer, intent(inout), optional :: i_value

Keyword value

real(kind=dp), intent(inout), optional :: r_value

Keyword value

private subroutine param_get_keyword_vector(keyword, found, length, c_value, l_value, i_value, r_value)

Finds the values of the required keyword vector

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: keyword

Keyword to examine

logical, intent(out) :: found

Is keyword present

integer, intent(in) :: length

Length of vecotr to read

character(len=*), intent(inout), optional :: c_value(length)

Keyword data

logical, intent(inout), optional :: l_value(length)

Keyword data

integer, intent(inout), optional :: i_value(length)

Keyword data

real(kind=dp), intent(inout), optional :: r_value(length)

Keyword data

private subroutine param_get_vector_length(keyword, found, length)

Returns the length of a keyword vector

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: keyword

Keyword to examine

logical, intent(out) :: found

Is keyword present

integer, intent(out) :: length

length of vector

private subroutine param_get_keyword_block(keyword, found, rows, columns, c_value, l_value, i_value, r_value)

Finds the values of the required data block

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: keyword

Keyword to examine

logical, intent(out) :: found

Is keyword present

integer, intent(in) :: rows

Number of rows

integer, intent(in) :: columns

Number of columns

character(len=*), intent(inout), optional :: c_value(columns,rows)

keyword block data

logical, intent(inout), optional :: l_value(columns,rows)

keyword block data

integer, intent(inout), optional :: i_value(columns,rows)

keyword block data

real(kind=dp), intent(inout), optional :: r_value(columns,rows)

keyword block data

private subroutine param_get_block_length(keyword, found, rows, lunits)

Finds the length of the data block

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: keyword

Keyword to examine

logical, intent(out) :: found

Is keyword present

integer, intent(out) :: rows

Number of rows

logical, intent(out), optional :: lunits

Have we found a unit specification

private subroutine param_get_atoms(lunits)

Fills the atom data block

Arguments

Type IntentOptional AttributesName
logical, intent(in) :: lunits

Do we expect a first line with the units

public subroutine param_lib_set_atoms(atoms_label_tmp, atoms_pos_cart_tmp)

Fills the atom data block during a library call

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: atoms_label_tmp(num_atoms)

Atom labels

real(kind=dp), intent(in) :: atoms_pos_cart_tmp(3,num_atoms)

Atom positions

private subroutine param_get_range_vector(keyword, found, length, lcount, i_value)

Read a range vector eg. 1,2,3,4-10 or 1 3 400:100 if(lcount) we return the number of states in length

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: keyword

Keyword to examine

logical, intent(out) :: found

Is keyword found

integer, intent(inout) :: length

Number of states

logical, intent(in) :: lcount

If T only count states

integer, intent(out), optional :: i_value(length)

States specified in range vector

private subroutine param_get_centre_constraints()

assigns projection centres as default centre constraints and global Lagrange multiplier as individual Lagrange multipliers then reads the centre_constraints block for individual centre constraint parameters

Arguments

None

private subroutine param_get_centre_constraint_from_column(column, start, finish, wann, dummy)

assigns value read to constraint parameters based on column

Arguments

Type IntentOptional AttributesName
integer, intent(inout) :: column
integer, intent(inout) :: start
integer, intent(inout) :: finish
integer, intent(inout) :: wann
character(len=maxlen), intent(inout) :: dummy

private subroutine param_get_projections(num_proj, lcount)

Fills the projection data block

Arguments

Type IntentOptional AttributesName
integer, intent(inout) :: num_proj
logical, intent(in) :: lcount

private subroutine param_get_keyword_kpath()

Fills the kpath data block

Arguments

None

public subroutine param_memory_estimate()

Estimate how much memory we will allocate

Arguments

None

public subroutine param_dist()

distribute the parameters across processors !

Read more…

Arguments

None

private subroutine parameters_gyro_write_task(task, key, comment)

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: task
character(len=*), intent(in) :: key
character(len=*), intent(in) :: comment