[Pw_forum] El-ph coupling Lambda

Axel Kohlmeyer akohlmey at cmm.chem.upenn.edu
Wed Dec 13 16:44:01 CET 2006


On Wed, 13 Dec 2006, Amit Kumar wrote:

AK>  Respected Users,
AK> 
AK>  Following Prof. Axel's recommendation, I  first  went through  the  source
AK> code
AK>  lambda,f90. Then I tried to compile it separately.

amit,

i meant to read through more than just the one file. you should
get a feeling for what is stored/handled where, what kind of 
subroutine is put in what subdirectory, how to import/re-use 
existing functionality, what style of programming to use and 
where and how you'd add new functionality. if you _were_ 
acquainted with the code and how everything within QE is 
structured, you would not stumble over this (trivial) issue.
getting to know a big package code can take a while (not
just a couple of hours). but please read on.

AK>  I'm getting the following error :
AK> 
AK>  ifort lambda.f90 -o lambda.x
AK> /tmp/ifort8HJdyc.o(.text+0x669): In function `MAIN__':
AK> : undefined reference to `errore_'
AK> /tmp/ifort8HJdyc.o(.text+0x741): In function `MAIN__':
AK> : undefined reference to `errore_'
AK> /tmp/ifort8HJdyc.o(.text+0x933): In function `MAIN__':
AK> : undefined reference to `w0gauss_'
AK> /tmp/ifort8HJdyc.o(.text+0xfb9): In function `MAIN__':
AK> : undefined reference to `errore_'
AK> /tmp/ifort8HJdyc.o(.text+0x1040): In function `MAIN__':
AK> : undefined reference to `errore_'
AK> /tmp/ifort8HJdyc.o(.text+0x1067): In function `MAIN__':
AK> : undefined reference to `errore_'
AK> /tmp/ifort8HJdyc.o(.text+0x108a): In function `MAIN__':
AK> : undefined reference to `errore_'
AK> /tmp/ifort8HJdyc.o(.text+0x10aa): In function `MAIN__':
AK> : undefined reference to `errore_'
AK> 
AK> I see lambda.f90 is calling a module errore.
AK> But  I'm not  finding  errore anywhere.

it is defined in flib/error.f90

this subroutine serves as common interface to have
serial and especially parallel runs stop cleanly
(programs within QE, except for small serial utility 
programs must not use STOP to terminate). the simplest
way of finding where a fortran subroutine is defined
in QE is to go to the toplevel directory and, e.g., 
do a:

grep -i errore */*.f* | grep -i subroutine

since the lambda.x code does not (re-)use any other 
existing methods it is probably best, you include
a stripped down serial version of that subroutine.
other than that, you can just add ../flib/flib.a 
to the list of object to link to lambda.x.

 
AK> I'll be highly obliged if someone help me to get lambda.x from lambda.f90and
AK> give some clue for calculating the el-ph coupling in a magnetic metal (say
AK> Nickel).

i strongly suggest, you first work on understand the technical
issues involved, make notes on how the flow of data is
handled currently, try to understand what the individual step 
of the calculation in the code are and _then_ come back and 
discuss what kind of changes you would suggest to implement.

it is always better to first start with a problem that you
know the answer to before you jump the gun and go to more
challenging tasks. 

cheers,
   axel.

AK> 
AK> Looking forward to your kind reply.
AK> 
AK> Regards,
AK> Amit
AK> 
AK> 
AK> 
AK> >>>>>>>>>>if you feel ready to program something, you should check out the
AK> development
AK> cvs.
AK> 
AK> How shall I  check it???
AK> I'm unable to connect.
AK> 
AK> Here is the problem.
AK> 
AK> cvs login
AK> Logging in to :pserver:cvsanon at democritos.sissa.it:2401/home/cvs
AK> CVS password:
AK> cvs [login aborted]: connect to democritos.sissa.it(147.122.10.31):2401
AK> failed: Connection timed out
AK> 

-- 
=======================================================================
Axel Kohlmeyer   akohlmey at cmm.chem.upenn.edu   http://www.cmm.upenn.edu
   Center for Molecular Modeling   --   University of Pennsylvania
Department of Chemistry, 231 S.34th Street, Philadelphia, PA 19104-6323
tel: 1-215-898-1582,  fax: 1-215-573-6233,  office-tel: 1-215-898-5425
=======================================================================
If you make something idiot-proof, the universe creates a better idiot.




More information about the users mailing list