Common read/write routines for data needed by both wannier90.x and postw90.x executables
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 |
||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
read verbosity "iprint" and timing "timing_level" variables if iprint>2 svd_omega printing is enabled printing is supressed on all non-root MPI ranks
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| type(print_output_type), | intent(inout) | :: | print_output | |||
| logical, | intent(inout) | :: | svd_omega | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
reads the "optimisation" flag
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| integer, | intent(inout) | :: | optimisation | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
reads the "energy_unit" and "length_unit" (valid: "ang" or "bohr") variables
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| real(kind=dp), | intent(inout) | :: | lenconfac | |||
| character(len=*), | intent(inout) | :: | length_unit | |||
| character(len=*), | intent(inout) | :: | energy_unit | |||
| real(kind=dp), | intent(in) | :: | bohr | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
reads the number of wannier functions "num_wann" (mandatory input)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| integer, | intent(inout) | :: | num_wann | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
read the "total_bands" variable this is a convenience for combination with an "exclude_bands" to evaluate num_bands
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| integer, | intent(inout) | :: | total_bands | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Read MPI distribution of k-points The array to be read must have num_kpt entries, with each entry being the MPI rank to which each k-point is assigned
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| integer, | intent(inout), | allocatable | :: | distk(:) | ||
| integer, | intent(in) | :: | nkin | |||
| integer, | intent(in) | :: | stdout | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Read (and allocate) excluded_bands list "exclude_bands"
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| integer, | intent(inout), | allocatable | :: | exclude_bands(:) | ||
| integer, | intent(out) | :: | num_exclude_bands | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Read the number of bands ("num_bands") If not specified (and exclude_bands and total_bands are not both provided), defaults to num_wann
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| logical, | intent(in) | :: | pw90_effective_model | |||
| integer, | intent(inout) | :: | num_bands | |||
| integer, | intent(in) | :: | num_wann | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Reads the flag for Gamma-only mode ("gamma_only")
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| logical, | intent(inout) | :: | gamma_only | |||
| integer, | intent(in) | :: | num_kpts | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Read the mandatory k-point mesh input ("mp_grid")
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| logical, | intent(in) | :: | pw90_effective_model | |||
| integer, | intent(inout) | :: | mp_grid(3) | |||
| integer, | intent(inout) | :: | num_kpts | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Read a group of variables defining the system "spinors" -- coupled spins "num_elec_per_state" -- spin degeneracy "num_valence_bands"
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| type(w90_system_type), | intent(inout) | :: | w90_system | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Read band plotting path variables: "kpoint_path" and "bands_num_points"
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| type(kpoint_path_type), | intent(inout) | :: | kpoint_path | |||
| logical, | intent(out) | :: | path_found | |||
| 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(kpoint_path_type), | intent(inout) | :: | kpoint_path | |||
| logical, | intent(out) | :: | ok | |||
| logical, | intent(in) | :: | bands_plot | |||
| real(kind=dp), | intent(in) | :: | bohr | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Read Fermi energy ("fermi_energy") and/or ranges ("fermi_energy_min", "fermi_energy_max" and "fermi_energy_step") used to setup fermi_energy_list tabulation _max and _step are only sought if _min found and are optional
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| logical, | intent(out) | :: | found_fermi_energy | |||
| real(kind=dp), | intent(out), | allocatable | :: | fermi_energy_list(:) | ||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Reads "use_ws_distance", "ws_distance_tol", "ws_search_size"
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| type(ws_region_type), | intent(inout) | :: | ws_region | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Read the eigenvalues from wannier.eig
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(inout) | :: | eig_found | |||
| real(kind=dp), | intent(inout) | :: | eigval(:,:) | |||
| integer, | intent(in) | :: | num_bands | |||
| integer, | intent(in) | :: | num_kpts | |||
| integer, | intent(in) | :: | stdout | |||
| character(len=*), | intent(in) | :: | seedname | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Reads disentanglement windows "dis_win_min" and "dis_win_max" (both are optional) Reads frozen window "dis_froz_min" and "dis_froz_max" (either neither or both to be supplied)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| type(dis_manifold_type), | intent(inout) | :: | dis_manifold | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Reads finite-difference input variables: "search_shells" "kmesh_tol" "shell_list" "num_shells" "skip_B1_tests"
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| type(kmesh_input_type), | intent(inout) | :: | kmesh_input | |||
| 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) | :: | pw90_effective_model | |||
| real(kind=dp), | intent(out), | allocatable | :: | kpt_latt(:,:) | ||
| integer, | intent(in) | :: | num_kpts | |||
| integer, | intent(in) | :: | mp_grid(3) | |||
| 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 | |||
| real(kind=dp), | intent(out), | allocatable | :: | kpt_latt(:,:) | ||
| 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 | |||
| real(kind=dp), | intent(out) | :: | real_lattice(3,3) | |||
| 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(atom_data_type), | intent(inout) | :: | atom_data | |||
| real(kind=dp), | intent(in) | :: | real_lattice(3,3) | |||
| 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(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 | |||
| integer, | intent(in) | :: | stdout | |||
| 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 | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | disentanglement | |||
| type(dis_manifold_type), | intent(inout) | :: | dis_manifold | |||
| type(wannier_data_type), | intent(inout) | :: | wannier_data | |||
| integer, | intent(in) | :: | num_wann | |||
| integer, | intent(in) | :: | num_bands | |||
| integer, | intent(in) | :: | num_kpts | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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) | :: | reclat(3,3) |
Matrix of the reciprocal lattice vectors in cartesian coordinates, in angstrom^(-1) |
||
| integer, | intent(out) | :: | mesh(3) |
Will contain the three integers defining the interpolation k-mesh |
Write a suitable header for the calculation - version authors etc
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | bohr_version_str | |||
| character(len=*), | intent(in) | :: | constants_version_str1 | |||
| character(len=*), | intent(in) | :: | constants_version_str2 | |||
| integer, | intent(in) | :: | mpi_size | |||
| integer, | intent(in) | :: | stdout |
release memory from allocated parameters
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout), | allocatable | :: | exclude_bands(:) | ||
| type(wannier_data_type), | intent(inout) | :: | wannier_data | |||
| type(proj_type), | intent(inout), | allocatable | :: | input_proj(:) | ||
| type(kmesh_input_type), | intent(inout) | :: | kmesh_input | |||
| real(kind=dp), | intent(inout), | allocatable | :: | kpt_latt(:,:) | ||
| type(dis_manifold_type), | intent(inout) | :: | dis_manifold | |||
| type(atom_data_type), | intent(inout) | :: | atom_data | |||
| real(kind=dp), | intent(inout), | allocatable | :: | eigval(:,:) | ||
| type(kpoint_path_type), | intent(inout) | :: | kpoint_path | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Read checkpoint file This is used to allocate the matrices.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(dis_manifold_type), | intent(inout) | :: | dis_manifold | |||
| integer, | intent(inout), | allocatable | :: | exclude_bands(:) | ||
| type(kmesh_info_type), | intent(in) | :: | kmesh_info | |||
| real(kind=dp), | intent(in) | :: | kpt_latt(:,:) | |||
| type(wannier_data_type), | intent(inout) | :: | wannier_data | |||
| complex(kind=dp), | intent(inout) | :: | m_matrix(:,:,:,:) | |||
| complex(kind=dp), | intent(inout) | :: | u_matrix(:,:,:) | |||
| complex(kind=dp), | intent(inout) | :: | u_matrix_opt(:,:,:) | |||
| real(kind=dp), | intent(in) | :: | real_lattice(3,3) | |||
| real(kind=dp), | intent(inout) | :: | omega_invariant | |||
| integer, | intent(in) | :: | mp_grid(3) | |||
| integer, | intent(in) | :: | num_bands | |||
| integer, | intent(in) | :: | num_exclude_bands | |||
| integer, | intent(in) | :: | num_kpts | |||
| integer, | intent(in) | :: | num_wann | |||
| character(len=20), | intent(inout) | :: | checkpoint | |||
| logical, | intent(out) | :: | have_disentangled | |||
| logical, | intent(in) | :: | ispostw90 | |||
| character(len=*), | intent(in) | :: | seedname | |||
| integer, | intent(in) | :: | stdout | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Read checkpoint file IMPORTANT! If you change the chkpt format, adapt accordingly also the w90chk2chk.x utility!
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(inout), | allocatable | :: | exclude_bands(:) | ||
| type(kmesh_info_type), | intent(in) | :: | kmesh_info | |||
| real(kind=dp), | intent(in) | :: | kpt_latt(:,:) | |||
| real(kind=dp), | intent(in) | :: | real_lattice(3,3) | |||
| integer, | intent(in) | :: | mp_grid(3) | |||
| integer, | intent(in) | :: | num_bands | |||
| integer, | intent(in) | :: | num_exclude_bands | |||
| integer, | intent(in) | :: | num_kpts | |||
| integer, | intent(in) | :: | num_wann | |||
| character(len=20), | intent(inout) | :: | checkpoint | |||
| logical, | intent(out) | :: | have_disentangled | |||
| logical, | intent(in) | :: | ispostw90 | |||
| character(len=*), | intent(in) | :: | seedname | |||
| integer, | intent(inout) | :: | chk_unit | |||
| integer, | intent(in) | :: | stdout | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Read checkpoint file IMPORTANT! If you change the chkpt format, adapt accordingly also the w90chk2chk.x utility!
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(dis_manifold_type), | intent(inout) | :: | dis_manifold | |||
| type(kmesh_info_type), | intent(in) | :: | kmesh_info | |||
| type(wannier_data_type), | intent(inout) | :: | wannier_data | |||
| complex(kind=dp), | intent(inout) | :: | m_matrix(:,:,:,:) | |||
| complex(kind=dp), | intent(inout) | :: | u_matrix(:,:,:) | |||
| complex(kind=dp), | intent(inout) | :: | u_matrix_opt(:,:,:) | |||
| real(kind=dp), | intent(inout) | :: | omega_invariant | |||
| integer, | intent(in) | :: | num_bands | |||
| integer, | intent(in) | :: | num_kpts | |||
| integer, | intent(in) | :: | num_wann | |||
| logical, | intent(in) | :: | have_disentangled | |||
| character(len=*), | intent(in) | :: | seedname | |||
| integer, | intent(in) | :: | chk_unit | |||
| integer, | intent(in) | :: | stdout | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Distribute the chk files
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(dis_manifold_type), | intent(inout) | :: | dis_manifold | |||
| type(wannier_data_type), | intent(inout) | :: | wannier_data | |||
| complex(kind=dp), | intent(inout) | :: | u_matrix(:,:,:) | |||
| complex(kind=dp), | intent(inout) | :: | u_matrix_opt(:,:,:) | |||
| complex(kind=dp), | intent(inout) | :: | m_matrix(:,:,:,:) | |||
| complex(kind=dp), | intent(inout) | :: | m_matrix_local(:,:,:,:) | |||
| real(kind=dp), | intent(inout) | :: | omega_invariant | |||
| integer, | intent(in) | :: | num_bands | |||
| integer, | intent(in) | :: | num_kpts | |||
| integer, | intent(in) | :: | num_wann | |||
| integer, | intent(in) | :: | nntot | |||
| character(len=20), | intent(inout) | :: | checkpoint | |||
| logical, | intent(inout) | :: | have_disentangled | |||
| integer, | intent(in) | :: | distk(:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Load the *.win file into a character array in_file, ignoring comments and blank lines and converting everything to lowercase characters
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| character(len=*), | intent(in) | :: | seedname | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Finds the value of the required keyword.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| character(len=*), | intent(in) | :: | keyword |
Keyword to examine |
||
| logical, | intent(out) | :: | found |
Is keyword present |
||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm | |||
| 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 | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| character(len=*), | intent(in) | :: | keyword |
Keyword to examine |
||
| logical, | intent(inout) | :: | found |
Is keyword present |
||
| integer, | intent(in) | :: | length |
Length of vecotr to read |
||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm | |||
| 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 |
|
| real(kind=dp), | intent(inout), | optional, | allocatable | :: | r2_value(:,:) |
Keyword data |
| character(len=*), | intent(inout), | optional, | allocatable | :: | c2_value(:) |
Keyword data |
Returns the length of a keyword vector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| character(len=*), | intent(in) | :: | keyword |
Keyword to examine |
||
| logical, | intent(out) | :: | found |
Is keyword present |
||
| integer, | intent(out) | :: | length |
length of vector |
||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Finds the values of the required data block
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| 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 |
||
| real(kind=dp), | intent(in) | :: | bohr | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm | |||
| 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 | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| character(len=*), | intent(in) | :: | keyword |
Keyword to examine |
||
| logical, | intent(out) | :: | found |
Is keyword present |
||
| integer, | intent(out) | :: | rows |
Number of rows |
||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm | |||
| logical, | intent(out), | optional | :: | lunits |
Have we found a unit specification |
Fills the atom data block
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| type(atom_data_type), | intent(inout) | :: | atom_data | |||
| logical, | intent(in) | :: | lunits |
Do we expect a first line with the units |
||
| real(kind=dp), | intent(in) | :: | real_lattice(3,3) | |||
| real(kind=dp), | intent(in) | :: | bohr | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Fills the atom data block during a library call
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(atom_data_type), | intent(inout) | :: | atom_data | |||
| character(len=*), | intent(in) | :: | atoms_label_tmp(:) |
Atom labels |
||
| real(kind=dp), | intent(in) | :: | atoms_pos_cart_tmp(3,atom_data%num_atoms) |
Atom positions, Cartesian, Angstrom |
||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| 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 |
||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm | |||
| 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
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| real(kind=dp), | intent(inout) | :: | ccentres_cart(:,:) | |||
| real(kind=dp), | intent(in) | :: | proj_site(:,:) | |||
| integer, | intent(in) | :: | num_wann | |||
| real(kind=dp), | intent(in) | :: | real_lattice(3,3) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
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 | |||
| real(kind=dp), | intent(inout) | :: | ccentres_frac(:,:) | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Fills the projection data block
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| integer, | intent(inout) | :: | num_proj | |||
| type(atom_data_type), | intent(in) | :: | atom_data | |||
| integer, | intent(in) | :: | num_wann | |||
| type(proj_type), | intent(inout), | allocatable | :: | input_proj(:) | ||
| real(kind=dp), | intent(in) | :: | inv_lattice(3,3) | |||
| logical, | intent(in) | :: | lcount | |||
| 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 |
Fills the kpath data block
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| type(kpoint_path_type), | intent(inout) | :: | kpoint_path | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
Fills the explicit_kpath_labels data block
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| type(kpoint_path_type), | intent(inout) | :: | kpoint_path | |||
| 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 | |||
| character(len=*), | intent(in) | :: | keyword | |||
| 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 | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout), | target | :: | settings | ||
| character(len=*), | intent(in) | :: | seedname | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |