Description: Ensure thread safety of functions with large local variables
 Some LAPACK functions allocate large local variables. The default behavior of
 gfortran is to allocate such variables statically, instead of using the heap.
 This makes these functions thread unsafe. The fix consists in declaring these
 functions as RECURSIVE, to force heap allocation.
Author: Michael Banck <mbanck@debian.org>
Bug: http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&t=1930
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=693269
Reviewed-by: Sébastien Villemot <sebastien@debian.org>
Last-Update: 2013-05-07
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- ./src/cgbtrf.f.orig	2013-05-06 00:43:02.302380624 +0200
+++ ./src/cgbtrf.f	2013-05-06 00:44:23.910803548 +0200
@@ -18,7 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE CGBTRF( M, N, KL, KU, AB, LDAB, IPIV, INFO )
+*       RECURSIVE SUBROUTINE CGBTRF( M, N, KL, KU, AB, LDAB, IPIV,
+*                                    INFO )
 * 
 *       .. Scalar Arguments ..
 *       INTEGER            INFO, KL, KU, LDAB, M, N
@@ -142,7 +143,7 @@
 *> \endverbatim
 *>
 *  =====================================================================
-      SUBROUTINE CGBTRF( M, N, KL, KU, AB, LDAB, IPIV, INFO )
+      RECURSIVE SUBROUTINE CGBTRF( M, N, KL, KU, AB, LDAB, IPIV, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/cgehrd.f.orig	2013-05-06 00:43:02.330380770 +0200
+++ ./src/cgehrd.f	2013-05-06 00:44:48.006928485 +0200
@@ -18,7 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE CGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE CGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, 
+*                                    LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       INTEGER            IHI, ILO, INFO, LDA, LWORK, N
@@ -166,7 +167,8 @@
 *> \endverbatim
 *>
 *  =====================================================================
-      SUBROUTINE CGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE CGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, 
+     $                             LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/cunmlq.f.orig	2013-05-06 00:43:02.342380830 +0200
+++ ./src/cunmlq.f	2013-05-06 00:45:13.531060884 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE CUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE CUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU,
+*                                    C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -167,8 +167,8 @@
 *> \ingroup complexOTHERcomputational
 *
 *  =====================================================================
-      SUBROUTINE CUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE CUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C,
+     $                             LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/cunmql.f.orig	2013-05-06 00:43:02.346380852 +0200
+++ ./src/cunmql.f	2013-05-06 00:45:38.595190881 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE CUNMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE CUNMQL( SIDE, TRANS, M, N, K, A, LDA, TAU,
+*                                    C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -167,8 +167,8 @@
 *> \ingroup complexOTHERcomputational
 *
 *  =====================================================================
-      SUBROUTINE CUNMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE CUNMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C,
+     $                             LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/cunmqr.f.orig	2013-05-06 00:43:02.354380895 +0200
+++ ./src/cunmqr.f	2013-05-06 00:46:00.215303045 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE CUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE CUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU,
+*                                    C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -167,8 +167,8 @@
 *> \ingroup complexOTHERcomputational
 *
 *  =====================================================================
-      SUBROUTINE CUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE CUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C,
+     $                             LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/cunmrq.f.orig	2013-05-06 00:43:02.358380915 +0200
+++ ./src/cunmrq.f	2013-05-06 00:46:19.227401696 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE CUNMRQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE CUNMRQ( SIDE, TRANS, M, N, K, A, LDA, TAU,
+*                                    C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -167,8 +167,8 @@
 *> \ingroup complexOTHERcomputational
 *
 *  =====================================================================
-      SUBROUTINE CUNMRQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE CUNMRQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C,
+     $                             LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/cunmrz.f.orig	2013-05-06 00:43:02.366380963 +0200
+++ ./src/cunmrz.f	2013-05-06 00:47:00.103613938 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE CUNMRZ( SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE CUNMRZ( SIDE, TRANS, M, N, K, L, A, LDA,
+*                                    TAU, C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -186,8 +186,8 @@
 *> \endverbatim
 *>
 *  =====================================================================
-      SUBROUTINE CUNMRZ( SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE CUNMRZ( SIDE, TRANS, M, N, K, L, A, LDA, TAU,
+     $                             C, LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/dgbtrf.f.orig	2013-05-06 00:43:02.370380976 +0200
+++ ./src/dgbtrf.f	2013-05-06 00:47:24.251739304 +0200
@@ -18,7 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE DGBTRF( M, N, KL, KU, AB, LDAB, IPIV, INFO )
+*       RECURSIVE SUBROUTINE DGBTRF( M, N, KL, KU, AB, LDAB, IPIV,
+*                                    INFO )
 * 
 *       .. Scalar Arguments ..
 *       INTEGER            INFO, KL, KU, LDAB, M, N
@@ -142,7 +143,7 @@
 *> \endverbatim
 *>
 *  =====================================================================
-      SUBROUTINE DGBTRF( M, N, KL, KU, AB, LDAB, IPIV, INFO )
+      RECURSIVE SUBROUTINE DGBTRF( M, N, KL, KU, AB, LDAB, IPIV, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/dgehrd.f.orig	2013-05-06 00:43:02.374380999 +0200
+++ ./src/dgehrd.f	2013-05-06 00:48:03.159940485 +0200
@@ -18,7 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE DGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE DGEHRD( N, ILO, IHI, A, LDA, TAU, WORK,
+*                                    LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       INTEGER            IHI, ILO, INFO, LDA, LWORK, N
@@ -166,7 +167,8 @@
 *> \endverbatim
 *>
 *  =====================================================================
-      SUBROUTINE DGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE DGEHRD( N, ILO, IHI, A, LDA, TAU, WORK,
+     $                             LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/dormlq.f.orig	2013-05-06 00:43:02.378381025 +0200
+++ ./src/dormlq.f	2013-05-06 00:48:46.296162283 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE DORMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE DORMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU,
+*                                    C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -166,8 +166,8 @@
 *> \ingroup doubleOTHERcomputational
 *
 *  =====================================================================
-      SUBROUTINE DORMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE DORMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C,
+     $                             LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/dormql.f.orig	2013-05-06 00:43:02.378381025 +0200
+++ ./src/dormql.f	2013-05-06 00:49:09.000279167 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE DORMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE DORMQL( SIDE, TRANS, M, N, K, A, LDA, TAU,
+*                                    C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -166,8 +166,8 @@
 *> \ingroup doubleOTHERcomputational
 *
 *  =====================================================================
-      SUBROUTINE DORMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE DORMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C,
+     $                             LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/dormqr.f.orig	2013-05-06 00:43:02.386381060 +0200
+++ ./src/dormqr.f	2013-05-06 00:49:28.200378044 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE DORMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE DORMQR( SIDE, TRANS, M, N, K, A, LDA, TAU,
+*                                    C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -166,8 +166,8 @@
 *> \ingroup doubleOTHERcomputational
 *
 *  =====================================================================
-      SUBROUTINE DORMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE DORMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C,
+     $                             LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/dormrq.f.orig	2013-05-06 00:43:02.390381086 +0200
+++ ./src/dormrq.f	2013-05-06 00:49:45.356466338 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE DORMRQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE DORMRQ( SIDE, TRANS, M, N, K, A, LDA, TAU,
+*                                    C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -166,8 +166,8 @@
 *> \ingroup doubleOTHERcomputational
 *
 *  =====================================================================
-      SUBROUTINE DORMRQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE DORMRQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C,
+     $                             LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/dormrz.f.orig	2013-05-06 00:43:02.390381086 +0200
+++ ./src/dormrz.f	2013-05-06 00:50:09.080588466 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE DORMRZ( SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE DORMRZ( SIDE, TRANS, M, N, K, L, A, LDA,
+*                                    TAU, C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -186,8 +186,8 @@
 *> \endverbatim
 *>
 *  =====================================================================
-      SUBROUTINE DORMRZ( SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE DORMRZ( SIDE, TRANS, M, N, K, L, A, LDA, TAU,
+     $                             C, LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/zgbtrf.f.orig	2013-05-06 00:43:02.402381151 +0200
+++ ./src/zgbtrf.f	2013-05-06 00:50:22.912659759 +0200
@@ -18,7 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE ZGBTRF( M, N, KL, KU, AB, LDAB, IPIV, INFO )
+*       RECURSIVE SUBROUTINE ZGBTRF( M, N, KL, KU, AB, LDAB, IPIV, 
+*                                    INFO )
 * 
 *       .. Scalar Arguments ..
 *       INTEGER            INFO, KL, KU, LDAB, M, N
@@ -142,7 +143,7 @@
 *> \endverbatim
 *>
 *  =====================================================================
-      SUBROUTINE ZGBTRF( M, N, KL, KU, AB, LDAB, IPIV, INFO )
+      RECURSIVE SUBROUTINE ZGBTRF( M, N, KL, KU, AB, LDAB, IPIV, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/zgehrd.f.orig	2013-05-06 00:43:02.410381187 +0200
+++ ./src/zgehrd.f	2013-05-06 00:50:47.492786505 +0200
@@ -18,7 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE ZGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE ZGEHRD( N, ILO, IHI, A, LDA, TAU, WORK,
+*                                    LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       INTEGER            IHI, ILO, INFO, LDA, LWORK, N
@@ -166,7 +167,8 @@
 *> \endverbatim
 *>
 *  =====================================================================
-      SUBROUTINE ZGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE ZGEHRD( N, ILO, IHI, A, LDA, TAU, WORK,
+     $                             LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/zhseqr.f.orig	2013-05-06 00:43:02.418381225 +0200
+++ ./src/zhseqr.f	2013-05-06 00:51:10.892907129 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE ZHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE ZHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, W,
+*                                    Z, LDZ, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       INTEGER            IHI, ILO, INFO, LDH, LDZ, LWORK, N
@@ -296,8 +296,8 @@
 *>       of Matrix Analysis, volume 23, pages 948--973, 2002.
 *
 *  =====================================================================
-      SUBROUTINE ZHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE ZHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, W,
+     $                             Z, LDZ, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/zunmlq.f.orig	2013-05-06 00:43:02.434381307 +0200
+++ ./src/zunmlq.f	2013-05-06 00:51:36.541039363 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE ZUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE ZUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU,
+*                                    C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -166,8 +166,8 @@
 *> \ingroup complex16OTHERcomputational
 *
 *  =====================================================================
-      SUBROUTINE ZUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE ZUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C,
+     $                             LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/zunmql.f.orig	2013-05-06 00:43:02.446381363 +0200
+++ ./src/zunmql.f	2013-05-06 00:51:56.885144378 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE ZUNMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE ZUNMQL( SIDE, TRANS, M, N, K, A, LDA, TAU,
+*                                    C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -166,8 +166,8 @@
 *> \ingroup complex16OTHERcomputational
 *
 *  =====================================================================
-      SUBROUTINE ZUNMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE ZUNMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C,
+     $                             LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/zunmqr.f.orig	2013-05-06 00:43:02.454381421 +0200
+++ ./src/zunmqr.f	2013-05-06 00:52:16.285244558 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE ZUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE ZUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU,
+*                                    C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -166,8 +166,8 @@
 *> \ingroup complex16OTHERcomputational
 *
 *  =====================================================================
-      SUBROUTINE ZUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE ZUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C,
+     $                             LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/zunmrq.f.orig	2013-05-06 00:43:02.462381453 +0200
+++ ./src/zunmrq.f	2013-05-06 00:52:49.781417511 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE ZUNMRQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE ZUNMRQ( SIDE, TRANS, M, N, K, A, LDA, TAU,
+*                                    C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -166,8 +166,8 @@
 *> \ingroup complex16OTHERcomputational
 *
 *  =====================================================================
-      SUBROUTINE ZUNMRQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE ZUNMRQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C,
+     $                             LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
--- ./src/zunmrz.f.orig	2013-05-06 00:43:02.470381498 +0200
+++ ./src/zunmrz.f	2013-05-06 00:53:26.621607788 +0200
@@ -18,8 +18,8 @@
 *  Definition:
 *  ===========
 *
-*       SUBROUTINE ZUNMRZ( SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC,
-*                          WORK, LWORK, INFO )
+*       RECURSIVE SUBROUTINE ZUNMRZ( SIDE, TRANS, M, N, K, L, A, LDA,
+*                                    TAU, C, LDC, WORK, LWORK, INFO )
 * 
 *       .. Scalar Arguments ..
 *       CHARACTER          SIDE, TRANS
@@ -186,8 +186,8 @@
 *> \endverbatim
 *>
 *  =====================================================================
-      SUBROUTINE ZUNMRZ( SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC,
-     $                   WORK, LWORK, INFO )
+      RECURSIVE SUBROUTINE ZUNMRZ( SIDE, TRANS, M, N, K, L, A, LDA, TAU,
+     $                             C, LDC, WORK, LWORK, INFO )
 *
 *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
