quantum-espresso/PW/print_clock_pw.f90

112 lines
3.1 KiB
Fortran

!
! Copyright (C) 2001 PWSCF group
! This file is distributed under the terms of the
! GNU General Public License. See the file `License'
! in the root directory of the present distribution,
! or http://www.gnu.org/copyleft/gpl.txt .
!
!
subroutine print_clock_pw
!
! this routine prints out the clocks at the end of the run
! it tries to construct the calling tree of the program.
USE io_global, ONLY : stdout
USE control_flags, ONLY: isolve, imix
USE force_mod, ONLY: lforce, lstres
implicit none
WRITE( stdout, * )
call print_clock ('PWSCF')
call print_clock ('init_run')
call print_clock ('electrons')
if (lforce) call print_clock ('forces')
if (lstres) call print_clock ('stress')
WRITE( stdout, * )
call print_clock ('electrons')
call print_clock ('c_bands')
call print_clock ('sum_band')
call print_clock ('v_of_rho')
call print_clock ('newd')
#ifdef DEBUG_NEWD
WRITE( stdout,*) "nhm*(nhm+1)/2 = ", nhm*(nhm+1)/2, nhm
WRITE( stdout,*) "nbrx*(nbrx+1)/2*lqx = ", nbrx*(nbrx+1)/2*lqx, nbrx,lqx
call print_clock ('newd:fftvg')
call print_clock ('newd:qvan2')
call print_clock ('newd:int1')
call print_clock ('newd:int2')
#endif
if (imix.ge.0) then
call print_clock ('mix_rho')
else
call print_clock ('mix_pot')
endif
WRITE( stdout, * )
call print_clock ('c_bands')
call print_clock ('init_us_2')
call print_clock ('cegterg')
call print_clock ('ccgdiagg')
call print_clock ('diis')
WRITE( stdout, * )
call print_clock ('sum_band')
call print_clock ('sumbec')
call print_clock ('addusdens')
#ifdef DEBUG_ADDUSDENS
call print_clock ('addus:qvan2')
call print_clock ('addus:strf')
call print_clock ('addus:aux2')
call print_clock ('addus:aux')
#endif
WRITE( stdout, * )
call print_clock ('wfcrot')
call print_clock ('wfcrot1')
call print_clock ('cegterg')
call print_clock ('ccdiagg')
call print_clock ('cdiisg')
if (isolve == 0) then
call print_clock ('h_psi')
call print_clock ('g_psi')
call print_clock ('overlap')
call print_clock ('cdiaghg')
call print_clock ('update')
call print_clock ('last')
WRITE( stdout, * )
call print_clock ('h_psi')
call print_clock ('init')
call print_clock ('firstfft')
call print_clock ('secondfft')
call print_clock ('add_vuspsi')
call print_clock ('s_psi')
else
call print_clock ('h_1psi')
call print_clock ('s_1psi')
call print_clock ('cdiaghg')
WRITE( stdout, * )
call print_clock ('h_1psi')
call print_clock ('init')
call print_clock ('firstfft')
call print_clock ('secondfft')
call print_clock ('add_vuspsi')
endif
WRITE( stdout, * )
WRITE( stdout, * ) ' General routines'
call print_clock ('ccalbec')
call print_clock ('cft3')
call print_clock ('cft3s')
call print_clock ('interpolate')
call print_clock ('davcio')
WRITE( stdout, * )
#ifdef __PARA
WRITE( stdout, * ) ' Parallel routines'
call print_clock ('reduce')
call print_clock ('fft_scatter')
! call print_clock('poolreduce')
#endif
return
end subroutine print_clock_pw