This module contains parameters to control the actions of wannier90. Also routines to read the parameters and write them out again.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 |
This function returns a string describing the type of smearing associated to a given smr_index integer value.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | smearing_index | The integer index for which we want to get the string |
This function returns a string describing the convention associated to a sc_phase_conv integer value.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | sc_phase_conv | The integer index for which we want to get the string |
This function parses a string containing the type of smearing and returns the correct index for the smearing_index variable
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
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.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
This function reads and sets the interpolation mesh variables needed by a given module
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Convert a few things to uppercase to look nice in the output
write wannier90 parameters to stdout
write postw90 parameters to stdout
Write a suitable header for the calculation - version authors etc
release memory from allocated parameters
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!
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | chkpt |
Read checkpoint file IMPORTANT! If you change the chkpt format, adapt accordingly also the w90chk2chk.x utility!
Distribute the chk files
Load the *.win file into a character array in_file, ignoring comments and blank lines and converting everything to lowercase characters
Finds the value of the required keyword.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Finds the values of the required keyword vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Returns the length of a keyword vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | keyword | Keyword to examine |
||
logical, | intent(out) | :: | found | Is keyword present |
||
integer, | intent(out) | :: | length | length of vector |
Finds the values of the required data block
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Finds the length of the data block
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Fills the atom data block
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(in) | :: | lunits | Do we expect a first line with the units |
Fills the atom data block during a library call
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
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
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
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
assigns value read to constraint parameters based on column
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout) | :: | column | |||
integer, | intent(inout) | :: | start | |||
integer, | intent(inout) | :: | finish | |||
integer, | intent(inout) | :: | wann | |||
character(len=maxlen), | intent(inout) | :: | dummy |
Fills the projection data block
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout) | :: | num_proj | |||
logical, | intent(in) | :: | lcount |
Fills the kpath data block
Estimate how much memory we will allocate
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | task | |||
character(len=*), | intent(in) | :: | key | |||
character(len=*), | intent(in) | :: | comment |