Correct memory access in CSD found with -fbounds-check flag
authorjulie <julielangou@users.noreply.github.com>
Sat, 13 Nov 2010 15:50:45 +0000 (15:50 +0000)
committerjulie <julielangou@users.noreply.github.com>
Sat, 13 Nov 2010 15:50:45 +0000 (15:50 +0000)
SRC/cbbcsd.f
SRC/dbbcsd.f
SRC/sbbcsd.f
SRC/zbbcsd.f
TESTING/EIG/ccsdts.f
TESTING/EIG/dcsdts.f
TESTING/EIG/scsdts.f
TESTING/EIG/zcsdts.f

index 83ea870..d5d2210 100644 (file)
 *     Initial deflation
 *
       IMAX = Q
-      DO WHILE( ( IMAX .GT. 1 ) .AND. ( PHI(IMAX-1) .EQ. 0 ) )
+      DO WHILE( ( IMAX .GT. 1 ) .AND. ( PHI(IMAX-1) .EQ. ZERO ) )
          IMAX = IMAX - 1
       END DO
       IMIN = IMAX - 1
-      DO WHILE( ( IMIN .GT. 1 ) .AND. ( PHI(IMIN-1) .NE. 0 ) )
-         IMIN = IMIN - 1
-      END DO
+      IF  ( IMIN .GT. 1 ) THEN
+         DO WHILE( PHI(IMIN-1) .NE. ZERO )
+            IMIN = IMIN - 1
+            IF  ( IMIN .LE. 1 ) EXIT
+         END DO
+      END IF
 *
 *     Initialize iteration counter
 *
 *
 *        Deflate
 *
-         DO WHILE( (IMAX .GT. 1) .AND. (PHI(IMAX-1) .EQ. ZERO) )
-            IMAX = IMAX - 1
-         END DO
+         IF (IMAX .GT. 1) THEN
+            DO WHILE( PHI(IMAX-1) .EQ. ZERO )
+               IMAX = IMAX - 1
+               IF (IMAX .LE. 1) EXIT
+            END DO
+         END IF
          IF( IMIN .GT. IMAX - 1 )
      $      IMIN = IMAX - 1
-         DO WHILE( (IMIN .GT. 1) .AND. (PHI(IMIN-1) .NE. ZERO) )
-            IMIN = IMIN - 1
-         END DO
+         IF (IMIN .GT. 1) THEN
+            DO WHILE (PHI(IMIN-1) .NE. ZERO)
+                IMIN = IMIN - 1
+                IF (IMIN .LE. 1) EXIT
+            END DO
+         END IF
 *
 *        Repeat main iteration loop
 *
index 6ecd382..f7b1f00 100644 (file)
 *     Initial deflation
 *
       IMAX = Q
-      DO WHILE( ( IMAX .GT. 1 ) .AND. ( PHI(IMAX-1) .EQ. 0 ) )
+      DO WHILE( ( IMAX .GT. 1 ) .AND. ( PHI(IMAX-1) .EQ. ZERO ) )
          IMAX = IMAX - 1
       END DO
       IMIN = IMAX - 1
-      DO WHILE( ( IMIN .GT. 1 ) .AND. ( PHI(IMIN-1) .NE. 0 ) )
-         IMIN = IMIN - 1
-      END DO
+      IF  ( IMIN .GT. 1 ) THEN
+         DO WHILE( PHI(IMIN-1) .NE. ZERO )
+            IMIN = IMIN - 1
+            IF  ( IMIN .LE. 1 ) EXIT
+         END DO
+      END IF
 *
 *     Initialize iteration counter
 *
 *
 *        Deflate
 *
-         DO WHILE( (IMAX .GT. 1) .AND. (PHI(IMAX-1) .EQ. ZERO) )
-            IMAX = IMAX - 1
-         END DO
+         IF (IMAX .GT. 1) THEN
+            DO WHILE( PHI(IMAX-1) .EQ. ZERO )
+               IMAX = IMAX - 1
+               IF (IMAX .LE. 1) EXIT
+            END DO
+         END IF
          IF( IMIN .GT. IMAX - 1 )
      $      IMIN = IMAX - 1
-         DO WHILE( (IMIN .GT. 1) .AND. (PHI(IMIN-1) .NE. ZERO) )
-            IMIN = IMIN - 1
-         END DO
+         IF (IMIN .GT. 1) THEN
+            DO WHILE (PHI(IMIN-1) .NE. ZERO)
+                IMIN = IMIN - 1
+                IF (IMIN .LE. 1) EXIT
+            END DO
+         END IF
 *
 *        Repeat main iteration loop
 *
index 9daaf03..ed5a7f7 100644 (file)
 *     Initial deflation
 *
       IMAX = Q
-      DO WHILE( ( IMAX .GT. 1 ) .AND. ( PHI(IMAX-1) .EQ. 0 ) )
+      DO WHILE( ( IMAX .GT. 1 ) .AND. ( PHI(IMAX-1) .EQ. ZERO ) )
          IMAX = IMAX - 1
       END DO
       IMIN = IMAX - 1
-      DO WHILE( ( IMIN .GT. 1 ) .AND. ( PHI(IMIN-1) .NE. 0 ) )
-         IMIN = IMIN - 1
-      END DO
+      IF  ( IMIN .GT. 1 ) THEN
+         DO WHILE( PHI(IMIN-1) .NE. ZERO )
+            IMIN = IMIN - 1
+            IF  ( IMIN .LE. 1 ) EXIT
+         END DO
+      END IF
 *
 *     Initialize iteration counter
 *
 *
 *        Deflate
 *
