wannier Program

Uses

  • program~~wannier~~UsesGraph program~wannier wannier module~w90_comms w90_comms program~wannier->module~w90_comms module~w90_error w90_error program~wannier->module~w90_error module~w90_io w90_io program~wannier->module~w90_io module~w90_library w90_library program~wannier->module~w90_library module~w90_library_extra w90_library_extra program~wannier->module~w90_library_extra module~w90_sitesym w90_sitesym program~wannier->module~w90_sitesym module~w90_constants w90_constants module~w90_comms->module~w90_constants module~w90_error_base w90_error_base module~w90_comms->module~w90_error_base module~w90_error->module~w90_comms module~w90_error->module~w90_error_base module~w90_io->module~w90_constants module~w90_library->module~w90_comms module~w90_library->module~w90_io iso_c_binding iso_c_binding module~w90_library->iso_c_binding module~w90_library->module~w90_constants module~w90_types w90_types module~w90_library->module~w90_types module~w90_wannier90_types w90_wannier90_types module~w90_library->module~w90_wannier90_types module~w90_library_extra->module~w90_io module~w90_library_extra->module~w90_library module~w90_library_extra->module~w90_constants module~w90_sitesym->module~w90_comms module~w90_sitesym->module~w90_error module~w90_sitesym->module~w90_constants module~w90_types->module~w90_constants module~w90_wannier90_types->module~w90_constants

The main Wannier90 program


Calls

