diff -ru lapack-3.2.2/SRC/xerbla.f lapack-3.2.2-new/SRC/xerbla.f
--- lapack-3.2.2/SRC/xerbla.f	2009-04-16 20:10:16.000000000 +0200
+++ lapack-3.2.2-new/SRC/xerbla.f	2010-10-08 17:53:21.000000000 +0200
@@ -33,7 +33,7 @@
 * =====================================================================
 *
 *     .. Intrinsic Functions ..
-      INTRINSIC          LEN_TRIM
+      EXTERNAL          LEN_TRIM
 *     ..
 *     .. Executable Statements ..
 *
diff -ru lapack-3.3.1/INSTALL/dlamch.f lapack-3.3.1-new/INSTALL/dlamch.f
--- lapack-3.3.1/INSTALL/dlamch.f	2011-04-26 12:41:18.000000000 -0400
+++ lapack-3.3.1-new/INSTALL/dlamch.f	2011-04-26 12:41:22.000000000 -0400
@@ -60,8 +60,8 @@
       EXTERNAL           LSAME
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          DIGITS, EPSILON, HUGE, MAXEXPONENT,
-     $                   MINEXPONENT, RADIX, TINY
+      EXTERNAL           DIGITSDBL, EPSILONDBL, HUGEDBL, MAXEXPONENTDBL,
+     $                   MINEXPONENTDBL, RADIXDBL, TINYDBL
 *     ..
 *     .. Executable Statements ..
 *
@@ -71,16 +71,16 @@
       RND = ONE
 *
       IF( ONE.EQ.RND ) THEN
-         EPS = EPSILON(ZERO) * 0.5
+         EPS = EPSILONDBL(ZERO) * 0.5
       ELSE
-         EPS = EPSILON(ZERO)
+         EPS = EPSILONDBL(ZERO)
       END IF
 *
       IF( LSAME( CMACH, 'E' ) ) THEN
          RMACH = EPS
       ELSE IF( LSAME( CMACH, 'S' ) ) THEN
-         SFMIN = TINY(ZERO)
-         SMALL = ONE / HUGE(ZERO)
+         SFMIN = TINYDBL(ZERO)
+         SMALL = ONE / HUGEDBL(ZERO)
          IF( SMALL.GE.SFMIN ) THEN
 *
 *           Use SMALL plus a bit, to avoid the possibility of rounding
@@ -90,21 +90,21 @@
          END IF
          RMACH = SFMIN
       ELSE IF( LSAME( CMACH, 'B' ) ) THEN
-         RMACH = RADIX(ZERO)
+         RMACH = RADIXDBL(ZERO)
       ELSE IF( LSAME( CMACH, 'P' ) ) THEN
-         RMACH = EPS * RADIX(ZERO)
+         RMACH = EPS * RADIXDBL(ZERO)
       ELSE IF( LSAME( CMACH, 'N' ) ) THEN
-         RMACH = DIGITS(ZERO)
+         RMACH = DIGITSDBL(ZERO)
       ELSE IF( LSAME( CMACH, 'R' ) ) THEN
          RMACH = RND
       ELSE IF( LSAME( CMACH, 'M' ) ) THEN
-         RMACH = MINEXPONENT(ZERO)
+         RMACH = MINEXPONENTDBL(ZERO)
       ELSE IF( LSAME( CMACH, 'U' ) ) THEN
-         RMACH = tiny(zero)
+         RMACH = TINYDBL(zero)
       ELSE IF( LSAME( CMACH, 'L' ) ) THEN
-         RMACH = MAXEXPONENT(ZERO)
+         RMACH = MAXEXPONENTDBL(ZERO)
       ELSE IF( LSAME( CMACH, 'O' ) ) THEN
-         RMACH = HUGE(ZERO)
+         RMACH = HUGEDBL(ZERO)
       ELSE
          RMACH = ZERO
       END IF
diff -ru lapack-3.5.0/SRC/dlarft.f lapack-3.5.0-new/SRC/dlarft.f
index bc1b53b..512a997 100644
--- lapack-3.5.0/SRC/dlarft.f	2009-04-16 20:10:16.000000000 +0200
+++ lapack-3.5.0-new/SRC/dlarft.f	2010-10-08 17:53:21.000000000 +0200
@@ -217,9 +217,9 @@
                IF( LSAME( STOREV, 'C' ) ) THEN
 *                 Skip any trailing zeros.
                   DO LASTV = N, I+1, -1
-                     IF( V( LASTV, I ).NE.ZERO ) EXIT
+                     IF( V( LASTV, I ).NE.ZERO ) GOTO 11
                   END DO
-                  DO J = 1, I-1
+ 11               DO J = 1, I-1
                      T( J, I ) = -TAU( I ) * V( I , J )
                   END DO   
                   J = MIN( LASTV, PREVLASTV )
@@ -232,9 +232,9 @@
                ELSE
 *                 Skip any trailing zeros.
                   DO LASTV = N, I+1, -1
-                     IF( V( I, LASTV ).NE.ZERO ) EXIT
+                     IF( V( I, LASTV ).NE.ZERO ) GOTO 21
                   END DO
-                  DO J = 1, I-1
+ 21               DO J = 1, I-1
                      T( J, I ) = -TAU( I ) * V( J , I )
                   END DO   
                   J = MIN( LASTV, PREVLASTV )
@@ -276,9 +276,9 @@
                   IF( LSAME( STOREV, 'C' ) ) THEN
 *                    Skip any leading zeros.
                      DO LASTV = 1, I-1
-                        IF( V( LASTV, I ).NE.ZERO ) EXIT
+                        IF( V( LASTV, I ).NE.ZERO ) GOTO 31
                      END DO
-                     DO J = I+1, K
+ 31                  DO J = I+1, K
                         T( J, I ) = -TAU( I ) * V( N-K+I , J )
                      END DO   
                      J = MAX( LASTV, PREVLASTV )
@@ -291,9 +291,9 @@
                   ELSE
 *                    Skip any leading zeros.
                      DO LASTV = 1, I-1
-                        IF( V( I, LASTV ).NE.ZERO ) EXIT
+                        IF( V( I, LASTV ).NE.ZERO ) GOTO 41
                      END DO
-                     DO J = I+1, K
+ 41                  DO J = I+1, K
                         T( J, I ) = -TAU( I ) * V( J, N-K+I )
                      END DO   
                      J = MAX( LASTV, PREVLASTV )
