io_stopwatch_start Subroutine

public subroutine io_stopwatch_start(tag, timers)

Uses

  • proc~~io_stopwatch_start~~UsesGraph proc~io_stopwatch_start io_stopwatch_start module~w90_types w90_types proc~io_stopwatch_start->module~w90_types module~w90_constants w90_constants module~w90_types->module~w90_constants

Stopwatch to time parts of the code

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: tag

Which stopwatch to act upon

Action 1=start 2=stop

type(timer_list_type), intent(inout) :: timers

Called by

proc~~io_stopwatch_start~~CalledByGraph proc~io_stopwatch_start io_stopwatch_start proc~berry_main berry_main proc~berry_main->proc~io_stopwatch_start 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~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_imf_klist berry_get_imf_klist proc~berry_main->proc~berry_get_imf_klist proc~boltzwann_main boltzwann_main proc~boltzwann_main->proc~io_stopwatch_start proc~calctdfanddos calcTDFandDOS proc~boltzwann_main->proc~calctdfanddos proc~calctdfanddos->proc~io_stopwatch_start proc~calctdfanddos->proc~get_hh_r proc~calctdfanddos->proc~get_ss_r proc~wham_get_eig_deleig wham_get_eig_deleig proc~calctdfanddos->proc~wham_get_eig_deleig proc~check_and_sort_similar_centres check_and_sort_similar_centres proc~check_and_sort_similar_centres->proc~io_stopwatch_start proc~dis_extract dis_extract proc~dis_extract->proc~io_stopwatch_start proc~internal_zmatrix internal_zmatrix proc~dis_extract->proc~internal_zmatrix proc~dis_extract_gamma dis_extract_gamma proc~dis_extract_gamma->proc~io_stopwatch_start proc~internal_zmatrix_gamma internal_zmatrix_gamma proc~dis_extract_gamma->proc~internal_zmatrix_gamma proc~dis_main dis_main proc~dis_main->proc~io_stopwatch_start proc~dis_main->proc~dis_extract 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~dis_proj_froz->proc~io_stopwatch_start proc~dis_project->proc~io_stopwatch_start proc~dis_windows->proc~io_stopwatch_start proc~dis_windows_proj->proc~io_stopwatch_start proc~dos_main dos_main proc~dos_main->proc~io_stopwatch_start proc~dos_main->proc~get_hh_r proc~dos_main->proc~get_ss_r proc~dos_main->proc~wham_get_eig_deleig proc~geninterp_main geninterp_main proc~geninterp_main->proc~io_stopwatch_start proc~geninterp_main->proc~get_hh_r proc~geninterp_main->proc~wham_get_eig_deleig proc~get_aa_r->proc~io_stopwatch_start proc~get_aa_r_effective->proc~io_stopwatch_start proc~get_bb_r->proc~io_stopwatch_start proc~get_cc_r->proc~io_stopwatch_start proc~get_ff_r get_FF_R proc~get_ff_r->proc~io_stopwatch_start proc~get_hh_r->proc~io_stopwatch_start proc~get_saa_r->proc~io_stopwatch_start proc~get_sbb_r->proc~io_stopwatch_start proc~get_sh_r->proc~io_stopwatch_start proc~get_shc_r->proc~io_stopwatch_start proc~get_ss_r->proc~io_stopwatch_start proc~gyrotropic_main gyrotropic_main proc~gyrotropic_main->proc~io_stopwatch_start 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~hamiltonian_get_hr hamiltonian_get_hr proc~hamiltonian_get_hr->proc~io_stopwatch_start proc~hamiltonian_wigner_seitz hamiltonian_wigner_seitz proc~hamiltonian_wigner_seitz->proc~io_stopwatch_start proc~hamiltonian_write_hr hamiltonian_write_hr proc~hamiltonian_write_hr->proc~io_stopwatch_start proc~hamiltonian_write_tb hamiltonian_write_tb proc~hamiltonian_write_tb->proc~io_stopwatch_start proc~internal_check_orthonorm->proc~io_stopwatch_start proc~internal_find_u->proc~io_stopwatch_start proc~internal_find_u_gamma->proc~io_stopwatch_start proc~internal_slim_m->proc~io_stopwatch_start proc~internal_zmatrix->proc~io_stopwatch_start proc~internal_zmatrix_gamma->proc~io_stopwatch_start proc~kmesh_get kmesh_get proc~kmesh_get->proc~io_stopwatch_start 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_supercell_sort kmesh_supercell_sort proc~kmesh_get->proc~kmesh_supercell_sort proc~kmesh_get_bvectors->proc~io_stopwatch_start proc~kmesh_shell_automatic->proc~io_stopwatch_start proc~kmesh_shell_automatic->proc~kmesh_get_bvectors proc~kmesh_shell_fixed->proc~io_stopwatch_start proc~kmesh_shell_fixed->proc~kmesh_get_bvectors proc~kmesh_shell_from_file->proc~io_stopwatch_start proc~kmesh_shell_from_file->proc~kmesh_get_bvectors proc~kmesh_supercell_sort->proc~io_stopwatch_start proc~kmesh_write kmesh_write proc~kmesh_write->proc~io_stopwatch_start proc~master_sort_and_group master_sort_and_group proc~master_sort_and_group->proc~io_stopwatch_start proc~overlap_allocate overlap_allocate proc~overlap_allocate->proc~io_stopwatch_start proc~overlap_project overlap_project proc~overlap_project->proc~io_stopwatch_start proc~overlap_project_gamma overlap_project_gamma proc~overlap_project_gamma->proc~io_stopwatch_start proc~overlap_read overlap_read proc~overlap_read->proc~io_stopwatch_start proc~overlap_rotate overlap_rotate proc~overlap_read->proc~overlap_rotate proc~overlap_rotate->proc~io_stopwatch_start proc~plot_calc_projection plot_calc_projection proc~plot_calc_projection->proc~io_stopwatch_start proc~plot_fermi_surface plot_fermi_surface proc~plot_fermi_surface->proc~io_stopwatch_start proc~plot_interpolate_bands plot_interpolate_bands proc~plot_interpolate_bands->proc~io_stopwatch_start proc~plot_main plot_main proc~plot_main->proc~io_stopwatch_start proc~plot_main->proc~hamiltonian_get_hr proc~plot_main->proc~hamiltonian_write_hr proc~plot_main->proc~hamiltonian_write_tb proc~plot_main->proc~plot_calc_projection proc~plot_main->proc~plot_fermi_surface 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_wannier plot_wannier proc~plot_main->proc~plot_wannier proc~hamiltonian_setup hamiltonian_setup proc~plot_main->proc~hamiltonian_setup proc~plot_svd_omega_i->proc~io_stopwatch_start proc~plot_wannier->proc~io_stopwatch_start proc~setup_m_loc setup_m_loc proc~setup_m_loc->proc~io_stopwatch_start proc~tran_bulk tran_bulk proc~tran_bulk->proc~io_stopwatch_start proc~tran_cut_hr_one_dim tran_cut_hr_one_dim proc~tran_cut_hr_one_dim->proc~io_stopwatch_start proc~tran_find_integral_signatures tran_find_integral_signatures proc~tran_find_integral_signatures->proc~io_stopwatch_start proc~tran_get_ht tran_get_ht proc~tran_get_ht->proc~io_stopwatch_start proc~tran_lcr tran_lcr proc~tran_lcr->proc~io_stopwatch_start proc~tran_lcr_2c2_build_ham tran_lcr_2c2_build_ham proc~tran_lcr_2c2_build_ham->proc~io_stopwatch_start proc~tran_lcr_2c2_build_ham->proc~tran_cut_hr_one_dim proc~tran_reduce_hr tran_reduce_hr proc~tran_lcr_2c2_build_ham->proc~tran_reduce_hr proc~tran_lcr_2c2_sort tran_lcr_2c2_sort proc~tran_lcr_2c2_sort->proc~io_stopwatch_start proc~tran_lcr_2c2_sort->proc~check_and_sort_similar_centres proc~tran_lcr_2c2_sort->proc~master_sort_and_group proc~tran_lcr_2c2_sort->proc~tran_cut_hr_one_dim proc~tran_lcr_2c2_sort->proc~tran_reduce_hr proc~tran_main tran_main proc~tran_main->proc~io_stopwatch_start proc~tran_main->proc~hamiltonian_get_hr proc~tran_main->proc~hamiltonian_write_hr proc~tran_main->proc~tran_bulk proc~tran_main->proc~tran_cut_hr_one_dim proc~tran_main->proc~tran_find_integral_signatures proc~tran_main->proc~tran_get_ht proc~tran_main->proc~tran_lcr proc~tran_main->proc~tran_lcr_2c2_build_ham proc~tran_main->proc~tran_lcr_2c2_sort proc~tran_parity_enforce tran_parity_enforce proc~tran_main->proc~tran_parity_enforce proc~tran_main->proc~tran_reduce_hr proc~tran_main->proc~hamiltonian_setup proc~tran_parity_enforce->proc~io_stopwatch_start proc~tran_reduce_hr->proc~io_stopwatch_start proc~wann_check_unitarity wann_check_unitarity proc~wann_check_unitarity->proc~io_stopwatch_start proc~wann_domega wann_domega proc~wann_domega->proc~io_stopwatch_start proc~wann_main wann_main proc~wann_main->proc~io_stopwatch_start proc~wann_main->proc~wann_check_unitarity 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_main->proc~hamiltonian_setup proc~wann_main_gamma wann_main_gamma proc~wann_main_gamma->proc~io_stopwatch_start 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_omega->proc~io_stopwatch_start proc~wann_omega_gamma->proc~io_stopwatch_start proc~wann_phases->proc~io_stopwatch_start proc~wignerseitz wignerseitz proc~wignerseitz->proc~io_stopwatch_start proc~hamiltonian_setup->proc~hamiltonian_wigner_seitz proc~k_path k_path 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->proc~berry_get_imfgh_klist proc~k_path->proc~berry_get_shc_klist proc~k_path->proc~berry_get_imf_klist proc~k_slice k_slice 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~k_slice->proc~wham_get_eig_deleig proc~k_slice->proc~berry_get_imfgh_klist proc~k_slice->proc~berry_get_shc_klist proc~k_slice->proc~berry_get_imf_klist proc~overlaps overlaps proc~overlaps->proc~overlap_read proc~pw90common_wanint_setup pw90common_wanint_setup proc~pw90common_wanint_setup->proc~wignerseitz proc~spin_get_moment spin_get_moment proc~spin_get_moment->proc~get_hh_r proc~spin_get_moment->proc~get_ss_r proc~w90_create_kmesh w90_create_kmesh proc~w90_create_kmesh->proc~kmesh_get proc~w90_disentangle~2 w90_disentangle proc~w90_disentangle~2->proc~dis_main proc~w90_disentangle~2->proc~setup_m_loc proc~w90_plot w90_plot proc~w90_plot->proc~plot_main proc~w90_project_overlap~2 w90_project_overlap proc~w90_project_overlap~2->proc~overlap_project proc~w90_project_overlap~2->proc~overlap_project_gamma proc~w90_transport w90_transport proc~w90_transport->proc~tran_main proc~w90_wannierise~2 w90_wannierise proc~w90_wannierise~2->proc~wann_main proc~w90_wannierise~2->proc~wann_main_gamma proc~wham_get_eig_deleig->proc~get_hh_r proc~wham_get_eig_uu_hh_aa_sc wham_get_eig_UU_HH_AA_sc proc~wham_get_eig_uu_hh_aa_sc->proc~get_hh_r proc~wham_get_eig_uu_hh_aa_sc_tb_conv wham_get_eig_UU_HH_AA_sc_TB_conv proc~wham_get_eig_uu_hh_aa_sc_tb_conv->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_jjlist wham_get_eig_UU_HH_JJlist proc~wham_get_eig_uu_hh_jjlist->proc~get_hh_r proc~write_kmesh write_kmesh proc~write_kmesh->proc~kmesh_write proc~write_kmesh->proc~w90_create_kmesh program~postw90 postw90 program~postw90->proc~berry_main program~postw90->proc~boltzwann_main program~postw90->proc~dos_main program~postw90->proc~geninterp_main program~postw90->proc~gyrotropic_main program~postw90->proc~kmesh_get program~postw90->proc~k_path program~postw90->proc~k_slice program~postw90->proc~pw90common_wanint_setup program~postw90->proc~spin_get_moment proc~berry_get_imfgh_klist->proc~wham_get_eig_uu_hh_jjlist proc~berry_get_kdotp->proc~wham_get_eig_deleig proc~berry_get_kdotp->proc~wham_get_eig_uu_hh_aa_sc proc~berry_get_kubo_k->proc~wham_get_eig_deleig proc~berry_get_sc_klist->proc~wham_get_eig_deleig proc~berry_get_sc_klist->proc~wham_get_eig_uu_hh_aa_sc proc~berry_get_sc_klist->proc~wham_get_eig_uu_hh_aa_sc_tb_conv proc~berry_get_shc_klist->proc~wham_get_eig_deleig proc~gyrotropic_get_k_list->proc~wham_get_eig_deleig proc~gyrotropic_get_k_list->proc~berry_get_imfgh_klist proc~gyrotropic_get_k_list->proc~berry_get_imf_klist proc~w90_disentangle w90_disentangle proc~w90_disentangle->proc~w90_disentangle~2 proc~w90_get_gkpb~2 w90_get_gkpb proc~w90_get_gkpb~2->proc~w90_create_kmesh proc~w90_get_nnkp~2 w90_get_nnkp proc~w90_get_nnkp~2->proc~w90_create_kmesh proc~w90_get_nn~2 w90_get_nn proc~w90_get_nn~2->proc~w90_create_kmesh proc~w90_project_overlap w90_project_overlap proc~w90_project_overlap->proc~w90_project_overlap~2 proc~w90_wannierise w90_wannierise proc~w90_wannierise->proc~w90_wannierise~2 program~wannier wannier program~wannier->proc~overlaps program~wannier->proc~w90_disentangle~2 program~wannier->proc~w90_plot program~wannier->proc~w90_project_overlap~2 program~wannier->proc~w90_transport program~wannier->proc~w90_wannierise~2 program~wannier->proc~write_kmesh program~wannier->proc~w90_get_nn~2 proc~berry_get_imf_klist->proc~berry_get_imfgh_klist proc~w90_get_gkpb w90_get_gkpb proc~w90_get_gkpb->proc~w90_get_gkpb~2 proc~w90_get_nn w90_get_nn proc~w90_get_nn->proc~w90_get_nn~2 proc~w90_get_nnkp w90_get_nnkp proc~w90_get_nnkp->proc~w90_get_nnkp~2

Source Code

  subroutine io_stopwatch_start(tag, timers)
    !=====================================
    !! Stopwatch to time parts of the code
    !=====================================

    use w90_types, only: timer_list_type, nmax

    implicit none

    ! arguments
    type(timer_list_type), intent(inout) :: timers

    character(len=*), intent(in) :: tag
    !! Which stopwatch to act upon
    !integer, intent(in)  :: mode
    !! Action  1=start 2=stop

    ! local variables
    integer :: i
    real(kind=dp) :: t

    call cpu_time(t)

    do i = 1, timers%nnames
      if (timers%clocks(i)%label .eq. tag) then
        timers%clocks(i)%ptime = t
        timers%clocks(i)%ncalls = timers%clocks(i)%ncalls + 1
        return
      end if
    end do

    if (.not. timers%overflow) then
      if (timers%nnames == nmax) then
        timers%overflow = .true.
      else
        timers%nnames = timers%nnames + 1

        timers%clocks(timers%nnames)%label = tag
        timers%clocks(timers%nnames)%ctime = 0.0_dp
        timers%clocks(timers%nnames)%ptime = t
        timers%clocks(timers%nnames)%ncalls = 1
      end if
    end if

    return

  end subroutine io_stopwatch_start