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