[Pw_forum] lapack error in efg calculation
lilong at unc.edu
Wed Mar 16 20:07:02 CET 2005
Thanks for the tip that flib/invmat.f90 is called by PW/init_paw_1.f90.
Here's what i found:
In init_paw_1.f90, there are the following lines
do nt = 1, ntyp
do nb = 1, paw_nbeta (nt)
paw_nh (nt) = paw_nh (nt) + 2 * aephi(nt,nb)%label%l + 1
paw_lmaxkb = max (paw_lmaxkb, aephi(nt,nb)%label%l)
if (paw_nh (nt) .gt.paw_nhm) paw_nhm = paw_nh (nt)
which set paw_lmaxkb to largest l number for all types of atoms. In my
case it's 3. Then in the same file, There are the following lines,
call step_f(aux,psphi(nt,n1)%psi(1:msh(nt)) * &
call simpson (msh (nt), aux, rab (1, nt), s(ih,jh))
write (stdout, *) 'paw_nl(',l,nt,')',paw_nl(l,nt)
call invmat (paw_nl(l,nt), s, sinv, norm)
It fails when another atom only has the largest l number of 1.
paw_nl(2,nt) would then be zero when it calls invmat, and the N and LDA
will also be zero when invmat calls DGETRF.
Any suggestions to solve the problem?
Paolo Giannozzi wrote:
>On Tuesday 15 March 2005 19:58, Lilong Li wrote:
>>I got such an error when running efg.x
>> On entry to DGETRF parameter number 4 had an illegal value
>DGETRF should be called by flib/invmat.f90, called by PW/init_paw_1.f90.
>Print the integer arguments to DGETRF. Electric field gradient calculation
>is implemented but not thoroghly tested
>>I am ignorant to programming, so digging into the source code is not
>>a good choice
>it is, if you want to know what you are calculating!
>Pw_forum mailing list
>Pw_forum at pwscf.org
More information about the users