program~~wannier~~CallsGraph program~wannier wannier proc~comms_sync_error comms_sync_error program~wannier->proc~comms_sync_error proc~input_reader_special input_reader_special program~wannier->proc~input_reader_special proc~io_commandline io_commandline program~wannier->proc~io_commandline proc~io_date io_date program~wannier->proc~io_date proc~io_time io_time program~wannier->proc~io_time proc~overlaps overlaps program~wannier->proc~overlaps proc~print_times print_times program~wannier->proc~print_times proc~prterr prterr program~wannier->proc~prterr proc~read_chkpt read_chkpt program~wannier->proc~read_chkpt proc~read_eigvals read_eigvals program~wannier->proc~read_eigvals proc~set_error_input set_error_input program~wannier->proc~set_error_input proc~set_kpoint_distribution set_kpoint_distribution program~wannier->proc~set_kpoint_distribution proc~sitesym_read sitesym_read program~wannier->proc~sitesym_read proc~w90_disentangle~2 w90_disentangle program~wannier->proc~w90_disentangle~2 proc~w90_distribute_kpts w90_distribute_kpts program~wannier->proc~w90_distribute_kpts proc~w90_get_fortran_stderr w90_get_fortran_stderr program~wannier->proc~w90_get_fortran_stderr proc~w90_get_nn~2 w90_get_nn program~wannier->proc~w90_get_nn~2 proc~w90_input_reader~2 w90_input_reader program~wannier->proc~w90_input_reader~2 proc~w90_plot w90_plot program~wannier->proc~w90_plot proc~w90_print_info~2 w90_print_info program~wannier->proc~w90_print_info~2 proc~w90_project_overlap~2 w90_project_overlap program~wannier->proc~w90_project_overlap~2 proc~w90_set_eigval~2 w90_set_eigval program~wannier->proc~w90_set_eigval~2 proc~w90_set_m_local~2 w90_set_m_local program~wannier->proc~w90_set_m_local~2 proc~w90_set_u_matrix~2 w90_set_u_matrix program~wannier->proc~w90_set_u_matrix~2 proc~w90_set_u_opt~2 w90_set_u_opt program~wannier->proc~w90_set_u_opt~2 proc~w90_transport w90_transport program~wannier->proc~w90_transport proc~w90_wannierise~2 w90_wannierise program~wannier->proc~w90_wannierise~2 proc~write_chkpt write_chkpt program~wannier->proc~write_chkpt proc~write_kmesh write_kmesh program~wannier->proc~write_kmesh proc~input_reader_special->proc~prterr proc~set_error_alloc set_error_alloc proc~input_reader_special->proc~set_error_alloc proc~w90_readwrite_clean_infile w90_readwrite_clean_infile proc~input_reader_special->proc~w90_readwrite_clean_infile proc~w90_readwrite_in_file w90_readwrite_in_file proc~input_reader_special->proc~w90_readwrite_in_file proc~w90_wannier90_readwrite_read_special w90_wannier90_readwrite_read_special proc~input_reader_special->proc~w90_wannier90_readwrite_read_special proc~overlaps->proc~prterr proc~overlap_read overlap_read proc~overlaps->proc~overlap_read proc~set_error_fatal set_error_fatal proc~overlaps->proc~set_error_fatal proc~io_print_timings io_print_timings proc~print_times->proc~io_print_timings interface~comms_no_sync_bcast comms_no_sync_bcast proc~prterr->interface~comms_no_sync_bcast interface~comms_no_sync_recv comms_no_sync_recv proc~prterr->interface~comms_no_sync_recv interface~comms_no_sync_send comms_no_sync_send proc~prterr->interface~comms_no_sync_send proc~mpirank mpirank proc~prterr->proc~mpirank proc~mpisize mpisize proc~prterr->proc~mpisize proc~read_chkpt->proc~prterr proc~read_chkpt->proc~mpirank proc~read_chkpt->proc~set_error_alloc proc~w90_readwrite_chkpt_dist w90_readwrite_chkpt_dist proc~read_chkpt->proc~w90_readwrite_chkpt_dist proc~w90_readwrite_read_chkpt w90_readwrite_read_chkpt proc~read_chkpt->proc~w90_readwrite_read_chkpt proc~read_eigvals->proc~prterr proc~read_eigvals->proc~set_error_fatal proc~w90_readwrite_read_eigvals w90_readwrite_read_eigvals proc~read_eigvals->proc~w90_readwrite_read_eigvals proc~set_error_input->proc~comms_sync_error proc~set_base_error set_base_error proc~set_error_input->proc~set_base_error proc~set_kpoint_distribution->proc~prterr proc~set_kpoint_distribution->proc~set_error_fatal proc~sitesym_read->proc~set_error_alloc proc~set_error_file set_error_file proc~sitesym_read->proc~set_error_file proc~w90_disentangle~2->proc~prterr proc~dis_main dis_main proc~w90_disentangle~2->proc~dis_main proc~overlap_write overlap_write proc~w90_disentangle~2->proc~overlap_write proc~w90_disentangle~2->proc~set_error_fatal proc~setup_m_loc setup_m_loc proc~w90_disentangle~2->proc~setup_m_loc proc~w90_distribute_kpts->proc~prterr proc~w90_distribute_kpts->proc~set_error_fatal proc~w90_create_kmesh w90_create_kmesh proc~w90_get_nn~2->proc~w90_create_kmesh proc~w90_input_reader~2->proc~prterr proc~w90_input_reader~2->proc~set_error_fatal proc~valid_communicator valid_communicator proc~w90_input_reader~2->proc~valid_communicator proc~w90_input_reader~2->proc~w90_readwrite_clean_infile proc~w90_input_reader~2->proc~w90_readwrite_in_file proc~w90_wannier90_readwrite_read w90_wannier90_readwrite_read proc~w90_input_reader~2->proc~w90_wannier90_readwrite_read proc~w90_plot->proc~prterr proc~plot_main plot_main proc~w90_plot->proc~plot_main proc~w90_print_info~2->proc~prterr proc~w90_print_info~2->proc~mpirank proc~w90_print_info~2->proc~mpisize proc~w90_readwrite_write_header w90_readwrite_write_header proc~w90_print_info~2->proc~w90_readwrite_write_header proc~w90_wannier90_readwrite_write w90_wannier90_readwrite_write proc~w90_print_info~2->proc~w90_wannier90_readwrite_write proc~w90_project_overlap~2->proc~prterr proc~overlap_project overlap_project proc~w90_project_overlap~2->proc~overlap_project proc~overlap_project_gamma overlap_project_gamma proc~w90_project_overlap~2->proc~overlap_project_gamma proc~w90_project_overlap~2->proc~overlap_write proc~w90_project_overlap~2->proc~set_error_fatal proc~w90_transport->proc~comms_sync_error proc~w90_transport->proc~prterr proc~w90_transport->proc~mpirank proc~tran_main tran_main proc~w90_transport->proc~tran_main proc~w90_wannierise~2->proc~comms_sync_error proc~w90_wannierise~2->proc~prterr proc~w90_wannierise~2->proc~mpirank proc~w90_wannierise~2->proc~set_error_fatal proc~wann_main wann_main proc~w90_wannierise~2->proc~wann_main proc~wann_main_gamma wann_main_gamma proc~w90_wannierise~2->proc~wann_main_gamma proc~write_chkpt->proc~prterr interface~comms_reduce comms_reduce proc~write_chkpt->interface~comms_reduce proc~write_chkpt->proc~mpirank proc~write_chkpt->proc~set_error_alloc proc~set_error_dealloc set_error_dealloc proc~write_chkpt->proc~set_error_dealloc proc~write_chkpt->proc~set_error_fatal proc~w90_wannier90_readwrite_write_chkpt w90_wannier90_readwrite_write_chkpt proc~write_chkpt->proc~w90_wannier90_readwrite_write_chkpt proc~write_kmesh->proc~prterr proc~kmesh_write kmesh_write proc~write_kmesh->proc~kmesh_write proc~write_kmesh->proc~mpirank proc~write_kmesh->proc~set_error_fatal proc~write_kmesh->proc~w90_create_kmesh proc~comms_no_sync_bcast_char comms_no_sync_bcast_char interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_char proc~comms_no_sync_bcast_cmplx comms_no_sync_bcast_cmplx interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_cmplx proc~comms_no_sync_bcast_int comms_no_sync_bcast_int interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_int proc~comms_no_sync_bcast_logical comms_no_sync_bcast_logical interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_logical proc~comms_no_sync_bcast_real comms_no_sync_bcast_real interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_real proc~comms_no_sync_recv_char comms_no_sync_recv_char interface~comms_no_sync_recv->proc~comms_no_sync_recv_char proc~comms_no_sync_recv_cmplx comms_no_sync_recv_cmplx interface~comms_no_sync_recv->proc~comms_no_sync_recv_cmplx proc~comms_no_sync_recv_int comms_no_sync_recv_int interface~comms_no_sync_recv->proc~comms_no_sync_recv_int proc~comms_no_sync_recv_logical comms_no_sync_recv_logical interface~comms_no_sync_recv->proc~comms_no_sync_recv_logical proc~comms_no_sync_recv_real comms_no_sync_recv_real interface~comms_no_sync_recv->proc~comms_no_sync_recv_real proc~comms_no_sync_send_char comms_no_sync_send_char interface~comms_no_sync_send->proc~comms_no_sync_send_char proc~comms_no_sync_send_cmplx comms_no_sync_send_cmplx interface~comms_no_sync_send->proc~comms_no_sync_send_cmplx proc~comms_no_sync_send_int comms_no_sync_send_int interface~comms_no_sync_send->proc~comms_no_sync_send_int proc~comms_no_sync_send_logical comms_no_sync_send_logical interface~comms_no_sync_send->proc~comms_no_sync_send_logical proc~comms_no_sync_send_real comms_no_sync_send_real interface~comms_no_sync_send->proc~comms_no_sync_send_real proc~comms_reduce_cmplx comms_reduce_cmplx interface~comms_reduce->proc~comms_reduce_cmplx proc~comms_reduce_int comms_reduce_int interface~comms_reduce->proc~comms_reduce_int proc~comms_reduce_real comms_reduce_real interface~comms_reduce->proc~comms_reduce_real proc~dis_main->proc~mpirank proc~dis_main->proc~set_error_alloc proc~dis_main->proc~set_error_dealloc proc~dis_main->proc~set_error_fatal proc~dis_extract dis_extract proc~dis_main->proc~dis_extract proc~dis_extract_gamma dis_extract_gamma proc~dis_main->proc~dis_extract_gamma proc~dis_proj_froz dis_proj_froz proc~dis_main->proc~dis_proj_froz proc~dis_project dis_project proc~dis_main->proc~dis_project proc~dis_windows dis_windows proc~dis_main->proc~dis_windows proc~dis_windows_proj dis_windows_proj proc~dis_main->proc~dis_windows_proj proc~internal_check_orthonorm internal_check_orthonorm proc~dis_main->proc~internal_check_orthonorm proc~internal_find_u internal_find_u proc~dis_main->proc~internal_find_u proc~internal_find_u_gamma internal_find_u_gamma proc~dis_main->proc~internal_find_u_gamma proc~internal_slim_m internal_slim_m proc~dis_main->proc~internal_slim_m proc~io_stopwatch_start io_stopwatch_start proc~dis_main->proc~io_stopwatch_start proc~io_stopwatch_stop io_stopwatch_stop proc~dis_main->proc~io_stopwatch_stop proc~sitesym_replace_d_matrix_band sitesym_replace_d_matrix_band proc~dis_main->proc~sitesym_replace_d_matrix_band proc~sitesym_symmetrize_u_matrix sitesym_symmetrize_u_matrix proc~dis_main->proc~sitesym_symmetrize_u_matrix proc~utility_recip_lattice_base utility_recip_lattice_base proc~dis_main->proc~utility_recip_lattice_base zgemm zgemm proc~dis_main->zgemm proc~kmesh_write->proc~io_date proc~kmesh_write->proc~io_stopwatch_start proc~kmesh_write->proc~io_stopwatch_stop proc~kmesh_write->proc~utility_recip_lattice_base proc~overlap_project->proc~mpirank proc~overlap_project->proc~set_error_alloc proc~overlap_project->proc~set_error_dealloc proc~overlap_project->proc~set_error_fatal interface~comms_allreduce comms_allreduce proc~overlap_project->interface~comms_allreduce proc~overlap_project->proc~io_stopwatch_start proc~overlap_project->proc~io_stopwatch_stop proc~overlap_project->proc~sitesym_symmetrize_u_matrix proc~utility_zgemm utility_zgemm proc~overlap_project->proc~utility_zgemm zgesvd zgesvd proc~overlap_project->zgesvd proc~overlap_project_gamma->proc~set_error_alloc proc~overlap_project_gamma->proc~set_error_dealloc proc~overlap_project_gamma->proc~set_error_fatal dgemm dgemm proc~overlap_project_gamma->dgemm dgesvd dgesvd proc~overlap_project_gamma->dgesvd proc~overlap_project_gamma->proc~io_stopwatch_start proc~overlap_project_gamma->proc~io_stopwatch_stop proc~overlap_project_gamma->proc~utility_zgemm proc~overlap_read->proc~mpirank proc~overlap_read->proc~set_error_alloc proc~overlap_read->proc~set_error_dealloc proc~overlap_read->proc~set_error_fatal proc~overlap_read->proc~set_error_file proc~overlap_read->proc~io_stopwatch_start proc~overlap_read->proc~io_stopwatch_stop proc~overlap_rotate overlap_rotate proc~overlap_read->proc~overlap_rotate proc~overlap_write->proc~mpirank proc~overlap_write->proc~set_error_alloc proc~overlap_write->proc~set_error_dealloc proc~overlap_write->proc~set_error_file proc~overlap_write->interface~comms_allreduce proc~plot_main->proc~mpirank proc~hamiltonian_get_hr hamiltonian_get_hr proc~plot_main->proc~hamiltonian_get_hr proc~hamiltonian_setup hamiltonian_setup proc~plot_main->proc~hamiltonian_setup proc~hamiltonian_write_hr hamiltonian_write_hr proc~plot_main->proc~hamiltonian_write_hr proc~hamiltonian_write_tb hamiltonian_write_tb proc~plot_main->proc~hamiltonian_write_tb proc~plot_main->proc~io_stopwatch_start proc~plot_main->proc~io_stopwatch_stop proc~plot_bvec plot_bvec proc~plot_main->proc~plot_bvec proc~plot_calc_projection plot_calc_projection proc~plot_main->proc~plot_calc_projection proc~plot_fermi_surface plot_fermi_surface proc~plot_main->proc~plot_fermi_surface proc~plot_interpolate_bands plot_interpolate_bands proc~plot_main->proc~plot_interpolate_bands proc~plot_svd_omega_i plot_svd_omega_i proc~plot_main->proc~plot_svd_omega_i proc~plot_u_matrices plot_u_matrices proc~plot_main->proc~plot_u_matrices proc~plot_wannier plot_wannier proc~plot_main->proc~plot_wannier proc~plot_write_r2mn plot_write_r2mn proc~plot_main->proc~plot_write_r2mn proc~plot_write_rmn plot_write_rmn proc~plot_main->proc~plot_write_rmn proc~plot_write_vdw_data plot_write_vdw_data proc~plot_main->proc~plot_write_vdw_data proc~plot_write_xyz plot_write_xyz proc~plot_main->proc~plot_write_xyz proc~plot_main->proc~utility_recip_lattice_base proc~ws_translate_dist ws_translate_dist proc~plot_main->proc~ws_translate_dist proc~ws_write_vec ws_write_vec proc~plot_main->proc~ws_write_vec proc~set_error_alloc->proc~comms_sync_error proc~set_error_alloc->proc~set_base_error proc~set_error_dealloc->proc~comms_sync_error proc~set_error_dealloc->proc~set_base_error proc~set_error_fatal->proc~comms_sync_error proc~set_error_fatal->proc~set_base_error proc~set_error_file->proc~comms_sync_error proc~set_error_file->proc~set_base_error proc~setup_m_loc->proc~mpirank proc~setup_m_loc->proc~set_error_alloc proc~setup_m_loc->proc~set_error_dealloc proc~setup_m_loc->proc~io_stopwatch_start proc~setup_m_loc->proc~io_stopwatch_stop proc~setup_m_loc->zgemm proc~tran_main->proc~set_error_dealloc proc~tran_main->proc~hamiltonian_get_hr proc~tran_main->proc~hamiltonian_setup proc~tran_main->proc~hamiltonian_write_hr proc~tran_main->proc~io_stopwatch_start proc~tran_main->proc~io_stopwatch_stop proc~tran_bulk tran_bulk proc~tran_main->proc~tran_bulk proc~tran_cut_hr_one_dim tran_cut_hr_one_dim proc~tran_main->proc~tran_cut_hr_one_dim proc~tran_find_integral_signatures tran_find_integral_signatures proc~tran_main->proc~tran_find_integral_signatures proc~tran_get_ht tran_get_ht proc~tran_main->proc~tran_get_ht proc~tran_lcr tran_lcr proc~tran_main->proc~tran_lcr proc~tran_lcr_2c2_build_ham tran_lcr_2c2_build_ham proc~tran_main->proc~tran_lcr_2c2_build_ham proc~tran_lcr_2c2_sort tran_lcr_2c2_sort proc~tran_main->proc~tran_lcr_2c2_sort proc~tran_parity_enforce tran_parity_enforce proc~tran_main->proc~tran_parity_enforce proc~tran_reduce_hr tran_reduce_hr proc~tran_main->proc~tran_reduce_hr proc~tran_write_xyz tran_write_xyz proc~tran_main->proc~tran_write_xyz proc~w90_create_kmesh->proc~prterr proc~kmesh_get kmesh_get proc~w90_create_kmesh->proc~kmesh_get proc~w90_readwrite_chkpt_dist->proc~mpirank proc~w90_readwrite_chkpt_dist->proc~set_error_alloc interface~comms_bcast comms_bcast proc~w90_readwrite_chkpt_dist->interface~comms_bcast proc~w90_readwrite_clean_infile->proc~set_error_input proc~w90_readwrite_clean_infile->proc~set_error_dealloc proc~w90_readwrite_clear_keywords w90_readwrite_clear_keywords proc~w90_readwrite_clean_infile->proc~w90_readwrite_clear_keywords proc~w90_readwrite_in_file->proc~set_error_alloc proc~w90_readwrite_in_file->proc~set_error_file proc~utility_lowercase utility_lowercase proc~w90_readwrite_in_file->proc~utility_lowercase proc~w90_readwrite_read_chkpt_header w90_readwrite_read_chkpt_header proc~w90_readwrite_read_chkpt->proc~w90_readwrite_read_chkpt_header proc~w90_readwrite_read_chkpt_matrices w90_readwrite_read_chkpt_matrices proc~w90_readwrite_read_chkpt->proc~w90_readwrite_read_chkpt_matrices proc~w90_readwrite_read_eigvals->proc~set_error_file proc~w90_readwrite_write_header->proc~io_date proc~w90_wannier90_readwrite_read->proc~set_error_input proc~w90_readwrite_read_algorithm_control w90_readwrite_read_algorithm_control proc~w90_wannier90_readwrite_read->proc~w90_readwrite_read_algorithm_control proc~w90_readwrite_read_dis_manifold w90_readwrite_read_dis_manifold proc~w90_wannier90_readwrite_read->proc~w90_readwrite_read_dis_manifold proc~w90_readwrite_read_explicit_kpath w90_readwrite_read_explicit_kpath proc~w90_wannier90_readwrite_read->proc~w90_readwrite_read_explicit_kpath proc~w90_readwrite_read_fermi_energy w90_readwrite_read_fermi_energy proc~w90_wannier90_readwrite_read->proc~w90_readwrite_read_fermi_energy proc~w90_readwrite_read_gamma_only w90_readwrite_read_gamma_only proc~w90_wannier90_readwrite_read->proc~w90_readwrite_read_gamma_only proc~w90_readwrite_read_kpath w90_readwrite_read_kpath proc~w90_wannier90_readwrite_read->proc~w90_readwrite_read_kpath proc~w90_readwrite_read_units w90_readwrite_read_units proc~w90_wannier90_readwrite_read->proc~w90_readwrite_read_units proc~w90_readwrite_read_verbosity w90_readwrite_read_verbosity proc~w90_wannier90_readwrite_read->proc~w90_readwrite_read_verbosity proc~w90_readwrite_read_ws_data w90_readwrite_read_ws_data proc~w90_wannier90_readwrite_read->proc~w90_readwrite_read_ws_data proc~w90_wannier90_readwrite_read_band_plot w90_wannier90_readwrite_read_band_plot proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_band_plot proc~w90_wannier90_readwrite_read_bloch_phase w90_wannier90_readwrite_read_bloch_phase proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_bloch_phase proc~w90_wannier90_readwrite_read_constrained_centres w90_wannier90_readwrite_read_constrained_centres proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_constrained_centres proc~w90_wannier90_readwrite_read_disentangle w90_wannier90_readwrite_read_disentangle proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_disentangle proc~w90_wannier90_readwrite_read_dist_cutoff w90_wannier90_readwrite_read_dist_cutoff proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_dist_cutoff proc~w90_wannier90_readwrite_read_fermi_surface w90_wannier90_readwrite_read_fermi_surface proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_fermi_surface proc~w90_wannier90_readwrite_read_hamil w90_wannier90_readwrite_read_hamil proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_hamil proc~w90_wannier90_readwrite_read_one_dim w90_wannier90_readwrite_read_one_dim proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_one_dim proc~w90_wannier90_readwrite_read_outfiles w90_wannier90_readwrite_read_outfiles proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_outfiles proc~w90_wannier90_readwrite_read_plot_info w90_wannier90_readwrite_read_plot_info proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_plot_info proc~w90_wannier90_readwrite_read_post_proc w90_wannier90_readwrite_read_post_proc proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_post_proc proc~w90_wannier90_readwrite_read_restart w90_wannier90_readwrite_read_restart proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_restart proc~w90_wannier90_readwrite_read_sym w90_wannier90_readwrite_read_sym proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_sym proc~w90_wannier90_readwrite_read_transport w90_wannier90_readwrite_read_transport proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_transport proc~w90_wannier90_readwrite_read_w90_calcs w90_wannier90_readwrite_read_w90_calcs proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_w90_calcs proc~w90_wannier90_readwrite_read_wann_plot w90_wannier90_readwrite_read_wann_plot proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_wann_plot proc~w90_wannier90_readwrite_read_wannierise w90_wannier90_readwrite_read_wannierise proc~w90_wannier90_readwrite_read->proc~w90_wannier90_readwrite_read_wannierise proc~w90_wannier90_readwrite_read_special->proc~set_error_alloc proc~utility_inverse_mat utility_inverse_mat proc~w90_wannier90_readwrite_read_special->proc~utility_inverse_mat proc~w90_readwrite_read_atoms w90_readwrite_read_atoms proc~w90_wannier90_readwrite_read_special->proc~w90_readwrite_read_atoms proc~w90_readwrite_read_distk w90_readwrite_read_distk proc~w90_wannier90_readwrite_read_special->proc~w90_readwrite_read_distk proc~w90_readwrite_read_exclude_bands w90_readwrite_read_exclude_bands proc~w90_wannier90_readwrite_read_special->proc~w90_readwrite_read_exclude_bands proc~w90_readwrite_read_kmesh_data w90_readwrite_read_kmesh_data proc~w90_wannier90_readwrite_read_special->proc~w90_readwrite_read_kmesh_data proc~w90_readwrite_read_kpoints w90_readwrite_read_kpoints proc~w90_wannier90_readwrite_read_special->proc~w90_readwrite_read_kpoints proc~w90_readwrite_read_lattice w90_readwrite_read_lattice proc~w90_wannier90_readwrite_read_special->proc~w90_readwrite_read_lattice proc~w90_readwrite_read_mp_grid w90_readwrite_read_mp_grid proc~w90_wannier90_readwrite_read_special->proc~w90_readwrite_read_mp_grid proc~w90_readwrite_read_num_bands w90_readwrite_read_num_bands proc~w90_wannier90_readwrite_read_special->proc~w90_readwrite_read_num_bands proc~w90_readwrite_read_num_wann w90_readwrite_read_num_wann proc~w90_wannier90_readwrite_read_special->proc~w90_readwrite_read_num_wann proc~w90_readwrite_read_system w90_readwrite_read_system proc~w90_wannier90_readwrite_read_special->proc~w90_readwrite_read_system proc~w90_readwrite_read_total_bands w90_readwrite_read_total_bands proc~w90_wannier90_readwrite_read_special->proc~w90_readwrite_read_total_bands proc~w90_wannier90_readwrite_read_explicit_kpts w90_wannier90_readwrite_read_explicit_kpts proc~w90_wannier90_readwrite_read_special->proc~w90_wannier90_readwrite_read_explicit_kpts proc~w90_wannier90_readwrite_read_projections w90_wannier90_readwrite_read_projections proc~w90_wannier90_readwrite_read_special->proc~w90_wannier90_readwrite_read_projections proc~utility_cart_to_frac utility_cart_to_frac proc~w90_wannier90_readwrite_write->proc~utility_cart_to_frac proc~utility_frac_to_cart utility_frac_to_cart proc~w90_wannier90_readwrite_write->proc~utility_frac_to_cart proc~w90_wannier90_readwrite_write->proc~utility_inverse_mat proc~w90_wannier90_readwrite_write->proc~utility_recip_lattice_base proc~w90_wannier90_readwrite_write_chkpt->proc~io_date proc~w90_wannier90_readwrite_write_chkpt->proc~utility_recip_lattice_base proc~wann_main->proc~mpirank proc~wann_main->proc~mpisize proc~wann_main->proc~set_error_alloc proc~wann_main->proc~set_error_dealloc proc~wann_main->proc~set_error_fatal proc~wann_main->interface~comms_allreduce proc~wann_main->proc~hamiltonian_setup proc~internal_test_convergence internal_test_convergence proc~wann_main->proc~internal_test_convergence proc~wann_main->proc~io_stopwatch_start proc~wann_main->proc~io_stopwatch_stop proc~io_wallclocktime io_wallclocktime proc~wann_main->proc~io_wallclocktime proc~sitesym_symmetrize_gradient sitesym_symmetrize_gradient proc~wann_main->proc~sitesym_symmetrize_gradient proc~sitesym_symmetrize_rotation sitesym_symmetrize_rotation proc~wann_main->proc~sitesym_symmetrize_rotation proc~wann_main->proc~utility_frac_to_cart proc~wann_main->proc~utility_zgemm proc~wann_check_unitarity wann_check_unitarity proc~wann_main->proc~wann_check_unitarity proc~wann_domega wann_domega proc~wann_main->proc~wann_domega proc~wann_omega wann_omega proc~wann_main->proc~wann_omega proc~wann_phases wann_phases proc~wann_main->proc~wann_phases proc~wann_spread_copy wann_spread_copy proc~wann_main->proc~wann_spread_copy zgees zgees proc~wann_main->zgees proc~wann_main->zgemm zgemv zgemv proc~wann_main->zgemv zheev zheev proc~wann_main->zheev proc~wann_main_gamma->proc~io_time proc~wann_main_gamma->proc~mpirank proc~wann_main_gamma->proc~set_error_alloc proc~wann_main_gamma->proc~set_error_dealloc proc~wann_main_gamma->proc~internal_test_convergence proc~wann_main_gamma->proc~io_stopwatch_start proc~wann_main_gamma->proc~io_stopwatch_stop proc~wann_main_gamma->proc~utility_frac_to_cart proc~wann_main_gamma->proc~utility_zgemm proc~wann_main_gamma->proc~wann_check_unitarity proc~wann_omega_gamma wann_omega_gamma proc~wann_main_gamma->proc~wann_omega_gamma proc~wann_main_gamma->proc~wann_phases proc~wann_main_gamma->proc~wann_spread_copy proc~comms_allreduce_cmplx comms_allreduce_cmplx interface~comms_allreduce->proc~comms_allreduce_cmplx proc~comms_allreduce_real comms_allreduce_real interface~comms_allreduce->proc~comms_allreduce_real proc~comms_bcast_char comms_bcast_char interface~comms_bcast->proc~comms_bcast_char proc~comms_bcast_cmplx comms_bcast_cmplx interface~comms_bcast->proc~comms_bcast_cmplx proc~comms_bcast_int comms_bcast_int interface~comms_bcast->proc~comms_bcast_int proc~comms_bcast_logical comms_bcast_logical interface~comms_bcast->proc~comms_bcast_logical proc~comms_bcast_real comms_bcast_real interface~comms_bcast->proc~comms_bcast_real proc~comms_reduce_cmplx->proc~comms_sync_error proc~comms_no_sync_reduce_cmplx comms_no_sync_reduce_cmplx proc~comms_reduce_cmplx->proc~comms_no_sync_reduce_cmplx proc~comms_reduce_int->proc~comms_sync_error proc~comms_no_sync_reduce_int comms_no_sync_reduce_int proc~comms_reduce_int->proc~comms_no_sync_reduce_int proc~comms_reduce_real->proc~comms_sync_error proc~comms_no_sync_reduce_real comms_no_sync_reduce_real proc~comms_reduce_real->proc~comms_no_sync_reduce_real proc~dis_extract->proc~set_error_alloc proc~dis_extract->proc~set_error_dealloc proc~dis_extract->proc~set_error_fatal proc~dis_extract->interface~comms_allreduce proc~dis_extract->interface~comms_bcast proc~dis_extract->proc~io_stopwatch_start proc~dis_extract->proc~io_stopwatch_stop proc~dis_extract->proc~io_wallclocktime proc~dis_extract->proc~sitesym_symmetrize_u_matrix proc~dis_extract->zgemm proc~internal_test_convergence~2 internal_test_convergence proc~dis_extract->proc~internal_test_convergence~2 proc~internal_zmatrix internal_zmatrix proc~dis_extract->proc~internal_zmatrix proc~sitesym_dis_extract_symmetry sitesym_dis_extract_symmetry proc~dis_extract->proc~sitesym_dis_extract_symmetry proc~sitesym_symmetrize_zmatrix sitesym_symmetrize_zmatrix proc~dis_extract->proc~sitesym_symmetrize_zmatrix zhpevx zhpevx proc~dis_extract->zhpevx proc~dis_extract_gamma->proc~io_time proc~dis_extract_gamma->proc~set_error_alloc proc~dis_extract_gamma->proc~set_error_dealloc proc~dis_extract_gamma->proc~set_error_fatal proc~dis_extract_gamma->proc~io_stopwatch_start proc~dis_extract_gamma->proc~io_stopwatch_stop proc~dis_extract_gamma->zgemm dspevx dspevx proc~dis_extract_gamma->dspevx proc~dis_extract_gamma->proc~internal_test_convergence~2 proc~internal_zmatrix_gamma internal_zmatrix_gamma proc~dis_extract_gamma->proc~internal_zmatrix_gamma proc~dis_proj_froz->proc~set_error_alloc proc~dis_proj_froz->proc~set_error_dealloc proc~dis_proj_froz->proc~set_error_fatal proc~dis_proj_froz->proc~io_stopwatch_start proc~dis_proj_froz->proc~io_stopwatch_stop proc~dis_proj_froz->zhpevx proc~dis_project->proc~set_error_alloc proc~dis_project->proc~set_error_dealloc proc~dis_project->proc~set_error_fatal proc~dis_project->proc~io_stopwatch_start proc~dis_project->proc~io_stopwatch_stop proc~dis_project->zgesvd proc~dis_windows->proc~set_error_input proc~dis_windows->proc~set_error_fatal proc~dis_windows->proc~io_stopwatch_start proc~dis_windows->proc~io_stopwatch_stop 10 10 proc~dis_windows->10 proc~dis_windows_proj->proc~set_error_alloc proc~dis_windows_proj->proc~set_error_fatal proc~dis_windows_proj->proc~io_stopwatch_start proc~dis_windows_proj->proc~io_stopwatch_stop proc~dis_windows_proj->10 proc~dis_otsu_thresholds dis_otsu_thresholds proc~dis_windows_proj->proc~dis_otsu_thresholds proc~hamiltonian_get_hr->proc~set_error_alloc proc~hamiltonian_get_hr->proc~set_error_dealloc proc~hamiltonian_get_hr->proc~io_stopwatch_start proc~hamiltonian_get_hr->proc~io_stopwatch_stop proc~hamiltonian_get_hr->proc~utility_cart_to_frac proc~hamiltonian_get_hr->proc~utility_frac_to_cart proc~hamiltonian_get_hr->proc~utility_inverse_mat proc~hamiltonian_setup->proc~set_error_alloc proc~hamiltonian_wigner_seitz hamiltonian_wigner_seitz proc~hamiltonian_setup->proc~hamiltonian_wigner_seitz proc~hamiltonian_write_hr->proc~io_date proc~hamiltonian_write_hr->proc~set_error_file proc~hamiltonian_write_hr->proc~io_stopwatch_start proc~hamiltonian_write_hr->proc~io_stopwatch_stop proc~hamiltonian_write_tb->proc~io_date proc~hamiltonian_write_tb->interface~comms_reduce proc~hamiltonian_write_tb->proc~mpirank proc~hamiltonian_write_tb->proc~set_error_file proc~hamiltonian_write_tb->proc~io_stopwatch_start proc~hamiltonian_write_tb->proc~io_stopwatch_stop proc~internal_check_orthonorm->proc~set_error_fatal proc~internal_check_orthonorm->proc~io_stopwatch_start proc~internal_check_orthonorm->proc~io_stopwatch_stop proc~internal_find_u->proc~set_error_alloc proc~internal_find_u->proc~set_error_dealloc proc~internal_find_u->proc~set_error_fatal proc~internal_find_u->interface~comms_bcast proc~internal_find_u->proc~io_stopwatch_start proc~internal_find_u->proc~io_stopwatch_stop proc~internal_find_u->proc~sitesym_symmetrize_u_matrix proc~internal_find_u->zgemm proc~internal_find_u->zgesvd proc~internal_find_u_gamma->proc~set_error_alloc proc~internal_find_u_gamma->proc~set_error_dealloc proc~internal_find_u_gamma->proc~set_error_fatal proc~internal_find_u_gamma->dgemm proc~internal_find_u_gamma->dgesvd proc~internal_find_u_gamma->proc~io_stopwatch_start proc~internal_find_u_gamma->proc~io_stopwatch_stop proc~internal_slim_m->proc~mpirank proc~internal_slim_m->proc~set_error_alloc proc~internal_slim_m->proc~set_error_dealloc proc~internal_slim_m->proc~io_stopwatch_start proc~internal_slim_m->proc~io_stopwatch_stop proc~internal_test_convergence->proc~set_error_alloc proc~internal_test_convergence->proc~set_error_dealloc proc~kmesh_get->proc~set_error_input proc~kmesh_get->proc~set_error_alloc proc~kmesh_get->proc~set_error_dealloc proc~kmesh_get->proc~set_error_fatal proc~kmesh_get->proc~io_stopwatch_start proc~kmesh_get->proc~io_stopwatch_stop proc~kmesh_get->proc~utility_cart_to_frac proc~kmesh_get->proc~utility_frac_to_cart proc~kmesh_get->proc~utility_inverse_mat proc~kmesh_bvectors_perm kmesh_bvectors_perm proc~kmesh_get->proc~kmesh_bvectors_perm proc~kmesh_get_bvectors kmesh_get_bvectors proc~kmesh_get->proc~kmesh_get_bvectors proc~kmesh_shell_automatic kmesh_shell_automatic proc~kmesh_get->proc~kmesh_shell_automatic proc~kmesh_shell_fixed kmesh_shell_fixed proc~kmesh_get->proc~kmesh_shell_fixed proc~kmesh_shell_from_file kmesh_shell_from_file proc~kmesh_get->proc~kmesh_shell_from_file proc~kmesh_shell_reconstruct kmesh_shell_reconstruct proc~kmesh_get->proc~kmesh_shell_reconstruct proc~kmesh_supercell_sort kmesh_supercell_sort proc~kmesh_get->proc~kmesh_supercell_sort proc~utility_compar utility_compar proc~kmesh_get->proc~utility_compar proc~utility_recip_lattice utility_recip_lattice proc~kmesh_get->proc~utility_recip_lattice proc~overlap_rotate->proc~set_error_fatal proc~overlap_rotate->proc~io_stopwatch_start proc~overlap_rotate->proc~io_stopwatch_stop dspev dspev proc~overlap_rotate->dspev proc~plot_bvec->proc~io_date proc~plot_bvec->proc~set_error_file proc~plot_calc_projection->proc~io_stopwatch_start proc~plot_calc_projection->proc~io_stopwatch_stop proc~plot_fermi_surface->proc~io_date proc~plot_fermi_surface->proc~io_time proc~plot_fermi_surface->proc~set_error_alloc proc~plot_fermi_surface->proc~set_error_fatal proc~plot_fermi_surface->proc~io_stopwatch_start proc~plot_fermi_surface->proc~io_stopwatch_stop proc~set_error_warn set_error_warn proc~plot_fermi_surface->proc~set_error_warn proc~plot_fermi_surface->zhpevx proc~plot_interpolate_bands->proc~io_date proc~plot_interpolate_bands->proc~io_time proc~plot_interpolate_bands->interface~comms_reduce proc~plot_interpolate_bands->proc~mpirank proc~plot_interpolate_bands->proc~mpisize proc~plot_interpolate_bands->proc~set_error_alloc proc~plot_interpolate_bands->proc~set_error_dealloc proc~plot_interpolate_bands->proc~set_error_fatal proc~plot_interpolate_bands->proc~io_stopwatch_start proc~plot_interpolate_bands->proc~io_stopwatch_stop proc~plot_interpolate_bands->proc~ws_translate_dist 20 20 proc~plot_interpolate_bands->20 proc~comms_array_split comms_array_split proc~plot_interpolate_bands->proc~comms_array_split proc~plot_interpolate_bands->proc~set_error_warn proc~utility_metric utility_metric proc~plot_interpolate_bands->proc~utility_metric proc~plot_interpolate_bands->zhpevx proc~plot_svd_omega_i->proc~mpirank proc~plot_svd_omega_i->proc~set_error_alloc proc~plot_svd_omega_i->proc~set_error_dealloc proc~plot_svd_omega_i->proc~set_error_fatal proc~plot_svd_omega_i->interface~comms_allreduce proc~plot_svd_omega_i->proc~io_stopwatch_start proc~plot_svd_omega_i->proc~io_stopwatch_stop proc~plot_svd_omega_i->zgesvd proc~plot_u_matrices->proc~io_date proc~plot_u_matrices->proc~set_error_alloc proc~plot_u_matrices->proc~set_error_dealloc proc~plot_u_matrices->zgemm proc~plot_wannier->proc~io_date proc~plot_wannier->interface~comms_reduce proc~plot_wannier->proc~mpirank proc~plot_wannier->proc~mpisize proc~plot_wannier->proc~set_error_alloc proc~plot_wannier->proc~set_error_dealloc proc~plot_wannier->proc~set_error_file proc~plot_wannier->proc~io_stopwatch_start proc~plot_wannier->proc~io_stopwatch_stop proc~plot_wannier->proc~utility_cart_to_frac proc~plot_wannier->proc~utility_frac_to_cart proc~plot_wannier->proc~utility_inverse_mat proc~plot_wannier->proc~utility_recip_lattice_base proc~plot_read_unk plot_read_unk proc~plot_wannier->proc~plot_read_unk proc~plot_wannier->proc~set_error_warn zaxpy zaxpy proc~plot_wannier->zaxpy proc~plot_write_r2mn->interface~comms_reduce proc~plot_write_r2mn->proc~mpirank proc~plot_write_r2mn->proc~set_error_file proc~plot_write_rmn->proc~io_date proc~plot_write_rmn->interface~comms_reduce proc~plot_write_rmn->proc~mpirank proc~plot_write_rmn->proc~set_error_file proc~plot_write_vdw_data->proc~set_error_input proc~plot_write_vdw_data->proc~set_error_alloc proc~plot_write_vdw_data->proc~set_error_dealloc proc~utility_translate_home utility_translate_home proc~plot_write_vdw_data->proc~utility_translate_home proc~plot_write_xyz->proc~io_date proc~plot_write_xyz->proc~set_error_file proc~plot_write_xyz->proc~utility_translate_home proc~sitesym_replace_d_matrix_band->proc~set_error_alloc proc~sitesym_replace_d_matrix_band->proc~set_error_dealloc proc~sitesym_symmetrize_gradient->proc~set_error_fatal proc~sitesym_symmetrize_gradient->proc~utility_zgemm proc~sitesym_symmetrize_rotation->proc~set_error_fatal proc~sitesym_symmetrize_rotation->proc~utility_zgemm proc~sitesym_symmetrize_u_matrix->proc~set_error_fatal proc~sitesym_symmetrize_u_matrix->zgemm proc~symmetrize_ukirr symmetrize_ukirr proc~sitesym_symmetrize_u_matrix->proc~symmetrize_ukirr proc~tran_bulk->proc~io_date proc~tran_bulk->proc~set_error_alloc proc~tran_bulk->proc~set_error_dealloc proc~tran_bulk->proc~io_stopwatch_start proc~tran_bulk->proc~io_stopwatch_stop proc~tran_bulk->zgemm proc~tran_green tran_green proc~tran_bulk->proc~tran_green proc~tran_read_htx tran_read_htX proc~tran_bulk->proc~tran_read_htx proc~tran_transfer tran_transfer proc~tran_bulk->proc~tran_transfer proc~tran_cut_hr_one_dim->proc~io_stopwatch_start proc~tran_cut_hr_one_dim->proc~io_stopwatch_stop proc~tran_find_integral_signatures->proc~set_error_alloc proc~tran_find_integral_signatures->proc~set_error_dealloc proc~tran_find_integral_signatures->proc~set_error_file proc~tran_find_integral_signatures->proc~io_stopwatch_start proc~tran_find_integral_signatures->proc~io_stopwatch_stop proc~tran_get_ht->proc~io_date proc~tran_get_ht->proc~set_error_alloc proc~tran_get_ht->proc~set_error_fatal proc~tran_get_ht->proc~io_stopwatch_start proc~tran_get_ht->proc~io_stopwatch_stop proc~tran_lcr->proc~io_date proc~tran_lcr->proc~set_error_alloc proc~tran_lcr->proc~set_error_dealloc proc~tran_lcr->proc~set_error_fatal proc~tran_lcr->proc~io_stopwatch_start proc~tran_lcr->proc~io_stopwatch_stop proc~tran_lcr->zgemm proc~tran_lcr->proc~tran_green proc~tran_read_htc tran_read_htC proc~tran_lcr->proc~tran_read_htc proc~tran_lcr->proc~tran_read_htx proc~tran_read_htxy tran_read_htXY proc~tran_lcr->proc~tran_read_htxy proc~tran_lcr->proc~tran_transfer zgbsv zgbsv proc~tran_lcr->zgbsv proc~tran_lcr_2c2_build_ham->proc~io_date proc~tran_lcr_2c2_build_ham->proc~set_error_alloc proc~tran_lcr_2c2_build_ham->proc~set_error_dealloc proc~tran_lcr_2c2_build_ham->proc~set_error_fatal proc~tran_lcr_2c2_build_ham->proc~io_stopwatch_start proc~tran_lcr_2c2_build_ham->proc~io_stopwatch_stop proc~tran_lcr_2c2_build_ham->proc~tran_cut_hr_one_dim proc~tran_lcr_2c2_build_ham->proc~tran_reduce_hr proc~tran_lcr_2c2_sort->proc~set_error_alloc proc~tran_lcr_2c2_sort->proc~set_error_dealloc proc~tran_lcr_2c2_sort->proc~set_error_fatal proc~tran_lcr_2c2_sort->proc~io_stopwatch_start proc~tran_lcr_2c2_sort->proc~io_stopwatch_stop proc~tran_lcr_2c2_sort->proc~tran_cut_hr_one_dim proc~tran_lcr_2c2_sort->proc~tran_reduce_hr proc~tran_lcr_2c2_sort->proc~tran_write_xyz proc~check_and_sort_similar_centres check_and_sort_similar_centres proc~tran_lcr_2c2_sort->proc~check_and_sort_similar_centres proc~group group proc~tran_lcr_2c2_sort->proc~group proc~master_sort_and_group master_sort_and_group proc~tran_lcr_2c2_sort->proc~master_sort_and_group proc~sort sort proc~tran_lcr_2c2_sort->proc~sort proc~tran_parity_enforce->proc~io_stopwatch_start proc~tran_parity_enforce->proc~io_stopwatch_stop proc~tran_reduce_hr->proc~set_error_alloc proc~tran_reduce_hr->proc~set_error_fatal proc~tran_reduce_hr->proc~io_stopwatch_start proc~tran_reduce_hr->proc~io_stopwatch_stop proc~tran_write_xyz->proc~io_date proc~utility_inv3 utility_inv3 proc~utility_inverse_mat->proc~utility_inv3 proc~utility_recip_lattice_base->proc~utility_inv3 proc~utility_zgemm->zgemm proc~w90_readwrite_clear_keywords->proc~set_error_alloc proc~w90_readwrite_clear_keywords->proc~set_error_dealloc proc~clear_block clear_block proc~w90_readwrite_clear_keywords->proc~clear_block proc~w90_readwrite_get_keyword w90_readwrite_get_keyword proc~w90_readwrite_clear_keywords->proc~w90_readwrite_get_keyword proc~w90_readwrite_get_keyword_vector w90_readwrite_get_keyword_vector proc~w90_readwrite_clear_keywords->proc~w90_readwrite_get_keyword_vector proc~w90_readwrite_get_range_vector w90_readwrite_get_range_vector proc~w90_readwrite_clear_keywords->proc~w90_readwrite_get_range_vector proc~w90_readwrite_read_algorithm_control->proc~w90_readwrite_get_keyword proc~w90_readwrite_read_atoms->proc~set_error_input proc~w90_readwrite_read_atoms->proc~set_error_alloc proc~w90_readwrite_read_atoms->proc~set_error_dealloc proc~w90_readwrite_read_atoms->proc~utility_cart_to_frac proc~readwrite_get_atoms readwrite_get_atoms proc~w90_readwrite_read_atoms->proc~readwrite_get_atoms proc~w90_readwrite_get_block_length w90_readwrite_get_block_length proc~w90_readwrite_read_atoms->proc~w90_readwrite_get_block_length proc~w90_readwrite_read_atoms->proc~w90_readwrite_get_keyword_vector proc~w90_readwrite_get_vector_length w90_readwrite_get_vector_length proc~w90_readwrite_read_atoms->proc~w90_readwrite_get_vector_length proc~w90_readwrite_set_atoms w90_readwrite_set_atoms proc~w90_readwrite_read_atoms->proc~w90_readwrite_set_atoms proc~w90_readwrite_read_chkpt_header->proc~mpirank proc~w90_readwrite_read_chkpt_header->proc~set_error_file proc~w90_readwrite_read_chkpt_header->proc~utility_recip_lattice proc~w90_readwrite_read_chkpt_matrices->proc~mpirank proc~w90_readwrite_read_chkpt_matrices->proc~set_error_alloc proc~w90_readwrite_read_chkpt_matrices->proc~set_error_file proc~w90_readwrite_read_dis_manifold->proc~set_error_input proc~w90_readwrite_read_dis_manifold->proc~w90_readwrite_get_keyword proc~w90_readwrite_read_distk->proc~set_error_input proc~w90_readwrite_read_distk->proc~mpirank proc~w90_readwrite_read_distk->proc~mpisize proc~w90_readwrite_read_distk->proc~set_error_alloc proc~w90_readwrite_read_distk->proc~set_error_fatal proc~w90_readwrite_read_distk->proc~w90_readwrite_get_range_vector proc~w90_readwrite_read_exclude_bands->proc~set_error_input proc~w90_readwrite_read_exclude_bands->proc~set_error_alloc proc~w90_readwrite_read_exclude_bands->proc~w90_readwrite_get_range_vector proc~w90_readwrite_read_explicit_kpath->proc~set_error_alloc proc~w90_readwrite_read_explicit_kpath->proc~set_error_dealloc proc~w90_readwrite_read_explicit_kpath->proc~w90_readwrite_get_block_length proc~w90_readwrite_get_keyword_explicit_kpath w90_readwrite_get_keyword_explicit_kpath proc~w90_readwrite_read_explicit_kpath->proc~w90_readwrite_get_keyword_explicit_kpath proc~w90_readwrite_read_explicit_kpath_points w90_readwrite_read_explicit_kpath_points proc~w90_readwrite_read_explicit_kpath->proc~w90_readwrite_read_explicit_kpath_points proc~w90_readwrite_read_fermi_energy->proc~set_error_input proc~w90_readwrite_read_fermi_energy->proc~set_error_alloc proc~w90_readwrite_read_fermi_energy->proc~w90_readwrite_get_keyword proc~w90_readwrite_read_gamma_only->proc~set_error_input proc~w90_readwrite_read_gamma_only->proc~w90_readwrite_get_keyword proc~w90_readwrite_read_kmesh_data->proc~set_error_input proc~w90_readwrite_read_kmesh_data->proc~set_error_alloc proc~w90_readwrite_read_kmesh_data->proc~w90_readwrite_get_keyword proc~w90_readwrite_read_kmesh_data->proc~w90_readwrite_get_range_vector proc~w90_readwrite_read_kpath->proc~set_error_input proc~w90_readwrite_read_kpath->proc~set_error_alloc proc~w90_readwrite_read_kpath->proc~set_error_dealloc proc~w90_readwrite_read_kpath->proc~w90_readwrite_get_block_length proc~w90_readwrite_read_kpath->proc~w90_readwrite_get_keyword proc~w90_readwrite_get_keyword_kpath w90_readwrite_get_keyword_kpath proc~w90_readwrite_read_kpath->proc~w90_readwrite_get_keyword_kpath proc~w90_readwrite_read_kpoints->proc~set_error_alloc proc~w90_readwrite_read_kpoints->proc~set_error_dealloc proc~w90_readwrite_get_keyword_block w90_readwrite_get_keyword_block proc~w90_readwrite_read_kpoints->proc~w90_readwrite_get_keyword_block proc~w90_readwrite_read_lattice->proc~set_error_input proc~w90_readwrite_read_lattice->proc~w90_readwrite_get_keyword_block proc~w90_readwrite_read_mp_grid->proc~set_error_input proc~w90_readwrite_read_mp_grid->proc~w90_readwrite_get_keyword_vector proc~w90_readwrite_read_num_bands->proc~set_error_input proc~w90_readwrite_read_num_bands->proc~w90_readwrite_get_keyword proc~w90_readwrite_read_num_wann->proc~set_error_input proc~w90_readwrite_read_num_wann->proc~w90_readwrite_get_keyword proc~w90_readwrite_read_system->proc~set_error_input proc~w90_readwrite_read_system->proc~w90_readwrite_get_keyword proc~w90_readwrite_read_total_bands->proc~w90_readwrite_get_keyword proc~w90_readwrite_read_units->proc~set_error_input proc~w90_readwrite_read_units->proc~w90_readwrite_get_keyword proc~w90_readwrite_read_verbosity->proc~mpirank proc~w90_readwrite_read_verbosity->proc~w90_readwrite_get_keyword proc~w90_readwrite_read_ws_data->proc~set_error_input proc~w90_readwrite_read_ws_data->proc~w90_readwrite_get_keyword proc~w90_readwrite_read_ws_data->proc~w90_readwrite_get_keyword_vector proc~w90_readwrite_read_ws_data->proc~w90_readwrite_get_vector_length proc~w90_wannier90_readwrite_read_band_plot->proc~set_error_input proc~w90_wannier90_readwrite_read_band_plot->proc~set_error_alloc proc~w90_wannier90_readwrite_read_band_plot->proc~set_error_dealloc proc~w90_wannier90_readwrite_read_band_plot->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_band_plot->proc~w90_readwrite_get_range_vector proc~w90_wannier90_readwrite_read_bloch_phase->proc~set_error_input proc~w90_wannier90_readwrite_read_bloch_phase->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_constrained_centres->proc~set_error_input proc~w90_wannier90_readwrite_read_constrained_centres->proc~w90_readwrite_get_block_length proc~w90_readwrite_get_centre_constraints w90_readwrite_get_centre_constraints proc~w90_wannier90_readwrite_read_constrained_centres->proc~w90_readwrite_get_centre_constraints proc~w90_wannier90_readwrite_read_disentangle->proc~set_error_input proc~w90_wannier90_readwrite_read_disentangle->proc~set_error_alloc proc~w90_wannier90_readwrite_read_disentangle->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_disentangle->proc~w90_readwrite_get_keyword_block proc~w90_wannier90_readwrite_read_dist_cutoff->proc~set_error_input proc~w90_wannier90_readwrite_read_dist_cutoff->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_explicit_kpts->proc~set_error_input proc~w90_wannier90_readwrite_read_explicit_kpts->proc~set_error_alloc proc~w90_wannier90_readwrite_read_explicit_kpts->proc~set_error_dealloc proc~w90_wannier90_readwrite_read_explicit_kpts->proc~w90_readwrite_get_block_length proc~w90_wannier90_readwrite_read_explicit_kpts->proc~w90_readwrite_get_keyword_block proc~w90_wannier90_readwrite_read_fermi_surface->proc~set_error_input proc~w90_wannier90_readwrite_read_fermi_surface->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_hamil->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_hamil->proc~w90_readwrite_get_keyword_vector proc~w90_wannier90_readwrite_read_one_dim->proc~set_error_input proc~w90_wannier90_readwrite_read_one_dim->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_outfiles->proc~set_error_input proc~w90_wannier90_readwrite_read_outfiles->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_plot_info->proc~set_error_input proc~w90_wannier90_readwrite_read_plot_info->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_post_proc->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_projections->proc~set_error_input proc~w90_wannier90_readwrite_read_projections->proc~set_error_alloc proc~w90_wannier90_readwrite_read_projections->proc~set_error_dealloc proc~w90_wannier90_readwrite_read_projections->proc~w90_readwrite_get_block_length proc~w90_wannier90_readwrite_read_projections->proc~w90_readwrite_get_keyword proc~w90_readwrite_get_projections w90_readwrite_get_projections proc~w90_wannier90_readwrite_read_projections->proc~w90_readwrite_get_projections proc~w90_wannier90_readwrite_read_projections->proc~w90_readwrite_get_range_vector proc~w90_wannier90_readwrite_read_restart->proc~set_error_input proc~w90_wannier90_readwrite_read_restart->proc~set_error_file proc~w90_wannier90_readwrite_read_restart->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_sym->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_transport->proc~set_error_input proc~w90_wannier90_readwrite_read_transport->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_w90_calcs->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_wann_plot->proc~set_error_input proc~w90_wannier90_readwrite_read_wann_plot->proc~set_error_alloc proc~w90_wannier90_readwrite_read_wann_plot->proc~set_error_dealloc proc~w90_wannier90_readwrite_read_wann_plot->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_wann_plot->proc~w90_readwrite_get_keyword_vector proc~w90_wannier90_readwrite_read_wann_plot->proc~w90_readwrite_get_range_vector proc~w90_wannier90_readwrite_read_wann_plot->proc~w90_readwrite_get_vector_length proc~w90_wannier90_readwrite_read_wannierise->proc~set_error_input proc~w90_wannier90_readwrite_read_wannierise->proc~set_error_alloc proc~w90_wannier90_readwrite_read_wannierise->proc~w90_readwrite_get_keyword proc~wann_check_unitarity->proc~set_error_fatal proc~wann_check_unitarity->proc~io_stopwatch_start proc~wann_check_unitarity->proc~io_stopwatch_stop proc~wann_domega->proc~mpirank proc~wann_domega->proc~set_error_alloc proc~wann_domega->proc~set_error_dealloc proc~wann_domega->interface~comms_allreduce proc~wann_domega->proc~io_stopwatch_start proc~wann_domega->proc~io_stopwatch_stop proc~wann_domega->proc~sitesym_symmetrize_gradient proc~wann_omega->proc~mpirank proc~wann_omega->proc~set_error_alloc proc~wann_omega->proc~set_error_dealloc proc~wann_omega->interface~comms_allreduce proc~wann_omega->proc~io_stopwatch_start proc~wann_omega->proc~io_stopwatch_stop proc~wann_omega_gamma->proc~set_error_alloc proc~wann_omega_gamma->proc~set_error_dealloc proc~wann_omega_gamma->proc~io_stopwatch_start proc~wann_omega_gamma->proc~io_stopwatch_stop proc~wann_phases->interface~comms_allreduce proc~wann_phases->proc~io_stopwatch_start proc~wann_phases->proc~io_stopwatch_stop proc~wann_phases->proc~utility_inv3 proc~ws_translate_dist->proc~set_error_alloc proc~ws_translate_dist->proc~set_error_fatal proc~ws_translate_dist->proc~utility_frac_to_cart proc~ws_translate_dist->proc~utility_inverse_mat proc~clean_ws_translate clean_ws_translate proc~ws_translate_dist->proc~clean_ws_translate proc~r_wz_sc R_wz_sc proc~ws_translate_dist->proc~r_wz_sc proc~ws_write_vec->proc~io_date proc~ws_write_vec->proc~set_error_file proc~check_and_sort_similar_centres->proc~set_error_alloc proc~check_and_sort_similar_centres->proc~set_error_dealloc proc~check_and_sort_similar_centres->proc~set_error_fatal proc~check_and_sort_similar_centres->proc~io_stopwatch_start proc~check_and_sort_similar_centres->proc~io_stopwatch_stop proc~check_and_sort_similar_centres->proc~tran_write_xyz proc~clean_ws_translate->proc~set_error_dealloc proc~clear_block->proc~set_error_input proc~comms_allreduce_cmplx->proc~comms_sync_error proc~comms_no_sync_allreduce_cmplx comms_no_sync_allreduce_cmplx proc~comms_allreduce_cmplx->proc~comms_no_sync_allreduce_cmplx proc~comms_allreduce_real->proc~comms_sync_error proc~comms_no_sync_allreduce_real comms_no_sync_allreduce_real proc~comms_allreduce_real->proc~comms_no_sync_allreduce_real proc~comms_array_split->proc~mpisize proc~comms_bcast_char->proc~comms_sync_error proc~comms_bcast_char->proc~comms_no_sync_bcast_char proc~comms_bcast_cmplx->proc~comms_sync_error proc~comms_bcast_cmplx->proc~comms_no_sync_bcast_cmplx proc~comms_bcast_int->proc~comms_sync_error proc~comms_bcast_int->proc~comms_no_sync_bcast_int proc~comms_bcast_logical->proc~comms_sync_error proc~comms_bcast_logical->proc~comms_no_sync_bcast_logical proc~comms_bcast_real->proc~comms_sync_error proc~comms_bcast_real->proc~comms_no_sync_bcast_real proc~group->proc~set_error_alloc proc~group->proc~set_error_dealloc proc~hamiltonian_wigner_seitz->proc~set_error_alloc proc~hamiltonian_wigner_seitz->proc~set_error_dealloc proc~hamiltonian_wigner_seitz->proc~set_error_fatal proc~hamiltonian_wigner_seitz->proc~io_stopwatch_start proc~hamiltonian_wigner_seitz->proc~io_stopwatch_stop proc~hamiltonian_wigner_seitz->proc~utility_metric proc~internal_test_convergence~2->proc~set_error_alloc proc~internal_test_convergence~2->proc~set_error_dealloc proc~internal_zmatrix->proc~io_stopwatch_start proc~internal_zmatrix->proc~io_stopwatch_stop proc~internal_zmatrix->zgemm proc~internal_zmatrix_gamma->proc~io_stopwatch_start proc~internal_zmatrix_gamma->proc~io_stopwatch_stop proc~internal_zmatrix_gamma->zgemm proc~kmesh_bvectors_perm->proc~set_error_fatal proc~kmesh_get_bvectors->proc~set_error_fatal proc~kmesh_get_bvectors->proc~io_stopwatch_start proc~kmesh_get_bvectors->proc~io_stopwatch_stop proc~kmesh_shell_automatic->proc~set_error_alloc proc~kmesh_shell_automatic->proc~set_error_dealloc proc~kmesh_shell_automatic->proc~set_error_fatal proc~kmesh_shell_automatic->dgesvd proc~kmesh_shell_automatic->proc~io_stopwatch_start proc~kmesh_shell_automatic->proc~io_stopwatch_stop proc~kmesh_shell_automatic->proc~kmesh_get_bvectors proc~kmesh_check_condition kmesh_check_condition proc~kmesh_shell_automatic->proc~kmesh_check_condition proc~kmesh_get_amat kmesh_get_amat proc~kmesh_shell_automatic->proc~kmesh_get_amat proc~kmesh_shell_fixed->proc~set_error_alloc proc~kmesh_shell_fixed->proc~set_error_fatal proc~kmesh_shell_fixed->dgesvd proc~kmesh_shell_fixed->proc~io_stopwatch_start proc~kmesh_shell_fixed->proc~io_stopwatch_stop proc~kmesh_shell_fixed->proc~kmesh_get_bvectors proc~kmesh_shell_from_file->proc~set_error_input proc~kmesh_shell_from_file->proc~set_error_alloc proc~kmesh_shell_from_file->proc~set_error_fatal proc~kmesh_shell_from_file->proc~set_error_file proc~kmesh_shell_from_file->dgesvd proc~kmesh_shell_from_file->proc~io_stopwatch_start proc~kmesh_shell_from_file->proc~io_stopwatch_stop proc~kmesh_shell_from_file->proc~kmesh_get_bvectors proc~kmesh_supercell_sort->proc~io_stopwatch_start proc~kmesh_supercell_sort->proc~io_stopwatch_stop proc~internal_maxloc internal_maxloc proc~kmesh_supercell_sort->proc~internal_maxloc proc~master_sort_and_group->proc~set_error_alloc proc~master_sort_and_group->proc~set_error_dealloc proc~master_sort_and_group->proc~io_stopwatch_start proc~master_sort_and_group->proc~io_stopwatch_stop proc~master_sort_and_group->proc~group proc~master_sort_and_group->proc~sort proc~plot_read_unk->proc~set_error_file proc~r_wz_sc->proc~set_error_fatal proc~r_wz_sc->proc~utility_cart_to_frac proc~r_wz_sc->proc~utility_frac_to_cart proc~readwrite_get_atoms->proc~set_error_input proc~readwrite_get_atoms->proc~set_error_alloc proc~readwrite_get_atoms->proc~utility_cart_to_frac proc~readwrite_get_atoms->proc~utility_frac_to_cart proc~readwrite_get_atoms->proc~utility_inverse_mat proc~readwrite_get_atoms->proc~w90_readwrite_get_block_length proc~set_error_warn->proc~comms_sync_error proc~set_error_warn->proc~set_base_error proc~sitesym_dis_extract_symmetry->proc~set_error_alloc proc~sitesym_dis_extract_symmetry->proc~set_error_dealloc proc~sitesym_dis_extract_symmetry->proc~set_error_fatal proc~sitesym_dis_extract_symmetry->zgemm proc~sitesym_dis_extract_symmetry->proc~symmetrize_ukirr zhpgvx zhpgvx proc~sitesym_dis_extract_symmetry->zhpgvx proc~sitesym_symmetrize_zmatrix->zgemm proc~symmetrize_ukirr->proc~set_error_fatal proc~symmetrize_ukirr->zgemm proc~orthogonalize_u orthogonalize_u proc~symmetrize_ukirr->proc~orthogonalize_u proc~set_error_unconv set_error_unconv proc~symmetrize_ukirr->proc~set_error_unconv proc~tran_green->proc~set_error_alloc proc~tran_green->proc~set_error_dealloc proc~tran_green->proc~set_error_fatal proc~tran_green->zgemm zgesv zgesv proc~tran_green->zgesv proc~tran_read_htc->proc~set_error_file proc~tran_read_htx->proc~set_error_file proc~tran_read_htxy->proc~set_error_file proc~tran_transfer->proc~set_error_alloc proc~tran_transfer->proc~set_error_dealloc proc~tran_transfer->proc~set_error_fatal proc~tran_transfer->zgemm proc~tran_transfer->zaxpy proc~tran_transfer->proc~set_error_unconv zcopy zcopy proc~tran_transfer->zcopy proc~tran_transfer->zgesv proc~utility_recip_lattice->proc~set_error_fatal proc~utility_recip_lattice->proc~utility_recip_lattice_base proc~utility_translate_home->proc~utility_cart_to_frac proc~utility_translate_home->proc~utility_frac_to_cart proc~utility_translate_home->proc~utility_recip_lattice_base proc~w90_readwrite_get_block_length->proc~set_error_input proc~w90_readwrite_get_centre_constraints->proc~set_error_input proc~w90_readwrite_get_centre_constraints->proc~set_error_alloc proc~w90_readwrite_get_centre_constraints->proc~set_error_dealloc proc~w90_readwrite_get_centre_constraints->proc~utility_frac_to_cart proc~get_centre_constraint_from_column get_centre_constraint_from_column proc~w90_readwrite_get_centre_constraints->proc~get_centre_constraint_from_column proc~w90_readwrite_get_keyword->proc~set_error_input proc~w90_readwrite_get_keyword->proc~set_error_fatal proc~w90_readwrite_get_keyword_block->proc~set_error_input proc~w90_readwrite_get_keyword_block->proc~set_error_fatal proc~w90_readwrite_get_keyword_explicit_kpath->proc~set_error_input proc~w90_readwrite_get_keyword_kpath->proc~set_error_input proc~w90_readwrite_get_keyword_vector->proc~set_error_input proc~w90_readwrite_get_keyword_vector->proc~set_error_fatal proc~w90_readwrite_get_projections->proc~set_error_input proc~w90_readwrite_get_projections->proc~set_error_alloc proc~w90_readwrite_get_projections->proc~utility_cart_to_frac proc~utility_string_to_coord utility_string_to_coord proc~w90_readwrite_get_projections->proc~utility_string_to_coord proc~utility_strip utility_strip proc~w90_readwrite_get_projections->proc~utility_strip proc~w90_readwrite_get_range_vector->proc~set_error_input proc~w90_readwrite_get_range_vector->proc~w90_readwrite_get_keyword_vector proc~w90_readwrite_get_range_vector->proc~w90_readwrite_get_vector_length proc~w90_readwrite_get_vector_length->proc~set_error_input proc~w90_readwrite_get_vector_length->proc~set_error_fatal proc~w90_readwrite_read_explicit_kpath_points->proc~set_error_input proc~w90_readwrite_read_explicit_kpath_points->proc~set_error_alloc proc~w90_readwrite_read_explicit_kpath_points->proc~set_error_dealloc proc~w90_readwrite_read_explicit_kpath_points->proc~w90_readwrite_get_block_length proc~w90_readwrite_read_explicit_kpath_points->proc~w90_readwrite_get_keyword_block proc~w90_readwrite_set_atoms->proc~set_error_alloc proc~w90_readwrite_set_atoms->proc~utility_lowercase proc~get_centre_constraint_from_column->proc~set_error_input proc~orthogonalize_u->proc~set_error_dealloc proc~orthogonalize_u->proc~set_error_fatal proc~orthogonalize_u->zgesvd proc~set_error_unconv->proc~comms_sync_error proc~set_error_unconv->proc~set_base_error proc~utility_string_to_coord->proc~set_error_input

