Another small improvement of the automatic test. C.S.

git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2783 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
sbraccia 2006-02-08 00:35:34 +00:00
parent 8609fb3e06
commit 5fdc2d4cac
1 changed files with 16 additions and 1 deletions

View File

@ -971,7 +971,8 @@ SUBROUTINE check_para_diag_efficiency()
IMPLICIT NONE IMPLICIT NONE
! !
INTEGER :: dim, dim_pool, i, j, m, m_min INTEGER :: dim, dim_pool, i, j, m, m_min
REAL(DP) :: time_para, time_serial REAL(DP) :: time_para, time_serial, delta_t, delta_t_old
LOGICAL :: lfirst
REAL(DP), ALLOCATABLE :: ar(:,:), vr(:,:) REAL(DP), ALLOCATABLE :: ar(:,:), vr(:,:)
COMPLEX(DP), ALLOCATABLE :: ac(:,:), vc(:,:) COMPLEX(DP), ALLOCATABLE :: ac(:,:), vc(:,:)
REAL(DP), ALLOCATABLE :: e(:) REAL(DP), ALLOCATABLE :: e(:)
@ -998,6 +999,8 @@ SUBROUTINE check_para_diag_efficiency()
! !
END IF END IF
! !
lfirst = .TRUE.
!
DO dim = m_min, nbndx, m DO dim = m_min, nbndx, m
! !
dim_pool = dim / nproc_pool dim_pool = dim / nproc_pool
@ -1092,6 +1095,8 @@ SUBROUTINE check_para_diag_efficiency()
CALL mp_bcast( time_para, ionode_id ) CALL mp_bcast( time_para, ionode_id )
CALL mp_bcast( time_serial, ionode_id ) CALL mp_bcast( time_serial, ionode_id )
! !
delta_t = time_para - time_serial
!
IF ( time_para < time_serial ) THEN IF ( time_para < time_serial ) THEN
! !
use_para_diago = .TRUE. use_para_diago = .TRUE.
@ -1099,8 +1104,18 @@ SUBROUTINE check_para_diag_efficiency()
! !
EXIT EXIT
! !
ELSE IF ( .NOT. lfirst .AND. delta_t > delta_t_old ) THEN
!
! ... the parallel diagonalizer is getting slower and slower
!
EXIT
!
END IF END IF
! !
lfirst = .FALSE.
!
delta_t_old = delta_t
!
END DO END DO
! !
IF ( ionode ) THEN IF ( ionode ) THEN