postw90 Program

Uses

  • program~~postw90~~UsesGraph program~postw90 postw90 module~w90_berry w90_berry program~postw90->module~w90_berry module~w90_boltzwann w90_boltzwann program~postw90->module~w90_boltzwann module~w90_comms w90_comms program~postw90->module~w90_comms module~w90_constants w90_constants program~postw90->module~w90_constants module~w90_dos w90_dos program~postw90->module~w90_dos module~w90_error w90_error program~postw90->module~w90_error module~w90_geninterp w90_geninterp program~postw90->module~w90_geninterp module~w90_gyrotropic w90_gyrotropic program~postw90->module~w90_gyrotropic module~w90_io w90_io program~postw90->module~w90_io module~w90_kmesh w90_kmesh program~postw90->module~w90_kmesh module~w90_kpath w90_kpath program~postw90->module~w90_kpath module~w90_kslice w90_kslice program~postw90->module~w90_kslice module~w90_postw90_common w90_postw90_common program~postw90->module~w90_postw90_common module~w90_postw90_readwrite w90_postw90_readwrite program~postw90->module~w90_postw90_readwrite module~w90_postw90_types w90_postw90_types program~postw90->module~w90_postw90_types module~w90_readwrite w90_readwrite program~postw90->module~w90_readwrite module~w90_spin w90_spin program~postw90->module~w90_spin module~w90_types w90_types program~postw90->module~w90_types module~w90_berry->module~w90_constants module~w90_berry->module~w90_error module~w90_boltzwann->module~w90_comms module~w90_boltzwann->module~w90_constants module~w90_boltzwann->module~w90_dos module~w90_boltzwann->module~w90_error module~w90_utility w90_utility module~w90_boltzwann->module~w90_utility module~w90_comms->module~w90_constants module~w90_error_base w90_error_base module~w90_comms->module~w90_error_base module~w90_dos->module~w90_constants module~w90_dos->module~w90_error module~w90_error->module~w90_comms module~w90_error->module~w90_error_base module~w90_geninterp->module~w90_error module~w90_gyrotropic->module~w90_berry module~w90_gyrotropic->module~w90_constants module~w90_gyrotropic->module~w90_error module~w90_io->module~w90_constants module~w90_kmesh->module~w90_comms module~w90_kmesh->module~w90_constants module~w90_kmesh->module~w90_error module~w90_kmesh->module~w90_types module~w90_kpath->module~w90_constants module~w90_kpath->module~w90_error module~w90_kslice->module~w90_error module~w90_postw90_common->module~w90_constants module~w90_postw90_common->module~w90_error module~w90_postw90_readwrite->module~w90_constants module~w90_postw90_readwrite->module~w90_error module~w90_postw90_readwrite->module~w90_postw90_types module~w90_postw90_readwrite->module~w90_readwrite module~w90_postw90_readwrite->module~w90_types module~w90_postw90_types->module~w90_comms module~w90_postw90_types->module~w90_constants module~w90_readwrite->module~w90_comms module~w90_readwrite->module~w90_constants module~w90_readwrite->module~w90_types module~w90_spin->module~w90_constants module~w90_spin->module~w90_error module~w90_types->module~w90_constants module~w90_utility->module~w90_comms module~w90_utility->module~w90_constants

The postw90 program


Calls