Variables

Type Attributes Name Initial
integer, parameter :: dp = kind(0.d0)
character(len=:), allocatable :: seedname
character(len=:), allocatable :: progname
character(len=20) :: cpstatus
character(len=:), pointer :: restart
complex(kind=dp), allocatable :: m_matrix_loc(:,:,:,:)
complex(kind=dp), allocatable :: u_matrix(:,:,:)
complex(kind=dp), allocatable :: u_matrix_opt(:,:,:)
real(kind=dp), allocatable :: eigval(:,:)
integer, allocatable :: dist_k(:)
integer :: mpisize
integer :: rank
integer :: ierr
integer :: nkl
integer, pointer :: nb
integer, pointer :: nk
integer, pointer :: nw
integer, pointer :: nn
integer :: stdout
integer :: stderr
logical, pointer :: pp
logical :: ld
logical :: lovlp
logical :: ldsnt
logical :: lwann
logical :: lplot
logical :: ltran
logical :: need_eigvals
type(lib_common_type), target :: common_data
type(w90_error_type), allocatable :: error
character(len=9) :: cdate
character(len=9) :: ctime

Source Code

program wannier
  !! The main Wannier90 program

#ifdef W90_MPI08
  use mpi_f08
#endif
#ifdef W90_MPI90
  use mpi
