LAPACK Archives

[Lapack] Undefined logical variable USEDQD in dlarre and slarre

And vzecca@Domain.Removed writes:
To fix this I propose to initialize explicitely USEDQD to .false. at
routine beginning.

This was fixed in SVN back in March, but there has not been a bug-
fix release yet.  The repository isn't publically available, so I've
appended the patch&log.

Jason

commit ad4da42c04c3c4ee4072dfce1e5f85774c14e890
Author: Julien Langou <langou@Domain.Removed>
Date:   Wed Mar 21 16:39:33 2007 +0000

    Initialize the variable USEDQD in xLARRE before use.
    (Cf. rev430 in the trunk)
    
    * Bug report from Michel Devel from the UTINAM institute, University of
      Franche-Comte, UMR CNRS 6213.
    * Patch from Christof and Julien.
    * See forum discussion 
https://icl.cs.utk.edu/lapack-forum/viewtopic.php?t=350
    
    Michel Devel from the UTINAM institute, University of Franche-Comte, UMR 
CNRS
    6213 reports that the variable USEDQD is used while not initialized in 
xLARRE.
    This bug has been found using the Intel Fortran compiler with runtime 
checks on
    while executing the LAPACK testers.
    
    The patch is to add at the beginning of the code, the initialization:
    
    *     Initialize USEDQD, DQDS should be used for ALLRNG unless someone
    *     explicitly wants bisection.
          USEDQD = (( IRANGE.EQ.ALLRNG ) .AND. (.NOT.FORCEB))
    
    Michel Devel reports that the Intel Fortran compiler is now happy.
    
    As a side note, we remark that this bug was fairly hard to find. USEDQD is a
    LOGICAL.  Since a LOGICAL is either 1 or 0 and since both values are 
correct in
    the xLARRE code, the code was returning correct answers in any cases.
    Moreover, the code was passing most of the compilers test, which means that
    most compilers are not able to check for unaffected LOGICAL.
    
    Julien
    
    
    
    git-svn-id: 
https://icl.cs.utk.edu/svn/lapack-dev/branches/june-release/lapack at 431 
8a072113-8704-0410-8d35-dd094bca7971

diff --git a/SRC/dlarre.f b/SRC/dlarre.f
index a9299ac..2ba9eef 100644
--- a/SRC/dlarre.f
+++ b/SRC/dlarre.f
@@ -303,6 +303,10 @@
 *     Option left in the code for future multisection work.
       FORCEB = .FALSE.
 
+*     Initialize USEDQD, DQDS should be used for ALLRNG unless someone
+*     explicitly wants bisection.
+      USEDQD = (( IRANGE.EQ.ALLRNG ) .AND. (.NOT.FORCEB))
+
       IF( (IRANGE.EQ.ALLRNG) .AND. (.NOT. FORCEB) ) THEN
 *        Set interval [VL,VU] that contains all eigenvalues
          VL = GL
diff --git a/SRC/slarre.f b/SRC/slarre.f
index 91d546d..a7978e2 100644
--- a/SRC/slarre.f
+++ b/SRC/slarre.f
@@ -307,6 +307,10 @@
 *     Option left in the code for future multisection work.
       FORCEB = .FALSE.
 
+*     Initialize USEDQD, DQDS should be used for ALLRNG unless someone
+*     explicitly wants bisection.
+      USEDQD = (( IRANGE.EQ.ALLRNG ) .AND. (.NOT.FORCEB))
+
       IF( (IRANGE.EQ.ALLRNG) .AND. (.NOT. FORCEB) ) THEN
 *        Set interval [VL,VU] that contains all eigenvalues
          VL = GL

<Prev in Thread] Current Thread [Next in Thread>


For additional information you may use the LAPACK/ScaLAPACK Forum.
Or one of the mailing lists, or