program~~postw90~~CallsGraph program~postw90 postw90 interface~comms_bcast comms_bcast program~postw90->interface~comms_bcast proc~berry_main berry_main program~postw90->proc~berry_main proc~boltzwann_main boltzwann_main program~postw90->proc~boltzwann_main proc~dos_main dos_main program~postw90->proc~dos_main proc~geninterp_main geninterp_main program~postw90->proc~geninterp_main proc~gyrotropic_main gyrotropic_main program~postw90->proc~gyrotropic_main proc~io_commandline io_commandline program~postw90->proc~io_commandline proc~io_print_timings io_print_timings program~postw90->proc~io_print_timings proc~io_time io_time program~postw90->proc~io_time proc~k_path k_path program~postw90->proc~k_path proc~k_slice k_slice program~postw90->proc~k_slice proc~kmesh_get kmesh_get program~postw90->proc~kmesh_get proc~mpirank mpirank program~postw90->proc~mpirank proc~mpisize mpisize program~postw90->proc~mpisize proc~print_error_halt print_error_halt program~postw90->proc~print_error_halt proc~pw90common_wanint_data_dist pw90common_wanint_data_dist program~postw90->proc~pw90common_wanint_data_dist proc~pw90common_wanint_get_kpoint_file pw90common_wanint_get_kpoint_file program~postw90->proc~pw90common_wanint_get_kpoint_file proc~pw90common_wanint_setup pw90common_wanint_setup program~postw90->proc~pw90common_wanint_setup proc~spin_get_moment spin_get_moment program~postw90->proc~spin_get_moment proc~w90_postw90_readwrite_read w90_postw90_readwrite_read program~postw90->proc~w90_postw90_readwrite_read proc~w90_postw90_readwrite_write w90_postw90_readwrite_write program~postw90->proc~w90_postw90_readwrite_write proc~w90_readwrite_clean_infile w90_readwrite_clean_infile program~postw90->proc~w90_readwrite_clean_infile proc~w90_readwrite_in_file w90_readwrite_in_file program~postw90->proc~w90_readwrite_in_file proc~w90_readwrite_read_chkpt w90_readwrite_read_chkpt program~postw90->proc~w90_readwrite_read_chkpt proc~w90_readwrite_read_final_alloc w90_readwrite_read_final_alloc program~postw90->proc~w90_readwrite_read_final_alloc proc~w90_readwrite_write_header w90_readwrite_write_header program~postw90->proc~w90_readwrite_write_header 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~berry_main->proc~mpirank proc~berry_main->proc~mpisize interface~comms_reduce comms_reduce proc~berry_main->interface~comms_reduce proc~berry_get_imf_klist berry_get_imf_klist proc~berry_main->proc~berry_get_imf_klist proc~berry_get_imfgh_klist berry_get_imfgh_klist proc~berry_main->proc~berry_get_imfgh_klist proc~berry_get_kdotp berry_get_kdotp proc~berry_main->proc~berry_get_kdotp proc~berry_get_kubo_k berry_get_kubo_k proc~berry_main->proc~berry_get_kubo_k proc~berry_get_sc_klist berry_get_sc_klist proc~berry_main->proc~berry_get_sc_klist proc~berry_get_shc_klist berry_get_shc_klist proc~berry_main->proc~berry_get_shc_klist proc~berry_get_shc_tetrahedron berry_get_shc_tetrahedron proc~berry_main->proc~berry_get_shc_tetrahedron proc~berry_print_progress berry_print_progress proc~berry_main->proc~berry_print_progress proc~comms_array_split comms_array_split proc~berry_main->proc~comms_array_split proc~get_aa_r get_AA_R proc~berry_main->proc~get_aa_r proc~get_aa_r_effective get_AA_R_effective proc~berry_main->proc~get_aa_r_effective proc~get_bb_r get_BB_R proc~berry_main->proc~get_bb_r proc~get_cc_r get_CC_R proc~berry_main->proc~get_cc_r proc~get_hh_r get_HH_R proc~berry_main->proc~get_hh_r proc~get_saa_r get_SAA_R proc~berry_main->proc~get_saa_r proc~get_sbb_r get_SBB_R proc~berry_main->proc~get_sbb_r proc~get_sh_r get_SH_R proc~berry_main->proc~get_sh_r proc~get_shc_r get_SHC_R proc~berry_main->proc~get_shc_r proc~get_ss_r get_SS_R proc~berry_main->proc~get_ss_r proc~io_stopwatch_start io_stopwatch_start proc~berry_main->proc~io_stopwatch_start proc~io_stopwatch_stop io_stopwatch_stop proc~berry_main->proc~io_stopwatch_stop proc~set_error_alloc set_error_alloc proc~berry_main->proc~set_error_alloc proc~set_error_input set_error_input proc~berry_main->proc~set_error_input proc~tetrahedron_array_init tetrahedron_array_init proc~berry_main->proc~tetrahedron_array_init proc~tetrahedron_p_matrix_init tetrahedron_P_matrix_init proc~berry_main->proc~tetrahedron_p_matrix_init proc~tetrahedron_spinhall tetrahedron_spinhall proc~berry_main->proc~tetrahedron_spinhall proc~boltzwann_main->proc~mpirank proc~boltzwann_main->proc~mpisize interface~comms_gatherv comms_gatherv proc~boltzwann_main->interface~comms_gatherv proc~boltzwann_main->interface~comms_reduce proc~calctdfanddos calcTDFandDOS proc~boltzwann_main->proc~calctdfanddos proc~boltzwann_main->proc~comms_array_split proc~boltzwann_main->proc~io_stopwatch_start proc~boltzwann_main->proc~io_stopwatch_stop proc~minusfermiderivative MinusFermiDerivative proc~boltzwann_main->proc~minusfermiderivative proc~boltzwann_main->proc~set_error_alloc proc~set_error_dealloc set_error_dealloc proc~boltzwann_main->proc~set_error_dealloc proc~boltzwann_main->proc~set_error_input proc~utility_inv2 utility_inv2 proc~boltzwann_main->proc~utility_inv2 proc~utility_inv3 utility_inv3 proc~boltzwann_main->proc~utility_inv3 proc~dos_main->proc~mpirank proc~dos_main->proc~mpisize proc~dos_main->interface~comms_reduce proc~dos_get_k dos_get_k proc~dos_main->proc~dos_get_k proc~dos_get_levelspacing dos_get_levelspacing proc~dos_main->proc~dos_get_levelspacing proc~dos_main->proc~get_hh_r proc~dos_main->proc~get_ss_r proc~dos_main->proc~io_stopwatch_start proc~dos_main->proc~io_stopwatch_stop proc~pw90common_fourier_r_to_k pw90common_fourier_R_to_k proc~dos_main->proc~pw90common_fourier_r_to_k proc~dos_main->proc~set_error_alloc proc~dos_main->proc~set_error_dealloc proc~utility_diagonalize utility_diagonalize proc~dos_main->proc~utility_diagonalize proc~utility_recip_lattice_base utility_recip_lattice_base proc~dos_main->proc~utility_recip_lattice_base proc~wham_get_eig_deleig wham_get_eig_deleig proc~dos_main->proc~wham_get_eig_deleig proc~geninterp_main->interface~comms_bcast proc~geninterp_main->proc~mpirank proc~geninterp_main->proc~mpisize proc~geninterp_main->interface~comms_gatherv interface~comms_scatterv comms_scatterv proc~geninterp_main->interface~comms_scatterv proc~geninterp_main->proc~comms_array_split proc~geninterp_main->proc~get_hh_r proc~internal_write_header internal_write_header proc~geninterp_main->proc~internal_write_header proc~geninterp_main->proc~io_stopwatch_start proc~geninterp_main->proc~io_stopwatch_stop proc~geninterp_main->proc~pw90common_fourier_r_to_k proc~geninterp_main->proc~set_error_alloc proc~set_error_file set_error_file proc~geninterp_main->proc~set_error_file proc~geninterp_main->proc~set_error_input proc~geninterp_main->proc~utility_diagonalize proc~geninterp_main->proc~utility_recip_lattice_base proc~geninterp_main->proc~wham_get_eig_deleig proc~gyrotropic_main->proc~mpirank proc~gyrotropic_main->proc~mpisize proc~gyrotropic_main->interface~comms_reduce proc~gyrotropic_main->proc~get_aa_r proc~gyrotropic_main->proc~get_aa_r_effective proc~gyrotropic_main->proc~get_bb_r proc~gyrotropic_main->proc~get_cc_r proc~gyrotropic_main->proc~get_hh_r proc~gyrotropic_main->proc~get_ss_r proc~gyrotropic_get_k_list gyrotropic_get_k_list proc~gyrotropic_main->proc~gyrotropic_get_k_list proc~gyrotropic_outprint_tensor gyrotropic_outprint_tensor proc~gyrotropic_main->proc~gyrotropic_outprint_tensor proc~gyrotropic_main->proc~io_stopwatch_start proc~gyrotropic_main->proc~io_stopwatch_stop proc~gyrotropic_main->proc~set_error_input proc~utility_det3 utility_det3 proc~gyrotropic_main->proc~utility_det3 proc~k_path->interface~comms_bcast proc~k_path->proc~mpirank proc~k_path->proc~mpisize 20 20 proc~k_path->20 proc~k_path->interface~comms_gatherv proc~k_path->interface~comms_scatterv proc~k_path->proc~berry_get_imf_klist proc~k_path->proc~berry_get_imfgh_klist proc~k_path->proc~berry_get_shc_klist proc~k_path->proc~comms_array_split proc~k_path->proc~get_aa_r proc~k_path->proc~get_aa_r_effective proc~k_path->proc~get_bb_r proc~k_path->proc~get_cc_r proc~k_path->proc~get_hh_r proc~k_path->proc~get_shc_r proc~k_path->proc~get_ss_r proc~k_path_get_points k_path_get_points proc~k_path->proc~k_path_get_points proc~k_path_print_info k_path_print_info proc~k_path->proc~k_path_print_info proc~k_path->proc~pw90common_fourier_r_to_k proc~k_path->proc~set_error_input proc~spin_get_nk spin_get_nk proc~k_path->proc~spin_get_nk proc~k_path->proc~utility_diagonalize proc~k_path->proc~utility_recip_lattice_base proc~k_slice->proc~mpirank proc~k_slice->proc~mpisize proc~k_slice->interface~comms_gatherv proc~k_slice->proc~berry_get_imf_klist proc~k_slice->proc~berry_get_imfgh_klist proc~k_slice->proc~berry_get_shc_klist proc~k_slice->proc~comms_array_split proc~k_slice->proc~get_aa_r proc~k_slice->proc~get_aa_r_effective proc~k_slice->proc~get_bb_r proc~k_slice->proc~get_cc_r proc~k_slice->proc~get_hh_r proc~k_slice->proc~get_shc_r proc~k_slice->proc~get_ss_r proc~kslice_print_info kslice_print_info proc~k_slice->proc~kslice_print_info proc~k_slice->proc~pw90common_fourier_r_to_k proc~script_common script_common proc~k_slice->proc~script_common proc~script_fermi_lines script_fermi_lines proc~k_slice->proc~script_fermi_lines proc~set_error_fatal set_error_fatal proc~k_slice->proc~set_error_fatal proc~k_slice->proc~set_error_input proc~k_slice->proc~spin_get_nk proc~k_slice->proc~utility_diagonalize proc~utility_recip_lattice utility_recip_lattice proc~k_slice->proc~utility_recip_lattice proc~k_slice->proc~utility_recip_lattice_base proc~k_slice->proc~wham_get_eig_deleig proc~write_coords_file write_coords_file proc~k_slice->proc~write_coords_file proc~write_data_file write_data_file proc~k_slice->proc~write_data_file proc~kmesh_get->proc~io_stopwatch_start proc~kmesh_get->proc~io_stopwatch_stop 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~kmesh_get->proc~set_error_alloc proc~kmesh_get->proc~set_error_dealloc proc~kmesh_get->proc~set_error_fatal proc~kmesh_get->proc~set_error_input proc~utility_cart_to_frac utility_cart_to_frac proc~kmesh_get->proc~utility_cart_to_frac proc~utility_compar utility_compar proc~kmesh_get->proc~utility_compar proc~utility_frac_to_cart utility_frac_to_cart proc~kmesh_get->proc~utility_frac_to_cart proc~utility_inverse_mat utility_inverse_mat proc~kmesh_get->proc~utility_inverse_mat proc~kmesh_get->proc~utility_recip_lattice proc~prterr prterr proc~print_error_halt->proc~prterr proc~pw90common_wanint_data_dist->interface~comms_bcast proc~pw90common_wanint_data_dist->proc~mpirank proc~pw90common_wanint_data_dist->proc~set_error_alloc proc~pw90common_wanint_get_kpoint_file->interface~comms_bcast proc~pw90common_wanint_get_kpoint_file->proc~mpirank proc~pw90common_wanint_get_kpoint_file->proc~mpisize dcopy dcopy proc~pw90common_wanint_get_kpoint_file->dcopy proc~pw90common_wanint_get_kpoint_file->proc~set_error_alloc proc~pw90common_wanint_get_kpoint_file->proc~set_error_file proc~pw90common_wanint_setup->interface~comms_bcast proc~pw90common_wanint_setup->proc~mpirank proc~pw90common_wanint_setup->proc~set_error_alloc proc~pw90common_wanint_setup->proc~set_error_fatal proc~pw90common_wanint_setup->proc~set_error_file proc~wigner_seitz_opt_setup wigner_seitz_opt_setup proc~pw90common_wanint_setup->proc~wigner_seitz_opt_setup proc~wignerseitz wignerseitz proc~pw90common_wanint_setup->proc~wignerseitz proc~ws_translate_dist ws_translate_dist proc~pw90common_wanint_setup->proc~ws_translate_dist proc~spin_get_moment->proc~mpirank proc~spin_get_moment->proc~mpisize proc~spin_get_moment->interface~comms_reduce proc~spin_get_moment->proc~get_hh_r proc~spin_get_moment->proc~get_ss_r proc~spin_get_moment->proc~set_error_input proc~spin_get_moment_k spin_get_moment_k proc~spin_get_moment->proc~spin_get_moment_k proc~w90_postw90_readwrite_read->proc~utility_recip_lattice proc~w90_readwrite_read_algorithm_control w90_readwrite_read_algorithm_control proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_algorithm_control proc~w90_readwrite_read_atoms w90_readwrite_read_atoms proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_atoms proc~w90_readwrite_read_dis_manifold w90_readwrite_read_dis_manifold proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_dis_manifold proc~w90_readwrite_read_eigvals w90_readwrite_read_eigvals proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_eigvals proc~w90_readwrite_read_exclude_bands w90_readwrite_read_exclude_bands proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_exclude_bands proc~w90_readwrite_read_fermi_energy w90_readwrite_read_fermi_energy proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_fermi_energy proc~w90_readwrite_read_gamma_only w90_readwrite_read_gamma_only proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_gamma_only proc~w90_readwrite_read_kmesh_data w90_readwrite_read_kmesh_data proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_kmesh_data proc~w90_readwrite_read_kpath w90_readwrite_read_kpath proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_kpath proc~w90_readwrite_read_kpoints w90_readwrite_read_kpoints proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_kpoints proc~w90_readwrite_read_lattice w90_readwrite_read_lattice proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_lattice proc~w90_readwrite_read_mp_grid w90_readwrite_read_mp_grid proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_mp_grid proc~w90_readwrite_read_num_bands w90_readwrite_read_num_bands proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_num_bands proc~w90_readwrite_read_num_wann w90_readwrite_read_num_wann proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_num_wann proc~w90_readwrite_read_system w90_readwrite_read_system proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_system proc~w90_readwrite_read_units w90_readwrite_read_units proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_units proc~w90_readwrite_read_verbosity w90_readwrite_read_verbosity proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_verbosity proc~w90_readwrite_read_ws_data w90_readwrite_read_ws_data proc~w90_postw90_readwrite_read->proc~w90_readwrite_read_ws_data proc~w90_wannier90_readwrite_read_berry w90_wannier90_readwrite_read_berry proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_berry proc~w90_wannier90_readwrite_read_boltzwann w90_wannier90_readwrite_read_boltzwann proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_boltzwann proc~w90_wannier90_readwrite_read_dos w90_wannier90_readwrite_read_dos proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_dos proc~w90_wannier90_readwrite_read_effective_model w90_wannier90_readwrite_read_effective_model proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_effective_model proc~w90_wannier90_readwrite_read_energy_range w90_wannier90_readwrite_read_energy_range proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_energy_range proc~w90_wannier90_readwrite_read_geninterp w90_wannier90_readwrite_read_geninterp proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_geninterp proc~w90_wannier90_readwrite_read_global_kmesh w90_wannier90_readwrite_read_global_kmesh proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_global_kmesh proc~w90_wannier90_readwrite_read_gyrotropic w90_wannier90_readwrite_read_gyrotropic proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_gyrotropic proc~w90_wannier90_readwrite_read_kslice w90_wannier90_readwrite_read_kslice proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_kslice proc~w90_wannier90_readwrite_read_local_kmesh w90_wannier90_readwrite_read_local_kmesh proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_local_kmesh proc~w90_wannier90_readwrite_read_oper w90_wannier90_readwrite_read_oper proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_oper proc~w90_wannier90_readwrite_read_pw90_calcs w90_wannier90_readwrite_read_pw90_calcs proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_pw90_calcs proc~w90_wannier90_readwrite_read_pw90_kpath w90_wannier90_readwrite_read_pw90_kpath proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_pw90_kpath proc~w90_wannier90_readwrite_read_pw90ham w90_wannier90_readwrite_read_pw90ham proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_pw90ham proc~w90_wannier90_readwrite_read_pw90spin w90_wannier90_readwrite_read_pw90spin proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_pw90spin proc~w90_wannier90_readwrite_read_scissors_shift w90_wannier90_readwrite_read_scissors_shift proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_scissors_shift proc~w90_wannier90_readwrite_read_smearing w90_wannier90_readwrite_read_smearing proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_smearing proc~w90_wannier90_readwrite_read_spin_hall w90_wannier90_readwrite_read_spin_hall proc~w90_postw90_readwrite_read->proc~w90_wannier90_readwrite_read_spin_hall proc~parameters_gyro_write_task parameters_gyro_write_task proc~w90_postw90_readwrite_write->proc~parameters_gyro_write_task proc~w90_postw90_readwrite_write->proc~utility_cart_to_frac proc~w90_postw90_readwrite_write->proc~utility_inverse_mat proc~w90_postw90_readwrite_write->proc~utility_recip_lattice_base proc~w90_readwrite_get_convention_type w90_readwrite_get_convention_type proc~w90_postw90_readwrite_write->proc~w90_readwrite_get_convention_type proc~w90_readwrite_get_smearing_type w90_readwrite_get_smearing_type proc~w90_postw90_readwrite_write->proc~w90_readwrite_get_smearing_type proc~w90_readwrite_clean_infile->proc~set_error_dealloc proc~w90_readwrite_clean_infile->proc~set_error_input 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_final_alloc->proc~set_error_alloc proc~io_date io_date proc~w90_readwrite_write_header->proc~io_date proc~comms_gatherv_cmplx_1 comms_gatherv_cmplx_1 interface~comms_gatherv->proc~comms_gatherv_cmplx_1 proc~comms_gatherv_cmplx_2 comms_gatherv_cmplx_2 interface~comms_gatherv->proc~comms_gatherv_cmplx_2 proc~comms_gatherv_cmplx_3 comms_gatherv_cmplx_3 interface~comms_gatherv->proc~comms_gatherv_cmplx_3 proc~comms_gatherv_cmplx_3_4 comms_gatherv_cmplx_3_4 interface~comms_gatherv->proc~comms_gatherv_cmplx_3_4 proc~comms_gatherv_cmplx_4 comms_gatherv_cmplx_4 interface~comms_gatherv->proc~comms_gatherv_cmplx_4 proc~comms_gatherv_logical comms_gatherv_logical interface~comms_gatherv->proc~comms_gatherv_logical proc~comms_gatherv_real_1 comms_gatherv_real_1 interface~comms_gatherv->proc~comms_gatherv_real_1 proc~comms_gatherv_real_2 comms_gatherv_real_2 interface~comms_gatherv->proc~comms_gatherv_real_2 proc~comms_gatherv_real_2_3 comms_gatherv_real_2_3 interface~comms_gatherv->proc~comms_gatherv_real_2_3 proc~comms_gatherv_real_3 comms_gatherv_real_3 interface~comms_gatherv->proc~comms_gatherv_real_3 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~comms_scatterv_cmplx_3 comms_scatterv_cmplx_3 interface~comms_scatterv->proc~comms_scatterv_cmplx_3 proc~comms_scatterv_cmplx_4 comms_scatterv_cmplx_4 interface~comms_scatterv->proc~comms_scatterv_cmplx_4 proc~comms_scatterv_int_1 comms_scatterv_int_1 interface~comms_scatterv->proc~comms_scatterv_int_1 proc~comms_scatterv_int_2 comms_scatterv_int_2 interface~comms_scatterv->proc~comms_scatterv_int_2 proc~comms_scatterv_int_3 comms_scatterv_int_3 interface~comms_scatterv->proc~comms_scatterv_int_3 proc~comms_scatterv_real_1 comms_scatterv_real_1 interface~comms_scatterv->proc~comms_scatterv_real_1 proc~comms_scatterv_real_2 comms_scatterv_real_2 interface~comms_scatterv->proc~comms_scatterv_real_2 proc~comms_scatterv_real_3 comms_scatterv_real_3 interface~comms_scatterv->proc~comms_scatterv_real_3 proc~berry_get_imf_klist->proc~berry_get_imfgh_klist proc~berry_get_imfgh_klist->proc~pw90common_fourier_r_to_k proc~pw90common_fourier_r_to_k_vec pw90common_fourier_R_to_k_vec proc~berry_get_imfgh_klist->proc~pw90common_fourier_r_to_k_vec proc~utility_im_tr_prod utility_im_tr_prod proc~berry_get_imfgh_klist->proc~utility_im_tr_prod proc~utility_re_tr_prod utility_re_tr_prod proc~berry_get_imfgh_klist->proc~utility_re_tr_prod proc~utility_zgemm_new utility_zgemm_new proc~berry_get_imfgh_klist->proc~utility_zgemm_new proc~wham_get_eig_uu_hh_jjlist wham_get_eig_UU_HH_JJlist proc~berry_get_imfgh_klist->proc~wham_get_eig_uu_hh_jjlist proc~wham_get_occ_mat_list wham_get_occ_mat_list proc~berry_get_imfgh_klist->proc~wham_get_occ_mat_list proc~berry_get_kdotp->proc~wham_get_eig_deleig proc~utility_rotate utility_rotate proc~berry_get_kdotp->proc~utility_rotate proc~wham_get_d_h_p_value wham_get_D_h_P_value proc~berry_get_kdotp->proc~wham_get_d_h_p_value proc~wham_get_eig_uu_hh_aa_sc wham_get_eig_UU_HH_AA_sc proc~berry_get_kdotp->proc~wham_get_eig_uu_hh_aa_sc proc~berry_get_kubo_k->proc~spin_get_nk proc~berry_get_kubo_k->proc~utility_diagonalize proc~berry_get_kubo_k->proc~utility_recip_lattice_base proc~berry_get_kubo_k->proc~wham_get_eig_deleig interface~pw90common_kmesh_spacing pw90common_kmesh_spacing proc~berry_get_kubo_k->interface~pw90common_kmesh_spacing proc~pw90common_fourier_r_to_k_new pw90common_fourier_R_to_k_new proc~berry_get_kubo_k->proc~pw90common_fourier_r_to_k_new proc~berry_get_kubo_k->proc~pw90common_fourier_r_to_k_vec proc~pw90common_get_occ pw90common_get_occ proc~berry_get_kubo_k->proc~pw90common_get_occ proc~berry_get_kubo_k->proc~utility_rotate proc~utility_w0gauss utility_w0gauss proc~berry_get_kubo_k->proc~utility_w0gauss proc~wham_get_d_h wham_get_D_h proc~berry_get_kubo_k->proc~wham_get_d_h proc~berry_get_sc_klist->proc~utility_recip_lattice_base proc~berry_get_sc_klist->proc~wham_get_eig_deleig dger dger proc~berry_get_sc_klist->dger proc~berry_get_sc_klist->interface~pw90common_kmesh_spacing proc~pw90common_fourier_r_to_k_vec_dadb pw90common_fourier_R_to_k_vec_dadb proc~berry_get_sc_klist->proc~pw90common_fourier_r_to_k_vec_dadb proc~pw90common_fourier_r_to_k_vec_dadb_tb_conv pw90common_fourier_R_to_k_vec_dadb_TB_conv proc~berry_get_sc_klist->proc~pw90common_fourier_r_to_k_vec_dadb_tb_conv proc~berry_get_sc_klist->proc~pw90common_get_occ proc~berry_get_sc_klist->proc~utility_rotate proc~utility_w0gauss_vec utility_w0gauss_vec proc~berry_get_sc_klist->proc~utility_w0gauss_vec proc~utility_zdotu utility_zdotu proc~berry_get_sc_klist->proc~utility_zdotu proc~berry_get_sc_klist->proc~wham_get_d_h proc~berry_get_sc_klist->proc~wham_get_d_h_p_value proc~wham_get_eig_deleig_tb_conv wham_get_eig_deleig_TB_conv proc~berry_get_sc_klist->proc~wham_get_eig_deleig_tb_conv proc~berry_get_sc_klist->proc~wham_get_eig_uu_hh_aa_sc proc~wham_get_eig_uu_hh_aa_sc_tb_conv wham_get_eig_UU_HH_AA_sc_TB_conv proc~berry_get_sc_klist->proc~wham_get_eig_uu_hh_aa_sc_tb_conv proc~berry_get_shc_klist->proc~utility_recip_lattice_base proc~berry_get_shc_klist->proc~wham_get_eig_deleig proc~berry_get_shc_klist->interface~pw90common_kmesh_spacing proc~berry_get_shc_klist->proc~pw90common_fourier_r_to_k_new proc~berry_get_shc_klist->proc~pw90common_fourier_r_to_k_vec proc~berry_get_shc_klist->proc~pw90common_get_occ proc~berry_get_shc_klist->proc~utility_rotate proc~berry_get_shc_klist->proc~wham_get_d_h proc~berry_get_shc_tetrahedron->proc~utility_diagonalize proc~berry_get_shc_tetrahedron->proc~pw90common_fourier_r_to_k_new proc~berry_get_shc_tetrahedron->proc~pw90common_fourier_r_to_k_vec proc~berry_get_shc_tetrahedron->proc~utility_rotate proc~io_wallclocktime io_wallclocktime proc~berry_print_progress->proc~io_wallclocktime proc~calctdfanddos->proc~mpirank proc~calctdfanddos->proc~mpisize proc~calctdfanddos->interface~comms_reduce proc~calctdfanddos->proc~dos_get_k proc~calctdfanddos->proc~dos_get_levelspacing proc~calctdfanddos->proc~get_hh_r proc~calctdfanddos->proc~get_ss_r proc~calctdfanddos->proc~io_stopwatch_start proc~calctdfanddos->proc~io_stopwatch_stop proc~calctdfanddos->proc~set_error_alloc proc~calctdfanddos->proc~set_error_dealloc proc~calctdfanddos->proc~set_error_input proc~calctdfanddos->proc~utility_recip_lattice_base proc~calctdfanddos->proc~w90_readwrite_get_smearing_type proc~calctdfanddos->proc~wham_get_eig_deleig interface~comms_allreduce comms_allreduce proc~calctdfanddos->interface~comms_allreduce proc~tdf_kpt TDF_kpt proc~calctdfanddos->proc~tdf_kpt proc~comms_array_split->proc~mpisize proc~comms_no_sync_bcast_char comms_no_sync_bcast_char proc~comms_bcast_char->proc~comms_no_sync_bcast_char proc~comms_sync_error comms_sync_error proc~comms_bcast_char->proc~comms_sync_error proc~comms_no_sync_bcast_cmplx comms_no_sync_bcast_cmplx proc~comms_bcast_cmplx->proc~comms_no_sync_bcast_cmplx proc~comms_bcast_cmplx->proc~comms_sync_error proc~comms_no_sync_bcast_int comms_no_sync_bcast_int proc~comms_bcast_int->proc~comms_no_sync_bcast_int proc~comms_bcast_int->proc~comms_sync_error proc~comms_no_sync_bcast_logical comms_no_sync_bcast_logical proc~comms_bcast_logical->proc~comms_no_sync_bcast_logical proc~comms_bcast_logical->proc~comms_sync_error proc~comms_no_sync_bcast_real comms_no_sync_bcast_real proc~comms_bcast_real->proc~comms_no_sync_bcast_real proc~comms_bcast_real->proc~comms_sync_error proc~dos_get_k->proc~set_error_input proc~dos_get_k->proc~spin_get_nk proc~dos_get_k->proc~utility_w0gauss proc~dos_get_levelspacing->interface~pw90common_kmesh_spacing proc~get_aa_r->interface~comms_bcast proc~get_aa_r->proc~mpirank proc~get_aa_r->proc~mpisize proc~get_aa_r->interface~comms_reduce proc~get_aa_r->interface~comms_scatterv proc~get_aa_r->proc~comms_array_split proc~get_aa_r->proc~io_stopwatch_start proc~get_aa_r->proc~io_stopwatch_stop proc~get_aa_r->proc~set_error_fatal proc~get_aa_r->proc~set_error_file proc~fourier_loc_q_to_r fourier_loc_q_to_R proc~get_aa_r->proc~fourier_loc_q_to_r proc~get_gauge_overlap_matrix get_gauge_overlap_matrix proc~get_aa_r->proc~get_gauge_overlap_matrix proc~operator_wigner_setup operator_wigner_setup proc~get_aa_r->proc~operator_wigner_setup proc~get_aa_r_effective->interface~comms_bcast proc~get_aa_r_effective->proc~mpirank proc~get_aa_r_effective->proc~io_stopwatch_start proc~get_aa_r_effective->proc~io_stopwatch_stop proc~get_aa_r_effective->proc~set_error_fatal proc~get_aa_r_effective->proc~set_error_file proc~get_bb_r->interface~comms_bcast proc~get_bb_r->proc~mpirank proc~get_bb_r->proc~mpisize proc~get_bb_r->interface~comms_reduce proc~get_bb_r->interface~comms_scatterv proc~get_bb_r->proc~comms_array_split proc~get_bb_r->proc~io_stopwatch_start proc~get_bb_r->proc~io_stopwatch_stop proc~get_bb_r->proc~set_error_fatal proc~get_bb_r->proc~set_error_file proc~get_bb_r->proc~fourier_loc_q_to_r proc~get_bb_r->proc~get_gauge_overlap_matrix proc~get_win_min get_win_min proc~get_bb_r->proc~get_win_min proc~get_bb_r->proc~operator_wigner_setup proc~get_cc_r->interface~comms_bcast proc~get_cc_r->proc~mpirank proc~get_cc_r->proc~mpisize proc~get_cc_r->interface~comms_reduce proc~get_cc_r->interface~comms_scatterv proc~get_cc_r->proc~comms_array_split proc~get_cc_r->proc~io_stopwatch_start proc~get_cc_r->proc~io_stopwatch_stop proc~get_cc_r->proc~set_error_fatal proc~get_cc_r->proc~set_error_file proc~get_cc_r->proc~utility_compar proc~get_cc_r->proc~fourier_loc_q_to_r proc~get_cc_r->proc~get_gauge_overlap_matrix proc~get_cc_r->proc~get_win_min proc~get_cc_r->proc~operator_wigner_setup proc~get_hh_r->interface~comms_bcast proc~get_hh_r->proc~mpirank proc~get_hh_r->proc~io_stopwatch_start proc~get_hh_r->proc~io_stopwatch_stop proc~get_hh_r->proc~set_error_fatal proc~get_hh_r->proc~set_error_file proc~get_hh_r->proc~set_error_input proc~fourier_q_to_r fourier_q_to_R proc~get_hh_r->proc~fourier_q_to_r proc~get_hh_r->proc~get_win_min proc~get_hh_r->proc~operator_wigner_setup proc~get_saa_r->interface~comms_bcast proc~get_saa_r->proc~mpirank proc~get_saa_r->proc~mpisize proc~get_saa_r->interface~comms_reduce proc~get_saa_r->interface~comms_scatterv proc~get_saa_r->proc~comms_array_split proc~get_saa_r->proc~io_stopwatch_start proc~get_saa_r->proc~io_stopwatch_stop proc~get_saa_r->proc~set_error_fatal proc~get_saa_r->proc~set_error_file proc~get_saa_r->proc~fourier_loc_q_to_r proc~get_saa_r->proc~get_win_min proc~get_saa_r->proc~operator_wigner_setup proc~get_sbb_r->interface~comms_bcast proc~get_sbb_r->proc~mpirank proc~get_sbb_r->proc~mpisize proc~get_sbb_r->interface~comms_reduce proc~get_sbb_r->interface~comms_scatterv proc~get_sbb_r->proc~comms_array_split proc~get_sbb_r->proc~io_stopwatch_start proc~get_sbb_r->proc~io_stopwatch_stop proc~get_sbb_r->proc~set_error_fatal proc~get_sbb_r->proc~set_error_file proc~get_sbb_r->proc~fourier_loc_q_to_r proc~get_sbb_r->proc~get_win_min proc~get_sbb_r->proc~operator_wigner_setup proc~get_sh_r->interface~comms_bcast proc~get_sh_r->proc~mpirank proc~get_sh_r->proc~io_stopwatch_start proc~get_sh_r->proc~io_stopwatch_stop proc~get_sh_r->proc~set_error_alloc proc~get_sh_r->proc~set_error_dealloc proc~get_sh_r->proc~set_error_fatal proc~get_sh_r->proc~set_error_file proc~get_sh_r->proc~fourier_q_to_r proc~get_sh_r->proc~get_gauge_overlap_matrix proc~get_sh_r->proc~operator_wigner_setup proc~get_shc_r->interface~comms_bcast proc~get_shc_r->proc~mpirank proc~get_shc_r->proc~io_stopwatch_start proc~get_shc_r->proc~io_stopwatch_stop proc~get_shc_r->proc~set_error_alloc proc~get_shc_r->proc~set_error_dealloc proc~get_shc_r->proc~set_error_fatal proc~get_shc_r->proc~set_error_file proc~get_shc_r->proc~fourier_q_to_r proc~get_shc_r->proc~get_gauge_overlap_matrix proc~get_shc_r->proc~operator_wigner_setup proc~get_ss_r->interface~comms_bcast proc~get_ss_r->proc~mpirank proc~get_ss_r->proc~io_stopwatch_start proc~get_ss_r->proc~io_stopwatch_stop proc~get_ss_r->proc~set_error_alloc proc~get_ss_r->proc~set_error_dealloc proc~get_ss_r->proc~set_error_fatal proc~get_ss_r->proc~set_error_file proc~get_ss_r->proc~fourier_q_to_r proc~get_ss_r->proc~get_gauge_overlap_matrix proc~get_ss_r->proc~operator_wigner_setup proc~gyrotropic_get_k_list->proc~berry_get_imf_klist proc~gyrotropic_get_k_list->proc~berry_get_imfgh_klist proc~gyrotropic_get_k_list->proc~set_error_input proc~gyrotropic_get_k_list->proc~wham_get_eig_deleig proc~gyrotropic_get_curv_w_k gyrotropic_get_curv_w_k proc~gyrotropic_get_k_list->proc~gyrotropic_get_curv_w_k proc~gyrotropic_get_noa_k gyrotropic_get_NOA_k proc~gyrotropic_get_k_list->proc~gyrotropic_get_noa_k proc~gyrotropic_get_k_list->proc~pw90common_fourier_r_to_k_vec proc~spin_get_s spin_get_S proc~gyrotropic_get_k_list->proc~spin_get_s proc~gyrotropic_get_k_list->proc~utility_rotate proc~gyrotropic_get_k_list->proc~utility_w0gauss proc~gyrotropic_get_k_list->proc~wham_get_d_h proc~gyrotropic_outprint_tensor_w gyrotropic_outprint_tensor_w proc~gyrotropic_outprint_tensor->proc~gyrotropic_outprint_tensor_w proc~internal_write_header->proc~io_date proc~utility_metric utility_metric proc~k_path_get_points->proc~utility_metric proc~k_path_print_info->proc~mpirank proc~k_path_print_info->proc~set_error_input proc~kmesh_bvectors_perm->proc~set_error_fatal proc~kmesh_get_bvectors->proc~io_stopwatch_start proc~kmesh_get_bvectors->proc~io_stopwatch_stop proc~kmesh_get_bvectors->proc~set_error_fatal 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_shell_automatic->proc~set_error_alloc proc~kmesh_shell_automatic->proc~set_error_dealloc proc~kmesh_shell_automatic->proc~set_error_fatal dgesvd dgesvd proc~kmesh_shell_automatic->dgesvd 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~io_stopwatch_start proc~kmesh_shell_fixed->proc~io_stopwatch_stop proc~kmesh_shell_fixed->proc~kmesh_get_bvectors proc~kmesh_shell_fixed->proc~set_error_alloc proc~kmesh_shell_fixed->proc~set_error_fatal proc~kmesh_shell_fixed->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_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->proc~set_error_input proc~kmesh_shell_from_file->dgesvd 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~kslice_print_info->proc~set_error_input proc~prterr->proc~mpirank proc~prterr->proc~mpisize 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~set_error_alloc->proc~comms_sync_error proc~set_base_error set_base_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~set_error_input->proc~comms_sync_error proc~set_error_input->proc~set_base_error proc~spin_get_moment_k->proc~pw90common_fourier_r_to_k proc~spin_get_moment_k->proc~utility_diagonalize proc~spin_get_moment_k->proc~pw90common_get_occ proc~utility_rotate_diag utility_rotate_diag proc~spin_get_moment_k->proc~utility_rotate_diag proc~spin_get_nk->proc~pw90common_fourier_r_to_k proc~spin_get_nk->proc~utility_diagonalize proc~spin_get_nk->proc~utility_rotate_diag proc~tetrahedron_fermidirac tetrahedron_fermidirac proc~tetrahedron_spinhall->proc~tetrahedron_fermidirac proc~utility_diagonalize->proc~set_error_fatal zhpevx zhpevx proc~utility_diagonalize->zhpevx proc~utility_inverse_mat->proc~utility_inv3 proc~utility_recip_lattice->proc~set_error_fatal proc~utility_recip_lattice->proc~utility_recip_lattice_base proc~utility_recip_lattice_base->proc~utility_inv3 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_alloc proc~w90_readwrite_read_atoms->proc~set_error_dealloc proc~w90_readwrite_read_atoms->proc~set_error_input 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_eigvals->proc~set_error_file proc~w90_readwrite_read_exclude_bands->proc~set_error_alloc proc~w90_readwrite_read_exclude_bands->proc~set_error_input proc~w90_readwrite_read_exclude_bands->proc~w90_readwrite_get_range_vector proc~w90_readwrite_read_fermi_energy->proc~set_error_alloc proc~w90_readwrite_read_fermi_energy->proc~set_error_input 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_alloc proc~w90_readwrite_read_kmesh_data->proc~set_error_input 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_alloc proc~w90_readwrite_read_kpath->proc~set_error_dealloc proc~w90_readwrite_read_kpath->proc~set_error_input 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_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_berry->proc~set_error_alloc proc~w90_wannier90_readwrite_read_berry->proc~set_error_input proc~w90_wannier90_readwrite_read_berry->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_berry->proc~w90_readwrite_get_keyword_vector proc~w90_wannier90_readwrite_read_berry->proc~w90_readwrite_get_range_vector proc~w90_readwrite_get_smearing_index w90_readwrite_get_smearing_index proc~w90_wannier90_readwrite_read_berry->proc~w90_readwrite_get_smearing_index proc~w90_wannier90_readwrite_read_boltzwann->proc~set_error_input proc~w90_wannier90_readwrite_read_boltzwann->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_boltzwann->proc~w90_readwrite_get_smearing_index proc~w90_wannier90_readwrite_read_dos->proc~set_error_alloc proc~w90_wannier90_readwrite_read_dos->proc~set_error_input proc~w90_wannier90_readwrite_read_dos->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_dos->proc~w90_readwrite_get_range_vector proc~w90_wannier90_readwrite_read_dos->proc~w90_readwrite_get_smearing_index proc~w90_wannier90_readwrite_read_effective_model->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_energy_range->proc~set_error_alloc proc~w90_wannier90_readwrite_read_energy_range->proc~set_error_input proc~w90_wannier90_readwrite_read_energy_range->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_geninterp->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_global_kmesh->proc~set_error_input proc~w90_wannier90_readwrite_read_global_kmesh->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_global_kmesh->proc~w90_readwrite_get_keyword_vector proc~w90_wannier90_readwrite_read_global_kmesh->proc~w90_readwrite_get_vector_length proc~w90_readwrite_set_kmesh w90_readwrite_set_kmesh proc~w90_wannier90_readwrite_read_global_kmesh->proc~w90_readwrite_set_kmesh proc~w90_wannier90_readwrite_read_gyrotropic->proc~set_error_alloc proc~w90_wannier90_readwrite_read_gyrotropic->proc~set_error_input proc~w90_wannier90_readwrite_read_gyrotropic->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_gyrotropic->proc~w90_readwrite_get_keyword_vector proc~w90_wannier90_readwrite_read_gyrotropic->proc~w90_readwrite_get_range_vector proc~w90_wannier90_readwrite_read_gyrotropic->proc~w90_readwrite_get_smearing_index proc~w90_wannier90_readwrite_read_kslice->proc~set_error_input proc~w90_wannier90_readwrite_read_kslice->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_kslice->proc~w90_readwrite_get_keyword_vector proc~w90_wannier90_readwrite_read_kslice->proc~w90_readwrite_get_vector_length proc~get_module_kmesh get_module_kmesh proc~w90_wannier90_readwrite_read_local_kmesh->proc~get_module_kmesh proc~w90_wannier90_readwrite_read_oper->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_pw90_calcs->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_pw90_kpath->proc~set_error_input proc~w90_wannier90_readwrite_read_pw90_kpath->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_pw90ham->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_pw90spin->proc~set_error_input proc~w90_wannier90_readwrite_read_pw90spin->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_scissors_shift->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_smearing->proc~set_error_input proc~w90_wannier90_readwrite_read_smearing->proc~w90_readwrite_get_keyword proc~w90_wannier90_readwrite_read_smearing->proc~w90_readwrite_get_smearing_index proc~w90_wannier90_readwrite_read_spin_hall->proc~set_error_input proc~w90_wannier90_readwrite_read_spin_hall->proc~w90_readwrite_get_keyword proc~wham_get_eig_deleig->proc~get_hh_r proc~wham_get_eig_deleig->proc~pw90common_fourier_r_to_k proc~wham_get_eig_deleig->proc~utility_diagonalize proc~wham_get_deleig_a wham_get_deleig_a proc~wham_get_eig_deleig->proc~wham_get_deleig_a proc~wigner_seitz_opt_setup->proc~set_error_alloc proc~wigner_seitz_opt_setup->proc~set_error_dealloc proc~wigner_seitz_opt_setup->proc~set_error_fatal proc~wignerseitz->proc~mpirank proc~wignerseitz->proc~io_stopwatch_start proc~wignerseitz->proc~io_stopwatch_stop proc~wignerseitz->proc~set_error_alloc proc~wignerseitz->proc~set_error_dealloc proc~wignerseitz->proc~set_error_fatal proc~wignerseitz->proc~utility_metric 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~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 interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_char interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_cmplx interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_int interface~comms_no_sync_bcast->proc~comms_no_sync_bcast_logical 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~kmesh_spacing_mesh kmesh_spacing_mesh interface~pw90common_kmesh_spacing->proc~kmesh_spacing_mesh proc~kmesh_spacing_singleinteger kmesh_spacing_singleinteger interface~pw90common_kmesh_spacing->proc~kmesh_spacing_singleinteger proc~clean_ws_translate->proc~set_error_dealloc proc~clear_block->proc~set_error_input proc~comms_gatherv_cmplx_1->proc~comms_sync_error proc~comms_no_sync_gatherv_cmplx_1 comms_no_sync_gatherv_cmplx_1 proc~comms_gatherv_cmplx_1->proc~comms_no_sync_gatherv_cmplx_1 proc~comms_gatherv_cmplx_2->proc~comms_sync_error proc~comms_no_sync_gatherv_cmplx_2 comms_no_sync_gatherv_cmplx_2 proc~comms_gatherv_cmplx_2->proc~comms_no_sync_gatherv_cmplx_2 proc~comms_gatherv_cmplx_3->proc~comms_sync_error proc~comms_no_sync_gatherv_cmplx_3 comms_no_sync_gatherv_cmplx_3 proc~comms_gatherv_cmplx_3->proc~comms_no_sync_gatherv_cmplx_3 proc~comms_gatherv_cmplx_3_4->proc~comms_sync_error proc~comms_no_sync_gatherv_cmplx_3_4 comms_no_sync_gatherv_cmplx_3_4 proc~comms_gatherv_cmplx_3_4->proc~comms_no_sync_gatherv_cmplx_3_4 proc~comms_gatherv_cmplx_4->proc~comms_sync_error proc~comms_no_sync_gatherv_cmplx_4 comms_no_sync_gatherv_cmplx_4 proc~comms_gatherv_cmplx_4->proc~comms_no_sync_gatherv_cmplx_4 proc~comms_gatherv_logical->proc~comms_sync_error proc~comms_no_sync_gatherv_logical comms_no_sync_gatherv_logical proc~comms_gatherv_logical->proc~comms_no_sync_gatherv_logical proc~comms_gatherv_real_1->proc~comms_sync_error proc~comms_no_sync_gatherv_real_1 comms_no_sync_gatherv_real_1 proc~comms_gatherv_real_1->proc~comms_no_sync_gatherv_real_1 proc~comms_gatherv_real_2->proc~comms_sync_error proc~comms_no_sync_gatherv_real_2 comms_no_sync_gatherv_real_2 proc~comms_gatherv_real_2->proc~comms_no_sync_gatherv_real_2 proc~comms_gatherv_real_2_3->proc~comms_sync_error proc~comms_no_sync_gatherv_real_2_3 comms_no_sync_gatherv_real_2_3 proc~comms_gatherv_real_2_3->proc~comms_no_sync_gatherv_real_2_3 proc~comms_gatherv_real_3->proc~comms_sync_error proc~comms_no_sync_gatherv_real_3 comms_no_sync_gatherv_real_3 proc~comms_gatherv_real_3->proc~comms_no_sync_gatherv_real_3 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~comms_scatterv_cmplx_3->proc~comms_sync_error proc~comms_no_sync_scatterv_cmplx_3 comms_no_sync_scatterv_cmplx_3 proc~comms_scatterv_cmplx_3->proc~comms_no_sync_scatterv_cmplx_3 proc~comms_scatterv_cmplx_4->proc~comms_sync_error proc~comms_no_sync_scatterv_cmplx_4 comms_no_sync_scatterv_cmplx_4 proc~comms_scatterv_cmplx_4->proc~comms_no_sync_scatterv_cmplx_4 proc~comms_scatterv_int_1->proc~comms_sync_error proc~comms_no_sync_scatterv_int_1 comms_no_sync_scatterv_int_1 proc~comms_scatterv_int_1->proc~comms_no_sync_scatterv_int_1 proc~comms_scatterv_int_2->proc~comms_sync_error proc~comms_no_sync_scatterv_int_2 comms_no_sync_scatterv_int_2 proc~comms_scatterv_int_2->proc~comms_no_sync_scatterv_int_2 proc~comms_scatterv_int_3->proc~comms_sync_error proc~comms_no_sync_scatterv_int_3 comms_no_sync_scatterv_int_3 proc~comms_scatterv_int_3->proc~comms_no_sync_scatterv_int_3 proc~comms_scatterv_real_1->proc~comms_sync_error proc~comms_no_sync_scatterv_real_1 comms_no_sync_scatterv_real_1 proc~comms_scatterv_real_1->proc~comms_no_sync_scatterv_real_1 proc~comms_scatterv_real_2->proc~comms_sync_error proc~comms_no_sync_scatterv_real_2 comms_no_sync_scatterv_real_2 proc~comms_scatterv_real_2->proc~comms_no_sync_scatterv_real_2 proc~comms_scatterv_real_3->proc~comms_sync_error proc~comms_no_sync_scatterv_real_3 comms_no_sync_scatterv_real_3 proc~comms_scatterv_real_3->proc~comms_no_sync_scatterv_real_3 proc~get_gauge_overlap_matrix->proc~get_win_min proc~utility_zgemmm utility_zgemmm proc~get_gauge_overlap_matrix->proc~utility_zgemmm proc~get_module_kmesh->proc~set_error_input proc~get_module_kmesh->proc~w90_readwrite_get_keyword proc~get_module_kmesh->proc~w90_readwrite_get_keyword_vector proc~get_module_kmesh->proc~w90_readwrite_get_vector_length proc~get_module_kmesh->proc~w90_readwrite_set_kmesh proc~gyrotropic_get_noa_k->proc~pw90common_fourier_r_to_k_new proc~gyrotropic_get_noa_k->proc~utility_rotate proc~gyrotropic_get_noa_bnl_orb gyrotropic_get_NOA_Bnl_orb proc~gyrotropic_get_noa_k->proc~gyrotropic_get_noa_bnl_orb proc~gyrotropic_get_noa_bnl_spin gyrotropic_get_NOA_Bnl_spin proc~gyrotropic_get_noa_k->proc~gyrotropic_get_noa_bnl_spin proc~pw90common_fourier_r_to_k_vec_dadb_tb_conv->proc~utility_cart_to_frac proc~pw90common_fourier_r_to_k_vec_dadb_tb_conv->proc~utility_inverse_mat 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_alloc proc~readwrite_get_atoms->proc~set_error_input 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~spin_get_s->proc~pw90common_fourier_r_to_k proc~spin_get_s->proc~utility_diagonalize proc~spin_get_s->proc~utility_rotate_diag proc~tdf_kpt->proc~spin_get_nk proc~tdf_kpt->proc~utility_w0gauss proc~tetrahedron_integral tetrahedron_integral proc~tetrahedron_fermidirac->proc~tetrahedron_integral proc~tetrahedron_sort tetrahedron_sort proc~tetrahedron_fermidirac->proc~tetrahedron_sort proc~utility_rotate_diag->proc~utility_zgemm_new proc~utility_matmul_diag utility_matmul_diag proc~utility_rotate_diag->proc~utility_matmul_diag proc~utility_w0gauss->proc~set_error_input proc~utility_w0gauss_vec->proc~set_error_alloc proc~utility_w0gauss_vec->proc~set_error_input zgemm zgemm proc~utility_zgemm_new->zgemm proc~w90_readwrite_get_block_length->proc~set_error_input proc~w90_readwrite_get_keyword->proc~set_error_fatal proc~w90_readwrite_get_keyword->proc~set_error_input proc~w90_readwrite_get_keyword_block->proc~set_error_fatal proc~w90_readwrite_get_keyword_block->proc~set_error_input proc~w90_readwrite_get_keyword_kpath->proc~set_error_input proc~w90_readwrite_get_keyword_vector->proc~set_error_fatal proc~w90_readwrite_get_keyword_vector->proc~set_error_input 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_smearing_index->proc~set_error_input proc~w90_readwrite_get_vector_length->proc~set_error_fatal proc~w90_readwrite_get_vector_length->proc~set_error_input proc~w90_readwrite_set_atoms->proc~set_error_alloc proc~w90_readwrite_set_atoms->proc~utility_lowercase proc~wham_get_d_h->proc~utility_rotate proc~wham_get_d_h_p_value->proc~utility_rotate proc~wham_get_deleig_a->proc~utility_diagonalize proc~wham_get_deleig_a->proc~utility_rotate proc~wham_get_deleig_a->proc~utility_rotate_diag proc~wham_get_eig_deleig_tb_conv->proc~wham_get_deleig_a proc~wham_get_eig_uu_hh_aa_sc->proc~get_hh_r proc~wham_get_eig_uu_hh_aa_sc->proc~utility_diagonalize proc~pw90common_fourier_r_to_k_new_second_d pw90common_fourier_R_to_k_new_second_d proc~wham_get_eig_uu_hh_aa_sc->proc~pw90common_fourier_r_to_k_new_second_d proc~wham_get_eig_uu_hh_aa_sc_tb_conv->proc~get_aa_r proc~wham_get_eig_uu_hh_aa_sc_tb_conv->proc~get_aa_r_effective proc~wham_get_eig_uu_hh_aa_sc_tb_conv->proc~get_hh_r proc~wham_get_eig_uu_hh_aa_sc_tb_conv->proc~utility_diagonalize proc~pw90common_fourier_r_to_k_new_second_d_tb_conv pw90common_fourier_R_to_k_new_second_d_TB_conv proc~wham_get_eig_uu_hh_aa_sc_tb_conv->proc~pw90common_fourier_r_to_k_new_second_d_tb_conv proc~wham_get_eig_uu_hh_jjlist->proc~get_hh_r proc~wham_get_eig_uu_hh_jjlist->proc~utility_diagonalize proc~wham_get_eig_uu_hh_jjlist->proc~pw90common_fourier_r_to_k_new proc~wham_get_jjp_jjm_list wham_get_JJp_JJm_list proc~wham_get_eig_uu_hh_jjlist->proc~wham_get_jjp_jjm_list proc~wham_get_occ_mat_list->proc~set_error_input proc~wham_get_occ_mat_list->proc~pw90common_get_occ 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 zcopy zcopy proc~comms_no_sync_gatherv_cmplx_2->zcopy proc~comms_no_sync_gatherv_cmplx_3_4->zcopy proc~comms_no_sync_gatherv_real_2_3->dcopy proc~pw90common_fourier_r_to_k_new_second_d_tb_conv->proc~utility_cart_to_frac proc~pw90common_fourier_r_to_k_new_second_d_tb_conv->proc~utility_inverse_mat proc~tetrahedron_integral->proc~utility_inv3 proc~tetrahedron_integral->proc~tetrahedron_sort proc~tetrahedron_jacobian tetrahedron_jacobian proc~tetrahedron_integral->proc~tetrahedron_jacobian proc~tetrahedron_log1p tetrahedron_log1p proc~tetrahedron_integral->proc~tetrahedron_log1p proc~utility_zgemmm->proc~utility_zgemm_new proc~utility_rotate_new utility_rotate_new proc~wham_get_jjp_jjm_list->proc~utility_rotate_new proc~utility_rotate_new->proc~utility_zgemm_new

