On Thu, 17 Mar 2005, Lilong Li wrote:

> Thanks for the quick fix. I stumbled into another problem and after quite 
> some time I started to get a clue what's going on.
> 
> I used 16 processors for the scf run and of course for the EFG post 
> processing I don't need 16 processors. So I used a single processor. Now the 
> program complains that it cannot read the wavefunction. If I type the same 
> command again, it would run and after some time it outputs a "davcio error" 
> and aborts.
> 
> It turned out that for the first time running efg.x, the program assumes that 
> the wavefunction is also saved in a single file and it cannot see the file, 
> so it compains and exits. But during the process, it touches a zero length 
> wavefunction file, prefix.wfc. Next time running it, the program happily sees 
> that there is a file called "prefix.wfc", so it continues the calculation, 
> but when it really needs to read the wavefunction (in efg.f90, which calls 
> davcio), of course it cnnot read this zero length file, so davcio raises an 
> error and aborts. 
> 
> I also tried to run 16 processors for efg.x, but it complains from the 
> beginning "error reading inputpp namelist". I guess this is described in the 
> manual, too many processors for simple jobs.
> 
> Any fix to the problem? Thanks in advance.

try adding

wf_collect=.true.

to the &control section. that should write a 
'serial' wavefunction at the end of the scf run.

axel.



> Lilong
> On Thu, Mar 17, 2005 at 11:15:07AM +0100, Paolo Giannozzi wrote:
> > On Wednesday 16 March 2005 20:07, Lilong Li wrote:
> > 
> > >            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.
> > 
> > this is obviously wrong
> > 
> > > Any suggestions to solve the problem?
> > 
> > try to put the problematic piece of code into an if...endif block, like 
> > this:
> > 
> > do l=0,paw_lmaxkb
> >    if (paw_nl(l,nt) > 0) then
> >       allocate (s(paw_nl(l,nt),paw_nl(l,nt)))
> >       allocate (sinv(paw_nl(l,nt),paw_nl(l,nt)))
> >       ...
> >       deallocate(sinv)
> >       deallocate(s)
> >    end if
> > end do
> > 
> > Paolo
> > -- 
> > Paolo Giannozzi             e-mail:  giannozz at nest.sns.it
> > Scuola Normale Superiore    Phone:   +39/050-509876, Fax:-563513 
> > Piazza dei Cavalieri 7      I-56126 Pisa, Italy
> > _______________________________________________
> > Pw_forum mailing list
> > Pw_forum at pwscf.org
> > http://www.democritos.it/mailman/listinfo/pw_forum
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://www.democritos.it/mailman/listinfo/pw_forum
> 
> 

-- 

=======================================================================
Dr. Axel Kohlmeyer   e-mail: axel.kohlmeyer at theochem.ruhr-uni-bochum.de
Lehrstuhl fuer Theoretische Chemie          Phone: ++49 (0)234/32-26673
Ruhr-Universitaet Bochum - NC 03/53         Fax:   ++49 (0)234/32-14045
D-44780 Bochum  http://www.theochem.ruhr-uni-bochum.de/~axel.kohlmeyer/
=======================================================================
If you make something idiot-proof, the universe creates a better idiot.


Reply via email to