#endif

  use w90_library
  use w90_library_extra ! for input_reader_special, overlaps, etc

  use w90_comms, only: w90_comm_type, comms_sync_error
  use w90_io, only: io_commandline, io_date, io_time, prterr
  use w90_sitesym, only: sitesym_read
  use w90_error, only: w90_error_type, set_error_input

  implicit none

#ifdef W90_MPIH
  include 'mpif.h'
#endif

! nvfortran fails to correctly handle the dp private attribute in module w90_library
!       nvfortran 25.7-0 64-bit target on x86-64 Linux -tp znve
! if needed in practice, use "only" or rename dp in use directive
#ifndef __NVCOMPILER
  integer, parameter :: dp = kind(0.d0)
#endif

  character(len=:), allocatable :: seedname, progname
  character(len=20) :: cpstatus ! checkpoint file status
  character(len=:), pointer :: restart
  complex(kind=dp), allocatable :: m_matrix_loc(:, :, :, :)
  complex(kind=dp), allocatable :: u_matrix(:, :, :)
  complex(kind=dp), allocatable :: u_matrix_opt(:, :, :)
  real(kind=dp), allocatable :: eigval(:, :)
  integer, allocatable :: dist_k(:)
  integer :: mpisize, rank, ierr, nkl
  integer, pointer :: nb, nk, nw, nn
  integer :: stdout, stderr
  logical, pointer :: pp
  logical :: ld, lovlp, ldsnt, lwann, lplot, ltran, need_eigvals
  type(lib_common_type), target :: common_data
  type(w90_error_type), allocatable :: error
  character(len=9) :: cdate, ctime

  pp => common_data%w90_calculation%postproc_setup
  restart => common_data%w90_calculation%restart
  nw => common_data%num_wann
  nb => common_data%num_bands
  nk => common_data%num_kpts
  nn => common_data%kmesh_info%nntot

  progname = 'wannier90' ! https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91442
  call io_commandline(progname, ld, pp, seedname)

  call w90_get_fortran_stderr(stderr) ! for early error cases; maybe overwritten later