Variables

Type Attributes Name Initial
character(len=20) :: checkpoint
character(len=:), allocatable :: prog
character(len=:), allocatable :: seednamedyn
character(len=50) :: seedname
character(len=9) :: stat
character(len=9) :: pos
integer :: nkp
integer :: len_seedname
integer :: stdout
integer :: stderr
logical :: have_gamma
logical :: wpout_found
logical :: dryrun
real(kind=dp) :: time0
real(kind=dp) :: time1
real(kind=dp) :: time2
type(pw90_physical_constants_type) :: physics
complex(kind=dp), allocatable :: m_matrix(:,:,:,:)
complex(kind=dp), allocatable :: HH_R(:,:,:)

complex(kind=dp), allocatable :: AA_R(:,:,:,:)

complex(kind=dp), allocatable :: BB_R(:,:,:,:)

complex(kind=dp), allocatable :: CC_R(:,:,:,:,:)

complex(kind=dp), allocatable :: SS_R(:,:,:,:)

complex(kind=dp), allocatable :: SR_R(:,:,:,:,:)

complex(kind=dp), allocatable :: SHR_R(:,:,:,:,:)

complex(kind=dp), allocatable :: SH_R(:,:,:,:)

complex(kind=dp), allocatable :: SAA_R(:,:,:,:,:)

