io_wallclocktime Function

public function io_wallclocktime()

Uses

  • proc~~io_wallclocktime~~UsesGraph proc~io_wallclocktime io_wallclocktime module~w90_constants w90_constants proc~io_wallclocktime->module~w90_constants

Arguments

None

Return Value real(kind=dp)


Called by

proc~~io_wallclocktime~~CalledByGraph proc~io_wallclocktime io_wallclocktime proc~berry_print_progress berry_print_progress proc~berry_print_progress->proc~io_wallclocktime proc~dis_extract dis_extract proc~dis_extract->proc~io_wallclocktime proc~wann_main wann_main proc~wann_main->proc~io_wallclocktime proc~berry_main berry_main proc~berry_main->proc~berry_print_progress proc~dis_main dis_main proc~dis_main->proc~dis_extract proc~w90_wannierise~2 w90_wannierise proc~w90_wannierise~2->proc~wann_main proc~w90_disentangle~2 w90_disentangle proc~w90_disentangle~2->proc~dis_main proc~w90_wannierise w90_wannierise proc~w90_wannierise->proc~w90_wannierise~2 program~postw90 postw90 program~postw90->proc~berry_main program~wannier wannier program~wannier->proc~w90_wannierise~2 program~wannier->proc~w90_disentangle~2 proc~w90_disentangle w90_disentangle proc~w90_disentangle->proc~w90_disentangle~2

Source Code

  function io_wallclocktime()
    !================================================!
    ! Returns elapsed wall clock time in seconds since its first call  !
    !
    !================================================

    use w90_constants, only: dp, i64

    implicit none

    real(kind=dp) :: io_wallclocktime

    integer(kind=i64) :: c0, c1
    integer(kind=i64) :: rate
    logical :: first = .true.
    save first, rate, c0

    if (first) then

      call system_clock(c0, rate)
      io_wallclocktime = 0.0_dp
      first = .false.
    else
      call system_clock(c1)
      io_wallclocktime = real(c1 - c0)/real(rate)
    end if
    return
  end function io_wallclocktime