Skip to Content.
Sympa Menu

forum - Re: [abinit-forum] angdeg and rprim issue

forum@abinit.org

Subject: The ABINIT Users Mailing List ( CLOSED )

List archive

Re: [abinit-forum] angdeg and rprim issue


Chronological Thread 
  • From: Xavier Gonze <xavier.gonze@uclouvain.be>
  • To: forum@abinit.org
  • Subject: Re: [abinit-forum] angdeg and rprim issue
  • Date: Mon, 4 Jan 2010 21:29:37 +0100

Dear Igor,

On 04 Jan 2010, at 18:35, ilukacevic@fizika.unios.hr wrote:

Dear prof. Gonze,

When I try to make all, then the previous error doesn't show, but I get


anaddb.F90:231.1:

abs(rprim(1,2))=half when brav/=1
1
Error: Unclassifiable statement at (1)
make[3]: *** [anaddb-anaddb.o] Error 1
make[3]: Leaving directory `/home/igor/test/abinit-5.8.4/src/98_main'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/igor/test/abinit-5.8.4/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/igor/test/abinit-5.8.4'
make: *** [all] Error 2


Could it be that there is smth wrong with this line. I notice that "half"
is nowhere defined above in the anaddb.F90 (unless it is defined in
fortran).


half is defined in src/10_defs/defs_basis.F90 , that is accessed from anaddb.F90 by

use defs_basis

Actually, what happened is that the line that start with
! Renormalize rprim to possibly
has been folded in my mail to less than 80 characters !!
Indeed, the string

abs(rprim(1,2))=half when brav/=1

that induces complaints from the compiler is simply the continuation of the comment line started by "! Renormalize ".

Hoping this is OK for you to get it working ...
Otherwise, do not worry, this will come with ABINITv6.0 , in a few weeks ...

Best regards,
Xavier





Igor

Dear Igor,

On 04 Jan 2010, at 13:11, ilukacevic@fizika.unios.hr wrote:

Dear prof. Gonze,

thank You for Your suggestion. Anaddb works with it.

If You don't mind, could You give me a deeper explanation why this
happens? Is
it a thing with a mrgddb code, which could be changed within it?

anaddb was rather restrictive.
Actually, I just improved it. Could you try whether it works with the
modification below
using your non-modified DDB ?

Best wishes,
X.

----------------------------------------------------------------
Modifications for src/98_main/anaddb.F90

(1) Declare
real(dp) :: factor

(2) Insert around line 282 (between the call to rdddb9 and the call to
mkrdim) :

if(anaddb_dtset%brav/=1)then
! Renormalize rprim to possibly satisfy the constraint
abs(rprim(1,2))=half when brav/=1
if(abs(rprim(1,2))<tol6)then
write(message, '(4a,i6,7a)' )ch10,&
& ' anaddb : ERROR -',ch10,&
& ' The input DDB value of brav is',anaddb_dtset%brav,',',ch10,&
& ' and the one of rprim(1,2) is zero.',ch10,&
& ' These are incompatible',ch10,&
& ' Action : check the value of brav and rprim(1,2) in your DDB.'
call wrtout(std_out,message,'COLL')
call leave_new('COLL')
endif
factor=abs(rprim(1,2))*two
acell(:)=acell(:)*factor
rprim(:,:)=rprim(:,:)/factor
endif


Recompile, and test ...



Thank You!

Igor Lukacevic








Archive powered by MHonArc 2.6.16.

Top of Page