complex(kind=dp), allocatable :: SBB_R(:,:,:,:,:)

integer, allocatable :: exclude_bands(:)
integer :: fermi_n
integer :: num_exclude_bands
integer :: num_kpts
integer :: optimisation
real(kind=dp), allocatable :: fermi_energy_list(:)
real(kind=dp), allocatable :: kpt_latt(:,:)
type(atom_data_type) :: atoms
type(dis_manifold_type) :: dis_window
type(kmesh_info_type) :: kmesh_info
type(kmesh_input_type) :: kmesh_data
type(print_output_type) :: verbose
type(timer_list_type) :: timer
type(w90_system_type) :: system
type(wannier_data_type) :: wann_data
type(ws_region_type) :: ws_region
type(settings_type) :: settings

container for input file (.win) data and options set via library interface

integer :: num_bands

Number of bands

integer :: num_wann

number of wannier functions

real(kind=dp), pointer :: eigval(:,:)
complex(kind=dp), allocatable :: u_matrix_opt(:,:,:)
complex(kind=dp), allocatable :: u_matrix(:,:,:)
real(kind=dp) :: scissors_shift
integer :: mp_grid(3)

Dimensions of the Monkhorst-Pack grid

real(kind=dp) :: real_lattice(3,3)
type(kpoint_path_type) :: spec_points
type(pw90_calculation_type) :: pw90_calcs
logical :: eig_found
complex(kind=dp), allocatable :: v_matrix(:,:,:)
integer :: my_node_id
integer :: num_nodes
integer :: ierr
logical :: effective_model = .false.
logical :: gamma_only
logical :: have_disentangled
logical :: on_root
logical :: lpp
real(kind=dp) :: omega_invariant
type(kpoint_dist_type) :: kpt_dist
type(pw90_band_deriv_degen_type) :: pw90_ham
type(pw90_berry_mod_type) :: berry
type(pw90_boltzwann_type) :: boltz
type(pw90_dos_mod_type) :: dos_data
type(pw90_extra_io_type) :: write_data
type(pw90_geninterp_mod_type) :: geninterp
type(pw90_gyrotropic_type) :: gyrotropic
type(pw90_kpath_mod_type) :: kpath
type(pw90_kslice_mod_type) :: kslice
type(pw90_oper_read_type) :: postw90_oper
type(pw90_spin_hall_type) :: spin_hall
type(pw90_spin_mod_type) :: pw90_spin
type(w90_comm_type) :: comm
type(wigner_seitz_type) :: ws_vec
type(ws_distance_type) :: ws_distance
type(w90_error_type), allocatable :: error