#ifdef W90_MPI
  call mpi_init(ierr)
  if (ierr /= 0) then
    write (stderr, *) 'Wannier90: mpi_init() returned an error!'
    stop 1
  end if
  call mpi_comm_rank(mpi_comm_world, rank, ierr) ! the type of comm_world depends on interface used
  if (ierr /= 0) then
    write (stderr, *) 'Wannier90: mpi_comm_rank() returned an error!'
    stop 1
  end if
  call mpi_comm_size(mpi_comm_world, mpisize, ierr)
  if (ierr /= 0) then
    write (stderr, *) 'Wannier90: mpi_comm_size() returned an error!'
    stop 1
  end if
  call w90_set_comm(common_data, mpi_comm_world)
#else
  rank = 0
  mpisize = 1
#endif

  ! open main output file
  if (rank == 0) open (newunit=stdout, file=seedname//'.wout', status="replace")

  ! open main error file
  if (rank == 0) open (newunit=stderr, file=seedname//'.werr', status="replace")

  call io_date(cdate, ctime)
  if (rank == 0) write (stderr, *) 'Wannier90: Execution started on ', cdate, ' at ', ctime

  ! read key parameters from .win file
  call input_reader_special(common_data, seedname, stdout, stderr, ierr)
  if (ierr /= 0) stop 1

  ! read all remaining parameters from .win file
  call w90_input_reader(common_data, stdout, stderr, ierr)
  if (ierr /= 0) stop 1

  ! write useful info (includes jazzy header info)
  call w90_print_info(common_data, stdout, stderr, ierr)
  if (ierr /= 0) stop 1

  ! special branch for writing nnkp file
  ! exit immediately after writing the nnkp file
  if (pp) then
    call write_kmesh(common_data, stdout, stderr, ierr)
    if (ierr /= 0) stop 1
    if (rank == 0) close (unit=stderr, status='delete')
    if (rank == 0) write (stdout, '(1x,a25,f11.3,a)') 'Time to write kmesh      ', io_time(), ' (sec)'
    if (rank == 0) write (stdout, '(/a)') ' Exiting... '//trim(seedname)//'.nnkp written.'
#ifdef W90_MPI
    call mpi_finalize(ierr)
#endif
    stop
  end if

  ! test mpi error handling using "unlucky" input token
  if (rank == -common_data%print_output%timing_level) then
    call set_error_input(error, 'received unlucky_rank', common_data%comm)
  else
    ! this is necessary since non-root may never enter an mpi collective if root has exited here
    call comms_sync_error(common_data%comm, error, 0)
  end if
  if (allocated(error)) then ! applies (is t) for all ranks now
    call prterr(error, ierr, stdout, stderr, common_data%comm)
#ifdef W90_MPI
    call mpi_finalize(ierr) ! let's be nice
#endif
    stop 1
  end if
  ! end unlucky code

  ! setup kpoint distribution
  allocate (dist_k(nk), stat=ierr)
  if (ierr /= 0) then
    write (stderr, *) 'Wannier90: failed to allocate dist_k array!'
    stop 1
  end if
  ! get a basic k-point/rank distribution
  call w90_distribute_kpts(common_data, nk, mpisize, dist_k, stdout, stderr, ierr)
  if (ierr /= 0) stop 1

  ! copy distribution to library
  call set_kpoint_distribution(common_data, dist_k, stdout, stderr, ierr)
  if (ierr /= 0) stop 1

  ! setup SAWF data
  if (common_data%lsitesymmetry) then
    call sitesym_read(common_data%sitesym, nb, nk, nw, seedname, error, common_data%comm) ! (not a library call)
    if (allocated(error)) then
      write (stderr, *) 'Wannier90: failed to setup symmetry!'
      deallocate (error)
      stop 1
    end if
  end if

  call w90_get_nn(common_data, nn, stdout, stderr, ierr)
  nkl = count(dist_k == rank) ! number of kpoints this rank
  !write (*, *) 'rank, nw, nb, nk, nn, nk(rank): ', rank, nw, nb, nk, nn, nkl

  allocate (m_matrix_loc(nb, nb, nn, nkl), stat=ierr)
  if (ierr /= 0) then
    write (stderr, *) 'Wannier90: failed to allocate m_matrix_loc!'
    stop 1
  end if
  call w90_set_m_local(common_data, m_matrix_loc)  ! we don't need global m

  allocate (u_matrix(nw, nw, nk), stat=ierr)
  if (ierr /= 0) then
    write (stderr, *) 'Wannier90: failed to allocate u_matrix!'
    stop 1
  end if
  call w90_set_u_matrix(common_data, u_matrix)

  allocate (u_matrix_opt(nb, nw, nk), stat=ierr)
  if (ierr /= 0) then
    write (stderr, *) 'Wannier90: failed to allocate u_matrix_opt!'
    stop 1
  end if
  call w90_set_u_opt(common_data, u_matrix_opt)

! restart system
  lovlp = .true.
  ldsnt = .true.
  lwann = .true.
  lplot = .true.
  ltran = .false.

  if (restart == '') then
    if (rank == 0) write (stdout, '(1x,a/)') 'Starting a new Wannier90 calculation ...'
  else
    cpstatus = ''
    call read_chkpt(common_data, cpstatus, stdout, stderr, ierr)
    if (ierr /= 0) stop 1

    if (restart == 'wannierise' .or. (restart == 'default' .and. cpstatus == 'postdis')) then
      if (rank == 0) write (stdout, '(1x,a/)') 'Restarting Wannier90 from wannierisation ...'
      lovlp = .false.
      ldsnt = .false.
      lwann = .true.
      lplot = .true.
      ltran = .false.
    elseif (restart == 'plot' .or. (restart == 'default' .and. cpstatus == 'postwann')) then
      if (rank == 0) write (stdout, '(1x,a/)') 'Restarting Wannier90 from plotting routines ...'
      lovlp = .false.
      ldsnt = .false.
      lwann = .false.
      lplot = .true.
      ltran = .false.
    elseif (restart == 'transport') then
      if (rank == 0) write (stdout, '(1x,a/)') 'Restarting Wannier90 from transport routines ...'
      lovlp = .false.
      ldsnt = .false.
      lwann = .false.
      lplot = .false.
      ltran = .true.
      !else
      ! illegitimate restart choice, should declaim the acceptable choices
    end if
  end if
  ltran = (ltran .or. common_data%w90_calculation%transport)
  ldsnt = (ldsnt .and. (nw < nb)) ! disentanglement only needed if space reduced

  ! circumstances where eigenvalues are needed are a little overcomplicated
  need_eigvals = .false.
  need_eigvals = common_data%w90_calculation%bands_plot
  need_eigvals = (need_eigvals .or. common_data%w90_calculation%fermi_surface_plot)
  need_eigvals = (need_eigvals .or. common_data%output_file%write_hr)
  need_eigvals = (need_eigvals .or. common_data%output_file%write_tb)
  need_eigvals = (need_eigvals .or. ldsnt) ! disentanglement anyway requires evals

  if (need_eigvals) then
    allocate (eigval(nb, nk), stat=ierr)
    if (ierr /= 0) then
      write (stderr, *) 'Wannier90: failed to allocate eigval array!'
      stop 1
    end if
    call read_eigvals(common_data, eigval, stdout, stderr, ierr)
    if (ierr /= 0) stop 1
    call w90_set_eigval(common_data, eigval)
  end if

  ! ends setup

  if (lovlp) then
    call overlaps(common_data, stdout, stderr, ierr)
    if (ierr /= 0) stop 1
  end if

  if (ldsnt) then
    call w90_disentangle(common_data, stdout, stderr, ierr)
    if (ierr /= 0) stop 1
    call write_chkpt(common_data, 'postdis', stdout, stderr, ierr)
    if (ierr /= 0) stop 1
  end if

  if (lwann) then
    call w90_project_overlap(common_data, stdout, stderr, ierr)
    if (ierr /= 0) stop 1
    call w90_wannierise(common_data, stdout, stderr, ierr)
    if (ierr /= 0) stop 1
    call write_chkpt(common_data, 'postwann', stdout, stderr, ierr)
    if (ierr /= 0) stop 1
  end if

  if (lplot) then
    call w90_plot(common_data, stdout, stderr, ierr)
    if (ierr /= 0) stop 1
  end if

  if (ltran) then
    call w90_transport(common_data, stdout, stderr, ierr)
    if (ierr /= 0) stop 1
  end if

  ! cleanup

  if (need_eigvals) then
    deallocate (eigval, stat=ierr)
    if (ierr /= 0) then
      write (stderr, *) 'Wannier90: failed to deallocate eigval array!'
      stop 1
    end if
  end if
  deallocate (dist_k, stat=ierr)
  if (ierr /= 0) then
    write (stderr, *) 'Wannier90: failed to deallocate dist_k array!'
    stop 1
  end if
  deallocate (m_matrix_loc, stat=ierr)
  if (ierr /= 0) then
    write (stderr, *) 'Wannier90: failed to deallocate m_matrix_loc!'
    stop 1
  end if
  deallocate (u_matrix, stat=ierr)
  if (ierr /= 0) then
    write (stderr, *) 'Wannier90: failed to deallocate u_matrix!'
    stop 1
  end if
  deallocate (u_matrix_opt, stat=ierr)
  if (ierr /= 0) then
    write (stderr, *) 'Wannier90: failed to deallocate u_matrix_opt!'
    stop 1
  end if

  call print_times(common_data, stdout)

  if (rank == 0) then
    close (unit=stderr, status='delete')
    write (stdout, '(1x,a)') 'All done: wannier90 exiting'
    close (unit=stdout)
  end if

#ifdef W90_MPI
  call mpi_finalize(ierr)
#endif
end program wannier