-         DO WHILE( (IMAX .GT. 1) .AND. (PHI(IMAX-1) .EQ. ZERO) )
-            IMAX = IMAX - 1
-         END DO
+         IF (IMAX .GT. 1) THEN
+            DO WHILE( PHI(IMAX-1) .EQ. ZERO )
+               IMAX = IMAX - 1
+               IF (IMAX .LE. 1) EXIT
+            END DO
+         END IF
          IF( IMIN .GT. IMAX - 1 )
      $      IMIN = IMAX - 1
-         DO WHILE( (IMIN .GT. 1) .AND. (PHI(IMIN-1) .NE. ZERO) )
-            IMIN = IMIN - 1
-         END DO
+         IF (IMIN .GT. 1) THEN
+            DO WHILE (PHI(IMIN-1) .NE. ZERO)
+                IMIN = IMIN - 1
+                IF (IMIN .LE. 1) EXIT
+            END DO
+         END IF
 *
 *        Repeat main iteration loop
 *
index 19c696c..8d1125c 100644 (file)
 *     Initial deflation
 *
       IMAX = Q
-      DO WHILE( ( IMAX .GT. 1 ) .AND. ( PHI(IMAX-1) .EQ. 0 ) )
+      DO WHILE( ( IMAX .GT. 1 ) .AND. ( PHI(IMAX-1) .EQ. ZERO ) )
          IMAX = IMAX - 1
       END DO
       IMIN = IMAX - 1
-      DO WHILE( ( IMIN .GT. 1 ) .AND. ( PHI(IMIN-1) .NE. 0 ) )
-         IMIN = IMIN - 1
-      END DO
+      IF  ( IMIN .GT. 1 ) THEN
+         DO WHILE( PHI(IMIN-1) .NE. ZERO )
+            IMIN = IMIN - 1
+            IF  ( IMIN .LE. 1 ) EXIT
+         END DO
+      END IF
 *
 *     Initialize iteration counter
 *
 *
 *        Deflate
 *
-         DO WHILE( (IMAX .GT. 1) .AND. (PHI(IMAX-1) .EQ. ZERO) )
-            IMAX = IMAX - 1
-         END DO
+         IF (IMAX .GT. 1) THEN
+            DO WHILE( PHI(IMAX-1) .EQ. ZERO )
+               IMAX = IMAX - 1
+               IF (IMAX .LE. 1) EXIT
+            END DO
+         END IF
          IF( IMIN .GT. IMAX - 1 )
      $      IMIN = IMAX - 1
-         DO WHILE( (IMIN .GT. 1) .AND. (PHI(IMIN-1) .NE. ZERO) )
-            IMIN = IMIN - 1
-         END DO
+         IF (IMIN .GT. 1) THEN
+            DO WHILE (PHI(IMIN-1) .NE. ZERO)
+                IMIN = IMIN - 1
+                IF (IMIN .LE. 1) EXIT
+            END DO
+         END IF
 *
 *        Repeat main iteration loop
 *
index ffbd197..6054f5a 100644 (file)
          IF( THETA(I).LT.REALZERO .OR. THETA(I).GT.PIOVER2 ) THEN
             RESULT(9) = ULPINV
          END IF
-         IF( I.GT.1 .AND. THETA(I).LT.THETA(I-1) ) THEN
-            RESULT(9) = ULPINV
+         IF( I.GT.1) THEN
+            IF ( THETA(I).LT.THETA(I-1) ) THEN
+               RESULT(9) = ULPINV
+            END IF
          END IF
       END DO
 *
index 1f00600..83e5ab9 100644 (file)
          IF( THETA(I).LT.REALZERO .OR. THETA(I).GT.PIOVER2 ) THEN
             RESULT(9) = ULPINV
          END IF
-         IF( I.GT.1 .AND. THETA(I).LT.THETA(I-1) ) THEN
-            RESULT(9) = ULPINV
+         IF( I.GT.1) THEN
+            IF ( THETA(I).LT.THETA(I-1) ) THEN
+               RESULT(9) = ULPINV
+            END IF
          END IF
       END DO
 *
index fa7bf9f..214a0d6 100644 (file)
          IF( THETA(I).LT.REALZERO .OR. THETA(I).GT.PIOVER2 ) THEN
             RESULT(9) = ULPINV
          END IF
-         IF( I.GT.1 .AND. THETA(I).LT.THETA(I-1) ) THEN
-            RESULT(9) = ULPINV
+         IF( I.GT.1) THEN
+            IF ( THETA(I).LT.THETA(I-1) ) THEN
+               RESULT(9) = ULPINV
+            END IF
          END IF
       END DO
 *
index 82f8172..3436d9e 100644 (file)
          IF( THETA(I).LT.REALZERO .OR. THETA(I).GT.PIOVER2 ) THEN
             RESULT(9) = ULPINV
          END IF
-         IF( I.GT.1 .AND. THETA(I).LT.THETA(I-1) ) THEN
-            RESULT(9) = ULPINV
+         IF( I.GT.1) THEN
+            IF ( THETA(I).LT.THETA(I-1) ) THEN
+               RESULT(9) = ULPINV
+            END IF
          END IF
       END DO
 *