Source Code

program postw90

  !! The postw90 program

  use w90_berry, only: berry_main
  use w90_boltzwann
  use w90_comms, only: comms_bcast, comms_barrier, w90_comm_type, mpirank, mpisize
  use w90_constants, only: dp, eps6, pw90_physical_constants_type
  use w90_dos
  use w90_error
  use w90_geninterp
  use w90_gyrotropic
  use w90_io
  use w90_kmesh
  use w90_kpath
  use w90_kslice
  use w90_postw90_common, only: pw90common_wanint_setup, pw90common_wanint_get_kpoint_file, &
                                pw90common_wanint_w90_wannier90_readwrite_dist, pw90common_wanint_data_dist
  use w90_postw90_readwrite
  use w90_postw90_types
  use w90_readwrite, only: w90_readwrite_read_chkpt, w90_readwrite_write_header, &
                           w90_readwrite_in_file, w90_readwrite_clean_infile, w90_readwrite_read_final_alloc
  use w90_spin
  use w90_types

#ifdef W90_MPI
#  if !(defined(W90_MPI08) || defined(W90_MPI90) || defined(W90_MPIH))
#    error "You need to define which MPI interface you are using"
#  endif
#endif

#ifdef W90_MPI08
  use mpi_f08 ! use f08 interface if possible
