There is a bug in ATLAS libraries: when calling ZGEMM, if beta is zero

than C matrix needs not be initialized in input. ATLAS bug add beta*C
even when beta is zero, hence if C contains some NaN they propagate
to entire code causing random "cdiaghg info =/= 0" errors.

This workaround just sets C (which here is betapsi) to complex zero.

LP


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4942 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
paulatto 2008-05-20 13:47:04 +00:00
parent 5ec1b8367e
commit 1321c21473
1 changed files with 2 additions and 0 deletions

View File

@ -127,6 +127,8 @@ CONTAINS
IF ( nkb /= SIZE (betapsi,1) .OR. m > SIZE (betapsi, 2) ) &
CALL errore ('calbec', 'size mismatch', 3)
!
betapsi = 0._dp ! should not be necessary, but there's a bug in ATLAS
!
IF ( m == 1 ) THEN
!
CALL ZGEMV( 'C', npw, nkb, (1.0_DP,0.0_DP), beta, npwx, psi, 1, &