[Wien] mbj of Diamond
Saeid Jalali
sjalali at phys.ui.ac.ir
Mon Oct 25 07:09:27 CEST 2010
Dear Prof. Kroker,
I could print the "tau", "tauw", and "iint":
print*,'tau=',tau,'tauw=',tauw,'iint=',iint
if(tau.eq.tauw .and. ir.gt.900.and.iint.lt.10) then
print*,'int:rho,tauw,grho,g2rho',rho,tau,grho,g2rho,'tauwrong=',tau_falsch
iint=iint+1
endif
and the result is:
tau= 15534.6272805818 tauw= 15534.6272805818 iint= 0
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
lapw0 000000000040ABA9 brj_ 48 brj.f
...
Then, I tried to print "ir" as well:
print*,'ir=',ir
print*,'tau=',tau,'tauw=',tauw,'iint=',iint
if(tau.eq.tauw .and. ir.gt.900.and.iint.lt.10) then
print*,'int:rho,tauw,grho,g2rho',rho,tau,grho,g2rho,'tauwrong=',tau_falsch
iint=iint+1
endif
and the result is:
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
lapw0 000000000040A482 brj_ 36 brj.f
The line 36 starts with an "if" clause:
if(tau.eq.tauw .and. rho.lt.10.d0.and.ir.lt.900.and.isphere.eq.0)
then
print*,'sphere:rho,tauw,grho,g2rho',rho,tau,grho,g2rho,'tauwrong=',tau_falsc
h
isphere=1
endif
Then, I tried to print the "ir" before line 36:
print*,'ir=',ir
if(tau.eq.tauw .and. rho.lt.10.d0.and.ir.lt.900.and.isphere.eq.0)
then
print*,'sphere:rho,tauw,grho,g2rho',rho,tau,grho,g2rho,'tauwrong=',tau_falsc
h
isphere=1
endif
The result is:
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
lapw0 000000000040A4D7 brj_ 35 brj.f
So the error as you nicely expected comes from the "ir".
In the last brj.f subroutine the "ir" was not used:
SUBROUTINE BRJ(RHO,GRHO,G2RHO,TAU,VXBRJ)
!A. D. Becke and M. R. Roussel, Phys. Rev. A 39, 3761 (1989).
!A. D. Becke and E. R. Johnson, J. Chem. Phys. 124, 221101 (2006).
But, in the new brj.f subroutine the "ir" is used:
SUBROUTINE BRJ(RHO,GRHO,G2RHO,TAU,VXBRJ,ir)
!A. D. Becke and M. R. Roussel, Phys. Rev. A 39, 3761 (1989).
!A. D. Becke and E. R. Johnson, J. Chem. Phys. 124, 221101 (2006).
Sincerely yours,
S. Jalali
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
Saeid Jalali Asadabadi,
Department of Physics, Faculty of Science,
University of Isfahan (UI), Hezar Gerib Avenue,
81744 Isfahan, Iran.
Phones:
Dep. of Phys. :+98-0311-793 2435
Office :+98-0311-793 4176
Fax No. :+98-0311-793 2409
E-mail :sjalali at phys.ui.ac.ir
:sjalali at sci.ui.ac.ir
:sjalali at mailaps.org
:saeid.jalali.asadabadi at gmail.com
:s_jalali_a at yahoo.com
Homepage :http://sci.ui.ac.ir/~sjalali
www :http://www.ui.ac.ir
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
>-----Original Message-----
>From: wien-bounces at zeus.theochem.tuwien.ac.at [mailto:wien-
>bounces at zeus.theochem.tuwien.ac.at] On Behalf Of Martin Kroeker
>Sent: Monday, October 25, 2010 1:48 AM
>To: wien at zeus.theochem.tuwien.ac.at
>Subject: *** SPAM *** [5.7] [Wien] mbj of Diamond
>
>This is getting stranger and stranger. So the "print" in itself does not
>cause the crash, nor do any of the values that are to be printed.
>That only leaves the tau, ir and iint of the "if" clause.
>What happens if you try to print those ? tau is probably harmless, as
>it appears in several comparisons before the one on line 46/47, iint has
>little chance to get corrupted as well, but maybe we enter brl() with an
>invalid "ir" parameter. (rho is above 10.d0, so the two preceding "if"
>statements could be decided without checking ir, so this will be the
>first time that ir is used).
>--
>Dr. Martin Kroeker martin at ruby.chemie.uni-freiburg.de
>c/o Prof.Dr. Caroline Roehr
>Institut fuer Anorganische und Analytische Chemie der Universitaet
>Freiburg
>
>_______________________________________________
>Wien mailing list
>Wien at zeus.theochem.tuwien.ac.at
>http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
More information about the Wien
mailing list