#endif
#ifdef W90_MPI90
  use mpi ! next best, use fortran90 interface
#endif

  implicit none

#ifdef W90_MPIH
  include 'mpif.h' ! worst case, use legacy interface
#endif

  character(len=20) :: checkpoint
  character(len=:), allocatable :: prog
  character(len=:), allocatable :: seednamedyn
  character(len=50) :: seedname
  character(len=9) :: stat, pos
  integer :: nkp, len_seedname
  integer :: stdout, stderr
  logical :: have_gamma
  logical :: wpout_found, dryrun !, werr_found
  real(kind=dp) :: time0, time1, time2
  type(pw90_physical_constants_type) :: physics

  ! this is a dummy that is not used in postw90, DO NOT use
  complex(kind=dp), allocatable :: m_matrix(:, :, :, :)

  complex(kind=dp), allocatable :: HH_R(:, :, :) !  <0n|r|Rm>
  !! $$\langle 0n | H | Rm \rangle$$

  complex(kind=dp), allocatable :: AA_R(:, :, :, :) ! <0n|r|Rm>
  !! $$\langle 0n |  \hat{r} | Rm \rangle$$

  complex(kind=dp), allocatable :: BB_R(:, :, :, :) ! <0|H(r-R)|R>
  !! $$\langle 0n | H(\hat{r}-R) | Rm \rangle$$

  complex(kind=dp), allocatable :: CC_R(:, :, :, :, :) ! <0|r_alpha.H(r-R)_beta|R>
  !! $$\langle 0n | \hat{r}_{\alpha}.H.(\hat{r}- R)_{\beta} | Rm \rangle$$

  ! This is unused because get_FF_R doesn't seem to be called anywhere BGS
  !complex(kind=dp), allocatable :: FF_R(:, :, :, :, :) ! <0|r_alpha.(r-R)_beta|R>
  !! $$\langle 0n | \hat{r}_{\alpha}.(\hat{r}-R)_{\beta} | Rm \rangle$$

  complex(kind=dp), allocatable :: SS_R(:, :, :, :) ! <0n|sigma_x,y,z|Rm>
  !! $$\langle 0n | \sigma_{x,y,z} | Rm \rangle$$

  !spin Hall using Qiao's method
  complex(kind=dp), allocatable :: SR_R(:, :, :, :, :) ! <0n|sigma_x,y,z.(r-R)_alpha|Rm>
  !! $$\langle 0n | \sigma_{x,y,z}.(\hat{r}-R)_{\alpha}  | Rm \rangle$$

  complex(kind=dp), allocatable :: SHR_R(:, :, :, :, :) ! <0n|sigma_x,y,z.H.(r-R)_alpha|Rm>
  !! $$\langle 0n | \sigma_{x,y,z}.H.(\hat{r}-R)_{\alpha}  | Rm \rangle$$

  complex(kind=dp), allocatable :: SH_R(:, :, :, :) ! <0n|sigma_x,y,z.H|Rm>
  !! $$\langle 0n | \sigma_{x,y,z}.H  | Rm \rangle$$

  !spin Hall using Ryoo's method
  complex(kind=dp), allocatable :: SAA_R(:, :, :, :, :) ! <0n|sigma_x,y,z.(r-R)_alpha|Rm>
  !! $$\langle 0n | \sigma_{x,y,z}.(\hat{r}-R)_{\alpha}  | Rm \rangle$$

  complex(kind=dp), allocatable :: SBB_R(:, :, :, :, :) ! <0n|sigma_x,y,z.H.(r-R)_alpha|Rm>
  !! $$\langle 0n | \sigma_{x,y,z}.H.(\hat{r}-R)_{\alpha}  | Rm \rangle$$

  integer, allocatable :: exclude_bands(:)
  integer :: fermi_n
  integer :: num_exclude_bands
  integer :: num_kpts
  integer :: optimisation
  real(kind=dp), allocatable :: fermi_energy_list(:)
  real(kind=dp), allocatable :: kpt_latt(:, :)
  type(atom_data_type) :: atoms
  type(dis_manifold_type) :: dis_window
  type(kmesh_info_type) :: kmesh_info
  type(kmesh_input_type) :: kmesh_data
  type(print_output_type) :: verbose
  type(timer_list_type) :: timer
  type(w90_system_type) :: system
  type(wannier_data_type) :: wann_data
  type(ws_region_type) :: ws_region
  type(settings_type) :: settings
  !! container for input file (.win) data and options set via library interface

  integer :: num_bands
  !! Number of bands

  integer :: num_wann
  !! number of wannier functions

  ! a_matrix and m_matrix_orig can be calculated internally from bloch states
  ! or read in from an ab-initio grid
  ! a_matrix      = projection of trial orbitals on bloch states
  ! m_matrix_orig = overlap of bloch states
  !BGS disentangle, hamiltonian, a wannierise print, and postw90/get_oper
  real(kind=dp), pointer :: eigval(:, :)

  ! u_matrix_opt in postw90 only for generation of v_matrix
  ! u_matrix_opt gives the num_wann dimension optimal subspace from the
  ! original bloch states
  complex(kind=dp), allocatable :: u_matrix_opt(:, :, :)

  ! optimally smooth states.
  ! m_matrix we store here, becuase it is needed for restart of wannierise
  complex(kind=dp), allocatable :: u_matrix(:, :, :)
  real(kind=dp) :: scissors_shift
  integer :: mp_grid(3)
  !! Dimensions of the Monkhorst-Pack grid

  real(kind=dp) :: real_lattice(3, 3)

  type(kpoint_path_type) :: spec_points
  ! end w90_parameters
  ! data from w90_postw90_types
  type(pw90_calculation_type) :: pw90_calcs

  logical :: eig_found ! used to control broadcast of eigval

  complex(kind=dp), allocatable :: v_matrix(:, :, :)

  integer :: my_node_id, num_nodes, ierr

  logical :: effective_model = .false.
  logical :: gamma_only
  logical :: have_disentangled
  logical :: on_root
  logical :: lpp ! logical preprocessing flag (used only by w90)

  real(kind=dp) :: omega_invariant

  type(kpoint_dist_type) :: kpt_dist
  type(pw90_band_deriv_degen_type) :: pw90_ham
  type(pw90_berry_mod_type) :: berry
  type(pw90_boltzwann_type) :: boltz
  type(pw90_dos_mod_type) :: dos_data
  type(pw90_extra_io_type) :: write_data
  type(pw90_geninterp_mod_type) :: geninterp
  type(pw90_gyrotropic_type) :: gyrotropic
  type(pw90_kpath_mod_type) :: kpath
  type(pw90_kslice_mod_type) :: kslice
  type(pw90_oper_read_type) :: postw90_oper
  type(pw90_spin_hall_type) :: spin_hall
  type(pw90_spin_mod_type) :: pw90_spin
  type(w90_comm_type) :: comm
  type(wigner_seitz_type) :: ws_vec
  type(ws_distance_type) :: ws_distance

  ! error condition
  type(w90_error_type), allocatable :: error

  stdout = 6 ! stdout stream
  stderr = 0 ! stderr stream
  prog = "postw90" ! https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91442
  seednamedyn = "wannier"

