diff libcruft/arpack/src/dneupd.f @ 12277:3d38b4916cbf release-3-4-x

avoid memory overrun in ARPACK
author David Bateman <dbateman@free.fr>
date Fri, 28 Jan 2011 14:05:34 -0500
parents 9f5d2ef078e8
children
line wrap: on
line diff
--- a/libcruft/arpack/src/dneupd.f	Fri Jan 28 14:05:30 2011 -0500
+++ b/libcruft/arpack/src/dneupd.f	Fri Jan 28 14:05:34 2011 -0500
@@ -353,7 +353,7 @@
      &           mode  , msglvl, outncv, ritzr   ,
      &           ritzi , wri   , wrr   , irr     ,
      &           iri   , ibd   , ishift, numcnv  ,
-     &           np    , jj 
+     &           np    , jj    , nconv2
       logical    reord
       Double precision 
      &           conds  , rnorm, sep  , temp,
@@ -661,16 +661,21 @@
      &                   workl(iuptri), ldh          , 
      &                   workl(invsub), ldq          , 
      &                   workl(iheigr), workl(iheigi), 
-     &                   nconv        , conds        ,
+     &                   nconv2       , conds        ,
      &                   sep          , workl(ihbds) , 
      &                   ncv          , iwork        ,
      &                   1            , ierr)
 c
+            if (nconv2 .lt. nconv) then
+               nconv = nconv2
+            end if
+
             if (ierr .eq. 1) then
                info = 1
                go to 9000
             end if
 c
+
             if (msglvl .gt. 2) then
                 call dvout (logfil, ncv, workl(iheigr), ndigit,
      &           '_neupd: Real part of the eigenvalues of H--reordered')