#ifdef W90_MPI
  comm%comm = MPI_COMM_WORLD
  call mpi_init(ierr)
  if (ierr .ne. 0) then
    call set_error_fatal(error, 'MPI initialisation error', comm)
    if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)
  end if
#endif

  my_node_id = mpirank(comm)
  num_nodes = mpisize(comm)
  on_root = .false.
  if (my_node_id == 0) on_root = .true.

  ! global inits (non-type based) from readwrite files
  optimisation = 3
  num_wann = -99
  eig_found = .false.
  scissors_shift = 0.0_dp
  dis_window%win_min = -1.0_dp
  dis_window%win_max = 0.0_dp
  !effective_model = .false.
  ! end global inits

  if (on_root) then
    time0 = io_time()
    call io_commandline(prog, dryrun, lpp, seednamedyn)
    seedname = seednamedyn(1:len(seednamedyn))
    len_seedname = len(seedname)
  end if

  call comms_bcast(len_seedname, 1, error, comm)
  if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)
  call comms_bcast(seedname, len_seedname, error, comm)
  if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)
  call comms_bcast(dryrun, 1, error, comm)
  if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)

  if (on_root) then
    ! new error handler: only root writes error to logfile
    open (newunit=stderr, file=trim(seedname)//'.werr')

    inquire (file=trim(seedname)//'.wpout', exist=wpout_found)
    if (wpout_found) then
      stat = 'old'
    else
      stat = 'replace'
    end if
    pos = 'append'

    open (newunit=stdout, file=trim(seedname)//'.wpout', status=trim(stat), position=trim(pos))

    call w90_readwrite_write_header(physics%bohr_version_str, physics%constants_version_str1, &
                                    physics%constants_version_str2, num_nodes, stdout)
  end if

  ! Read onto the root node all the input parameters from seendame.win,
  ! as well as the energy eigenvalues on the ab-initio q-mesh from seedname.eig

  ! copy input file to in_data structure
  call w90_readwrite_in_file(settings, seedname, error, comm)
  if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)

  call w90_postw90_readwrite_read(settings, ws_region, system, exclude_bands, verbose, &
                                  kmesh_data, kpt_latt, num_kpts, dis_window, fermi_energy_list, &
                                  atoms, num_bands, num_wann, eigval, mp_grid, real_lattice, &
                                  spec_points, pw90_calcs, postw90_oper, scissors_shift, &
                                  effective_model, pw90_spin, pw90_ham, kpath, kslice, dos_data, &
                                  berry, spin_hall, gyrotropic, geninterp, boltz, eig_found, &
                                  write_data, gamma_only, physics%bohr, optimisation, stdout, &
                                  seedname, error, comm)
  if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)

  call w90_readwrite_clean_infile(settings, stdout, seedname, error, comm)
  if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)

  call w90_readwrite_read_final_alloc((num_bands > num_wann), dis_window, wann_data, num_wann, &
                                      num_bands, num_kpts, error, comm)
  if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)

  if (on_root) then
    call w90_postw90_readwrite_write(verbose, system, fermi_energy_list, atoms, num_wann, &
                                     real_lattice, spec_points, pw90_calcs, postw90_oper, &
                                     scissors_shift, pw90_spin, kpath, kslice, dos_data, berry, &
                                     gyrotropic, geninterp, boltz, write_data, optimisation, stdout)
    time1 = io_time()
    write (stdout, '(1x,a25,f11.3,a)') &
      'Time to read parameters  ', time1 - time0, ' (sec)'

    if (.not. effective_model) then
      ! Check if the q-mesh includes the gamma point

      have_gamma = .false.
      do nkp = 1, num_kpts
        if (all(abs(kpt_latt(:, nkp)) < eps6)) have_gamma = .true.
      end do
      if (.not. have_gamma) write (stdout, '(1x,a)') &
        'Ab-initio does not include Gamma. Interpolation may be incorrect!!!'

      ! Need nntot, wb, and bk to evaluate WF matrix elements of
      ! the position operator in reciprocal space. Also need
      ! nnlist to compute the additional matrix elements entering
      ! the orbital magnetization
    end if
  end if ! on_root

  call kmesh_get(kmesh_data, kmesh_info, verbose, kpt_latt, real_lattice, &
                 num_kpts, gamma_only, seedname, stdout, timer, error, comm)
  if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)

  if (on_root) then
    time2 = io_time()
    write (stdout, '(1x,a25,f11.3,a)') &
      'Time to get kmesh        ', time2 - time1, ' (sec)'

    ! GP, May 10, 2012: for the moment I leave this commented
    ! since we need first to tune that routine so that it doesn't
    ! print the memory information related to wannier90.x.
    ! Note that the code for the memory estimation for the
    ! Boltzwann routine is already there.
    !       call w90_wannier90_readwrite_memory_estimate
  end if

  if (dryrun) then
    if (on_root) then
      write (stdout, *) ' '
      write (stdout, *) '                       ==============================='
      write (stdout, *) '                                   DRYRUN             '
      write (stdout, *) '                       No problems found with win file'
      write (stdout, *) '                       ==============================='
      close (stdout)
      close (stderr, status='delete') ! this should not be unit 0
    end if
#ifdef W90_MPI
    call mpi_finalize(ierr)
#endif
    stop
  end if

  ! We now distribute a subset of the parameters to the other nodes
  ! surely this function name is toooo long? --JJ fixme
!  call pw90common_wanint_w90_wannier90_readwrite_dist(verbose, ws_region, kmesh_info, kpt_latt, &
!                                                      num_kpts, dis_window, system, &
!                                                      fermi_energy_list, num_bands, num_wann, &
!                                                      eigval, mp_grid, real_lattice, pw90_calcs, &
!                                                      scissors_shift, effective_model, pw90_spin, &
!                                                      pw90_ham, kpath, kslice, dos_data, berry, &
!                                                      spin_hall, gyrotropic, geninterp, &
!                                                      boltz, eig_found, error, comm)
!  if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)
!
  fermi_n = 0
  if (allocated(fermi_energy_list)) fermi_n = size(fermi_energy_list)

  if (.not. effective_model) then

    ! Read files seedname.chk (overlap matrices, unitary matrices for
    ! both disentanglement and maximal localization, etc.)

    !if (on_root) then
    allocate (u_matrix_opt(num_bands, num_wann, num_kpts), stat=ierr)
    allocate (u_matrix(num_bands, num_wann, num_kpts), stat=ierr)
    allocate (m_matrix(num_wann, num_wann, kmesh_info%nntot, num_kpts), stat=ierr)
    !else
    !  allocate (m_matrix(0, 0, 0, 0))
    !endif
    !m_matrix = cmplx_0

    !if (on_root) then
    num_exclude_bands = 0
    if (allocated(exclude_bands)) num_exclude_bands = size(exclude_bands)
    call w90_readwrite_read_chkpt(dis_window, exclude_bands, kmesh_info, kpt_latt, wann_data, &
                                  m_matrix, u_matrix, u_matrix_opt, real_lattice, &
                                  omega_invariant, mp_grid, num_bands, num_exclude_bands, &
                                  num_kpts, num_wann, checkpoint, have_disentangled, .true., &
                                  seedname, stdout, error, comm)
    if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)

    ! Distribute the information in the um and chk files to the other nodes
    !
    ! Ivo: For interpolation purposes we do not need u_matrix_opt and
    !      u_matrix separately, only their product v_matrix, and this
    !      is what is distributed now
    !
    call pw90common_wanint_data_dist(num_wann, num_kpts, num_bands, u_matrix_opt, u_matrix, &
                                     dis_window, wann_data, scissors_shift, v_matrix, &
                                     system%num_valence_bands, have_disentangled, error, comm)
    if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)

  end if
  ! Read list of k-points in irreducible BZ and their weights
  !
  ! Should this be done on root node only?
  !
  if (berry%wanint_kpoint_file) then
    call pw90common_wanint_get_kpoint_file(kpt_dist, error, comm)
    if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)
  end if

  ! Setup a number of common variables for all interpolation tasks

  call pw90common_wanint_setup(num_wann, verbose, real_lattice, mp_grid, ws_region, ws_distance, &
                               effective_model, ws_vec, wann_data, stdout, seedname, timer, &
                               error, comm)
  if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)

  if (on_root) then
    time1 = io_time()
    write (stdout, '(/1x,a25,f11.3,a)') &
      'Time to read and process .chk    ', time1 - time2, ' (sec)'
  end if

  ! Now perform one or more of the following tasks

  ! ---------------------------------------------------------------
  ! Density of states calculated using a uniform interpolation mesh
  ! ---------------------------------------------------------------

  if (pw90_calcs%dos .and. index(dos_data%task, 'dos_plot') > 0) then
    call dos_main(berry, dis_window, dos_data, kpt_dist, kpt_latt, postw90_oper, pw90_ham, &
                  pw90_spin, ws_region, system, verbose, wann_data, ws_distance, ws_vec, HH_R, &
                  SS_R, u_matrix, v_matrix, eigval, real_lattice, scissors_shift, &
                  mp_grid, num_bands, num_kpts, num_wann, effective_model, have_disentangled, &
                  pw90_calcs%spin_decomp, seedname, stdout, timer, error, comm)
    if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)
  end if

! find_fermi_level commented for the moment in dos.F90
!  if(dos .and. index(dos_task,'find_fermi_energy')>0) call find_fermi_level

  ! --------------------------------------------------------------------
  ! Bands, Berry curvature, or orbital magnetization plot along a k-path
  ! --------------------------------------------------------------------
  if (pw90_calcs%kpath) then
    call k_path(berry, dis_window, fermi_energy_list, kmesh_info, kpath, kpt_latt, postw90_oper, &
                pw90_ham, pw90_spin, ws_region, spec_points, spin_hall, verbose, wann_data, &
                ws_distance, ws_vec, AA_R, BB_R, CC_R, HH_R, SH_R, SHR_R, SR_R, SS_R, SAA_R, &
                SBB_R, v_matrix, u_matrix, physics%bohr, eigval, real_lattice, scissors_shift, &
                mp_grid, fermi_n, num_wann, num_bands, num_kpts, system%num_valence_bands, &
                effective_model, have_disentangled, seedname, stdout, timer, error, comm)
    if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)
  end if

  ! ---------------------------------------------------------------------------
  ! Bands, Berry curvature, or orbital magnetization plot on a slice in k-space
  ! ---------------------------------------------------------------------------

  if (pw90_calcs%kslice) then
    call k_slice(berry, dis_window, fermi_energy_list, kmesh_info, kpt_latt, kslice, postw90_oper, &
                 pw90_ham, pw90_spin, ws_region, spin_hall, verbose, wann_data, ws_distance, &
                 ws_vec, AA_R, BB_R, CC_R, HH_R, SH_R, SHR_R, SR_R, SS_R, SAA_R, SBB_R, v_matrix, &
                 u_matrix, physics%bohr, eigval, real_lattice, scissors_shift, mp_grid, fermi_n, &
                 num_bands, num_kpts, num_wann, system%num_valence_bands, effective_model, &
                 have_disentangled, seedname, stdout, timer, error, comm)
    if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)
  end if

  ! --------------------
  ! Spin magnetic moment
  ! --------------------

  if (pw90_calcs%spin_moment) then
    call spin_get_moment(dis_window, fermi_energy_list, kpt_dist, kpt_latt, postw90_oper, &
                         pw90_spin, ws_region, verbose, wann_data, ws_distance, ws_vec, HH_R, &
                         SS_R, u_matrix, v_matrix, eigval, real_lattice, scissors_shift, mp_grid, &
                         num_wann, num_bands, num_kpts, system%num_valence_bands, effective_model, &
                         have_disentangled, berry%wanint_kpoint_file, seedname, stdout, timer, &
                         error, comm)
    if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)
  end if

  ! -------------------------------------------------------------------
  ! dc Anomalous Hall conductivity and eventually (if 'mcd' string also
  ! present in addition to 'ahe', e.g., 'ahe+mcd') dichroic optical
  ! conductivity, both calculated on the same (adaptively-refined) mesh
  ! -------------------------------------------------------------------
  !
  ! ---------------------------------------------------------------
  ! Absorptive dichroic optical conductivity & JDOS on uniform mesh
  ! ---------------------------------------------------------------
  !
  ! -----------------------------------------------------------------
  ! Absorptive ordinary optical conductivity & JDOS on a uniform mesh
  ! -----------------------------------------------------------------
  !
  ! -----------------------------------------------------------------
  ! Orbital magnetization
  ! -----------------------------------------------------------------

  if (pw90_calcs%berry) then
    call berry_main(berry, dis_window, fermi_energy_list, kmesh_info, kpt_dist, kpt_latt, &
                    pw90_ham, postw90_oper, pw90_spin, physics, ws_region, spin_hall, wann_data, &
                    ws_distance, ws_vec, verbose, AA_R, BB_R, CC_R, HH_R, SH_R, SHR_R, SR_R, SS_R, &
                    SAA_R, SBB_R, u_matrix, v_matrix, eigval, real_lattice, scissors_shift, &
                    mp_grid, fermi_n, num_wann, num_kpts, num_bands, system%num_valence_bands, &
                    effective_model, have_disentangled, pw90_calcs%spin_decomp, seedname, stdout, &
                    timer, error, comm)
    if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)
  end if
  ! -----------------------------------------------------------------
  ! Boltzmann transport coefficients (BoltzWann module)
  ! -----------------------------------------------------------------

  if (on_root) then
    time1 = io_time()
  end if

  if (pw90_calcs%geninterp) then
    call geninterp_main(dis_window, geninterp, kpt_latt, pw90_ham, ws_region, verbose, wann_data, &
                        ws_distance, ws_vec, HH_R, v_matrix, u_matrix, eigval, real_lattice, &
                        scissors_shift, mp_grid, num_bands, num_kpts, num_wann, &
                        system%num_valence_bands, effective_model, have_disentangled, seedname, &
                        stdout, timer, error, comm)
    if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)
  end if

  if (pw90_calcs%boltzwann) then
    call boltzwann_main(boltz, dis_window, dos_data, kpt_latt, pw90_ham, postw90_oper, pw90_spin, &
                        physics, ws_region, system, wann_data, ws_distance, ws_vec, verbose, HH_R, &
                        SS_R, v_matrix, u_matrix, eigval, real_lattice, scissors_shift, mp_grid, &
                        num_wann, num_bands, num_kpts, effective_model, have_disentangled, &
                        pw90_calcs%spin_decomp, seedname, stdout, timer, error, comm)
    if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)
  end if

  if (pw90_calcs%gyrotropic) then
    call gyrotropic_main(berry, dis_window, fermi_energy_list, gyrotropic, kmesh_info, kpt_latt, &
                         physics, postw90_oper, pw90_ham, ws_region, system, verbose, wann_data, &
                         ws_vec, ws_distance, AA_R, BB_R, CC_R, HH_R, SS_R, u_matrix, v_matrix, &
                         eigval, real_lattice, scissors_shift, mp_grid, num_bands, num_kpts, &
                         num_wann, effective_model, have_disentangled, seedname, stdout, timer, &
                         error, comm)
    if (allocated(error)) call print_error_halt(error, ierr, stdout, stderr, comm)
  end if

  if (on_root .and. pw90_calcs%boltzwann) then
    time2 = io_time()
    write (stdout, '(/1x,a,f11.3,a)') &
      'Time for BoltzWann (Boltzmann transport) ', time2 - time1, ' (sec)'
  end if

  if (on_root) then
    write (stdout, '(1x,a25,f11.3,a)') 'Total Execution Time     ', io_time(), ' (sec)'

    if (verbose%timing_level > 0) call io_print_timings(timer, stdout)

    write (stdout, *)
    write (stdout, '(1x,a)') 'All done: postw90 exiting'

    close (stdout)
    close (stderr, status='delete') ! this should not be unit 0
  end if

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