diff --git a/numpy/linalg/lapack_lite/f2c_c_lapack.c b/numpy/linalg/lapack_lite/f2c_c_lapack.c
index a7d1f836b..9e58eec3c 100644
--- a/numpy/linalg/lapack_lite/f2c_c_lapack.c
+++ b/numpy/linalg/lapack_lite/f2c_c_lapack.c
@@ -30,8 +30,8 @@ them.
 /* Table of constant values */
 
 static integer c__1 = 1;
-static complex c_b56 = {0.f,0.f};
-static complex c_b57 = {1.f,0.f};
+static singlecomplex c_b56 = {0.f,0.f};
+static singlecomplex c_b57 = {1.f,0.f};
 static integer c_n1 = -1;
 static integer c__3 = 3;
 static integer c__2 = 2;
@@ -53,7 +53,7 @@ static logical c_true = TRUE_;
 static real c_b2435 = .5f;
 
 /* Subroutine */ int cgebak_(char *job, char *side, integer *n, integer *ilo,
-	integer *ihi, real *scale, integer *m, complex *v, integer *ldv,
+	integer *ihi, real *scale, integer *m, singlecomplex *v, integer *ldv,
 	integer *info)
 {
     /* System generated locals */
@@ -64,10 +64,10 @@ static real c_b2435 = .5f;
     static real s;
     static integer ii;
     extern logical lsame_(char *, char *);
-    extern /* Subroutine */ int cswap_(integer *, complex *, integer *,
-	    complex *, integer *);
+    extern /* Subroutine */ int cswap_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *);
     static logical leftv;
-    extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer
+    extern /* Subroutine */ int csscal_(integer *, real *, singlecomplex *, integer
 	    *), xerbla_(char *, integer *);
     static logical rightv;
 
@@ -264,7 +264,7 @@ L50:
 
 } /* cgebak_ */
 
-/* Subroutine */ int cgebal_(char *job, integer *n, complex *a, integer *lda,
+/* Subroutine */ int cgebal_(char *job, integer *n, singlecomplex *a, integer *lda,
 	integer *ilo, integer *ihi, real *scale, integer *info)
 {
     /* System generated locals */
@@ -277,12 +277,12 @@ L50:
     static real r__, s, ca, ra;
     static integer ica, ira, iexc;
     extern logical lsame_(char *, char *);
-    extern /* Subroutine */ int cswap_(integer *, complex *, integer *,
-	    complex *, integer *);
+    extern /* Subroutine */ int cswap_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *);
     static real sfmin1, sfmin2, sfmax1, sfmax2;
-    extern integer icamax_(integer *, complex *, integer *);
+    extern integer icamax_(integer *, singlecomplex *, integer *);
     extern doublereal slamch_(char *);
-    extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer
+    extern /* Subroutine */ int csscal_(integer *, real *, singlecomplex *, integer
 	    *), xerbla_(char *, integer *);
     extern logical sisnan_(real *);
     static logical noconv;
@@ -654,21 +654,21 @@ L210:
 
 } /* cgebal_ */
 
-/* Subroutine */ int cgebd2_(integer *m, integer *n, complex *a, integer *lda,
-	 real *d__, real *e, complex *tauq, complex *taup, complex *work,
+/* Subroutine */ int cgebd2_(integer *m, integer *n, singlecomplex *a, integer *lda,
+	 real *d__, real *e, singlecomplex *tauq, singlecomplex *taup, singlecomplex *work,
 	integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__;
-    static complex alpha;
-    extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex *
-	    , integer *, complex *, complex *, integer *, complex *),
-	    clarfg_(integer *, complex *, complex *, integer *, complex *),
-	    clacgv_(integer *, complex *, integer *), xerbla_(char *, integer
+    static singlecomplex alpha;
+    extern /* Subroutine */ int clarf_(char *, integer *, integer *, singlecomplex *
+	    , integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *),
+	    clarfg_(integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *),
+	    clacgv_(integer *, singlecomplex *, integer *), xerbla_(char *, integer
 	    *);
 
 
@@ -972,27 +972,27 @@ L210:
 
 } /* cgebd2_ */
 
-/* Subroutine */ int cgebrd_(integer *m, integer *n, complex *a, integer *lda,
-	 real *d__, real *e, complex *tauq, complex *taup, complex *work,
+/* Subroutine */ int cgebrd_(integer *m, integer *n, singlecomplex *a, integer *lda,
+	 real *d__, real *e, singlecomplex *tauq, singlecomplex *taup, singlecomplex *work,
 	integer *lwork, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5;
     real r__1;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, j, nb, nx;
     static real ws;
     extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *,
-	    integer *, complex *, complex *, integer *, complex *, integer *,
-	    complex *, complex *, integer *);
+	    integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, singlecomplex *, integer *);
     static integer nbmin, iinfo, minmn;
-    extern /* Subroutine */ int cgebd2_(integer *, integer *, complex *,
-	    integer *, real *, real *, complex *, complex *, complex *,
-	    integer *), clabrd_(integer *, integer *, integer *, complex *,
-	    integer *, real *, real *, complex *, complex *, complex *,
-	    integer *, complex *, integer *), xerbla_(char *, integer *);
+    extern /* Subroutine */ int cgebd2_(integer *, integer *, singlecomplex *,
+	    integer *, real *, real *, singlecomplex *, singlecomplex *, singlecomplex *,
+	    integer *), clabrd_(integer *, integer *, integer *, singlecomplex *,
+	    integer *, real *, real *, singlecomplex *, singlecomplex *, singlecomplex *,
+	    integer *, singlecomplex *, integer *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
     static integer ldwrkx, ldwrky, lwkopt;
@@ -1297,59 +1297,59 @@ L210:
 
 } /* cgebrd_ */
 
-/* Subroutine */ int cgeev_(char *jobvl, char *jobvr, integer *n, complex *a,
-	integer *lda, complex *w, complex *vl, integer *ldvl, complex *vr,
-	integer *ldvr, complex *work, integer *lwork, real *rwork, integer *
+/* Subroutine */ int cgeev_(char *jobvl, char *jobvr, integer *n, singlecomplex *a,
+	integer *lda, singlecomplex *w, singlecomplex *vl, integer *ldvl, singlecomplex *vr,
+	integer *ldvr, singlecomplex *work, integer *lwork, real *rwork, integer *
 	info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, vl_dim1, vl_offset, vr_dim1, vr_offset, i__1,
 	    i__2, i__3;
     real r__1, r__2;
-    complex q__1, q__2;
+    singlecomplex q__1, q__2;
 
     /* Local variables */
     static integer i__, k, ihi;
     static real scl;
     static integer ilo;
     static real dum[1], eps;
-    static complex tmp;
+    static singlecomplex tmp;
     static integer ibal;
     static char side[1];
     static real anrm;
     static integer ierr, itau, iwrk, nout;
-    extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
+    extern /* Subroutine */ int cscal_(integer *, singlecomplex *, singlecomplex *,
 	    integer *);
     extern logical lsame_(char *, char *);
-    extern doublereal scnrm2_(integer *, complex *, integer *);
+    extern doublereal scnrm2_(integer *, singlecomplex *, integer *);
     extern /* Subroutine */ int cgebak_(char *, char *, integer *, integer *,
-	    integer *, real *, integer *, complex *, integer *, integer *), cgebal_(char *, integer *, complex *, integer *,
+	    integer *, real *, integer *, singlecomplex *, integer *, integer *), cgebal_(char *, integer *, singlecomplex *, integer *,
 	    integer *, integer *, real *, integer *), slabad_(real *,
 	    real *);
     static logical scalea;
-    extern doublereal clange_(char *, integer *, integer *, complex *,
+    extern doublereal clange_(char *, integer *, integer *, singlecomplex *,
 	    integer *, real *);
     static real cscale;
     extern /* Subroutine */ int cgehrd_(integer *, integer *, integer *,
-	    complex *, integer *, complex *, complex *, integer *, integer *),
+	    singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *, integer *),
 	     clascl_(char *, integer *, integer *, real *, real *, integer *,
-	    integer *, complex *, integer *, integer *);
+	    integer *, singlecomplex *, integer *, integer *);
     extern doublereal slamch_(char *);
-    extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer
-	    *), clacpy_(char *, integer *, integer *, complex *, integer *,
-	    complex *, integer *), xerbla_(char *, integer *);
+    extern /* Subroutine */ int csscal_(integer *, real *, singlecomplex *, integer
+	    *), clacpy_(char *, integer *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
     static logical select[1];
     static real bignum;
     extern integer isamax_(integer *, real *, integer *);
     extern /* Subroutine */ int chseqr_(char *, char *, integer *, integer *,
-	    integer *, complex *, integer *, complex *, complex *, integer *,
-	    complex *, integer *, integer *), ctrevc_(char *,
-	    char *, logical *, integer *, complex *, integer *, complex *,
-	    integer *, complex *, integer *, integer *, integer *, complex *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, integer *), ctrevc_(char *,
+	    char *, logical *, integer *, singlecomplex *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, integer *, integer *, integer *, singlecomplex *,
 	    real *, integer *), cunghr_(integer *, integer *,
-	    integer *, complex *, integer *, complex *, complex *, integer *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *,
 	    integer *);
     static integer minwrk, maxwrk;
     static logical wantvl;
@@ -1816,19 +1816,19 @@ L50:
 
 } /* cgeev_ */
 
-/* Subroutine */ int cgehd2_(integer *n, integer *ilo, integer *ihi, complex *
-	a, integer *lda, complex *tau, complex *work, integer *info)
+/* Subroutine */ int cgehd2_(integer *n, integer *ilo, integer *ihi, singlecomplex *
+	a, integer *lda, singlecomplex *tau, singlecomplex *work, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__;
-    static complex alpha;
-    extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex *
-	    , integer *, complex *, complex *, integer *, complex *),
-	    clarfg_(integer *, complex *, complex *, integer *, complex *),
+    static singlecomplex alpha;
+    extern /* Subroutine */ int clarf_(char *, integer *, integer *, singlecomplex *
+	    , integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *),
+	    clarfg_(integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *),
 	    xerbla_(char *, integer *);
 
 
@@ -1983,34 +1983,34 @@ L50:
 
 } /* cgehd2_ */
 
-/* Subroutine */ int cgehrd_(integer *n, integer *ilo, integer *ihi, complex *
-	a, integer *lda, complex *tau, complex *work, integer *lwork, integer
+/* Subroutine */ int cgehrd_(integer *n, integer *ilo, integer *ihi, singlecomplex *
+	a, integer *lda, singlecomplex *tau, singlecomplex *work, integer *lwork, integer
 	*info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, j;
-    static complex t[4160]	/* was [65][64] */;
+    static singlecomplex t[4160]	/* was [65][64] */;
     static integer ib;
-    static complex ei;
+    static singlecomplex ei;
     static integer nb, nh, nx, iws;
     extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *,
-	    integer *, complex *, complex *, integer *, complex *, integer *,
-	    complex *, complex *, integer *);
+	    integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, singlecomplex *, integer *);
     static integer nbmin, iinfo;
     extern /* Subroutine */ int ctrmm_(char *, char *, char *, char *,
-	    integer *, integer *, complex *, complex *, integer *, complex *,
+	    integer *, integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *,
 	    integer *), caxpy_(integer *,
-	    complex *, complex *, integer *, complex *, integer *), cgehd2_(
-	    integer *, integer *, integer *, complex *, integer *, complex *,
-	    complex *, integer *), clahr2_(integer *, integer *, integer *,
-	    complex *, integer *, complex *, complex *, integer *, complex *,
+	    singlecomplex *, singlecomplex *, integer *, singlecomplex *, integer *), cgehd2_(
+	    integer *, integer *, integer *, singlecomplex *, integer *, singlecomplex *,
+	    singlecomplex *, integer *), clahr2_(integer *, integer *, integer *,
+	    singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *,
 	    integer *), clarfb_(char *, char *, char *, char *, integer *,
-	    integer *, integer *, complex *, integer *, complex *, integer *,
-	    complex *, integer *, complex *, integer *), xerbla_(char *, integer *);
+	    integer *, integer *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, singlecomplex *, integer *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
     static integer ldwork, lwkopt;
@@ -2313,19 +2313,19 @@ L50:
 
 } /* cgehrd_ */
 
-/* Subroutine */ int cgelq2_(integer *m, integer *n, complex *a, integer *lda,
-	 complex *tau, complex *work, integer *info)
+/* Subroutine */ int cgelq2_(integer *m, integer *n, singlecomplex *a, integer *lda,
+	 singlecomplex *tau, singlecomplex *work, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3;
 
     /* Local variables */
     static integer i__, k;
-    static complex alpha;
-    extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex *
-	    , integer *, complex *, complex *, integer *, complex *),
-	    clarfg_(integer *, complex *, complex *, integer *, complex *),
-	    clacgv_(integer *, complex *, integer *), xerbla_(char *, integer
+    static singlecomplex alpha;
+    extern /* Subroutine */ int clarf_(char *, integer *, integer *, singlecomplex *
+	    , integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *),
+	    clarfg_(integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *),
+	    clacgv_(integer *, singlecomplex *, integer *), xerbla_(char *, integer
 	    *);
 
 
@@ -2454,20 +2454,20 @@ L50:
 
 } /* cgelq2_ */
 
-/* Subroutine */ int cgelqf_(integer *m, integer *n, complex *a, integer *lda,
-	 complex *tau, complex *work, integer *lwork, integer *info)
+/* Subroutine */ int cgelqf_(integer *m, integer *n, singlecomplex *a, integer *lda,
+	 singlecomplex *tau, singlecomplex *work, integer *lwork, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4;
 
     /* Local variables */
     static integer i__, k, ib, nb, nx, iws, nbmin, iinfo;
-    extern /* Subroutine */ int cgelq2_(integer *, integer *, complex *,
-	    integer *, complex *, complex *, integer *), clarfb_(char *, char
-	    *, char *, char *, integer *, integer *, integer *, complex *,
-	    integer *, complex *, integer *, complex *, integer *, complex *,
+    extern /* Subroutine */ int cgelq2_(integer *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, singlecomplex *, integer *), clarfb_(char *, char
+	    *, char *, char *, integer *, integer *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *,
 	    integer *), clarft_(char *, char *
-	    , integer *, integer *, complex *, integer *, complex *, complex *
+	    , integer *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *
 	    , integer *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -2685,9 +2685,9 @@ L50:
 
 } /* cgelqf_ */
 
-/* Subroutine */ int cgelsd_(integer *m, integer *n, integer *nrhs, complex *
-	a, integer *lda, complex *b, integer *ldb, real *s, real *rcond,
-	integer *rank, complex *work, integer *lwork, real *rwork, integer *
+/* Subroutine */ int cgelsd_(integer *m, integer *n, integer *nrhs, singlecomplex *
+	a, integer *lda, singlecomplex *b, integer *ldb, real *s, real *rcond,
+	integer *rank, singlecomplex *work, integer *lwork, real *rwork, integer *
 	iwork, integer *info)
 {
     /* System generated locals */
@@ -2699,36 +2699,36 @@ L50:
     static integer itau, nlvl, iascl, ibscl;
     static real sfmin;
     static integer minmn, maxmn, itaup, itauq, mnthr, nwork;
-    extern /* Subroutine */ int cgebrd_(integer *, integer *, complex *,
-	    integer *, real *, real *, complex *, complex *, complex *,
+    extern /* Subroutine */ int cgebrd_(integer *, integer *, singlecomplex *,
+	    integer *, real *, real *, singlecomplex *, singlecomplex *, singlecomplex *,
 	    integer *, integer *), slabad_(real *, real *);
-    extern doublereal clange_(char *, integer *, integer *, complex *,
+    extern doublereal clange_(char *, integer *, integer *, singlecomplex *,
 	    integer *, real *);
-    extern /* Subroutine */ int cgelqf_(integer *, integer *, complex *,
-	    integer *, complex *, complex *, integer *, integer *), clalsd_(
-	    char *, integer *, integer *, integer *, real *, real *, complex *
-	    , integer *, real *, integer *, complex *, real *, integer *,
+    extern /* Subroutine */ int cgelqf_(integer *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, singlecomplex *, integer *, integer *), clalsd_(
+	    char *, integer *, integer *, integer *, real *, real *, singlecomplex *
+	    , integer *, real *, integer *, singlecomplex *, real *, integer *,
 	    integer *), clascl_(char *, integer *, integer *, real *,
-	    real *, integer *, integer *, complex *, integer *, integer *), cgeqrf_(integer *, integer *, complex *, integer *,
-	    complex *, complex *, integer *, integer *);
+	    real *, integer *, integer *, singlecomplex *, integer *, integer *), cgeqrf_(integer *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, singlecomplex *, integer *, integer *);
     extern doublereal slamch_(char *);
-    extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex
-	    *, integer *, complex *, integer *), claset_(char *,
-	    integer *, integer *, complex *, complex *, complex *, integer *), xerbla_(char *, integer *);
+    extern /* Subroutine */ int clacpy_(char *, integer *, integer *, singlecomplex
+	    *, integer *, singlecomplex *, integer *), claset_(char *,
+	    integer *, integer *, singlecomplex *, singlecomplex *, singlecomplex *, integer *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
     static real bignum;
     extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *,
 	    real *, integer *, integer *, real *, integer *, integer *), cunmbr_(char *, char *, char *, integer *, integer *,
-	    integer *, complex *, integer *, complex *, complex *, integer *,
-	    complex *, integer *, integer *), slaset_(
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, integer *), slaset_(
 	    char *, integer *, integer *, real *, real *, real *, integer *), cunmlq_(char *, char *, integer *, integer *, integer *,
-	    complex *, integer *, complex *, complex *, integer *, complex *,
+	    singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *,
 	    integer *, integer *);
     static integer ldwork;
     extern /* Subroutine */ int cunmqr_(char *, char *, integer *, integer *,
-	    integer *, complex *, integer *, complex *, complex *, integer *,
-	    complex *, integer *, integer *);
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, integer *);
     static integer liwork, minwrk, maxwrk;
     static real smlnum;
     static integer lrwork;
@@ -3416,19 +3416,19 @@ L10:
 
 } /* cgelsd_ */
 
-/* Subroutine */ int cgeqr2_(integer *m, integer *n, complex *a, integer *lda,
-	 complex *tau, complex *work, integer *info)
+/* Subroutine */ int cgeqr2_(integer *m, integer *n, singlecomplex *a, integer *lda,
+	 singlecomplex *tau, singlecomplex *work, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, k;
-    static complex alpha;
-    extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex *
-	    , integer *, complex *, complex *, integer *, complex *),
-	    clarfg_(integer *, complex *, complex *, integer *, complex *),
+    static singlecomplex alpha;
+    extern /* Subroutine */ int clarf_(char *, integer *, integer *, singlecomplex *
+	    , integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *),
+	    clarfg_(integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *),
 	    xerbla_(char *, integer *);
 
 
@@ -3554,20 +3554,20 @@ L10:
 
 } /* cgeqr2_ */
 
-/* Subroutine */ int cgeqrf_(integer *m, integer *n, complex *a, integer *lda,
-	 complex *tau, complex *work, integer *lwork, integer *info)
+/* Subroutine */ int cgeqrf_(integer *m, integer *n, singlecomplex *a, integer *lda,
+	 singlecomplex *tau, singlecomplex *work, integer *lwork, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4;
 
     /* Local variables */
     static integer i__, k, ib, nb, nx, iws, nbmin, iinfo;
-    extern /* Subroutine */ int cgeqr2_(integer *, integer *, complex *,
-	    integer *, complex *, complex *, integer *), clarfb_(char *, char
-	    *, char *, char *, integer *, integer *, integer *, complex *,
-	    integer *, complex *, integer *, complex *, integer *, complex *,
+    extern /* Subroutine */ int cgeqr2_(integer *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, singlecomplex *, integer *), clarfb_(char *, char
+	    *, char *, char *, integer *, integer *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *,
 	    integer *), clarft_(char *, char *
-	    , integer *, integer *, complex *, integer *, complex *, complex *
+	    , integer *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *
 	    , integer *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -3786,9 +3786,9 @@ L10:
 
 } /* cgeqrf_ */
 
-/* Subroutine */ int cgesdd_(char *jobz, integer *m, integer *n, complex *a,
-	integer *lda, real *s, complex *u, integer *ldu, complex *vt, integer
-	*ldvt, complex *work, integer *lwork, real *rwork, integer *iwork,
+/* Subroutine */ int cgesdd_(char *jobz, integer *m, integer *n, singlecomplex *a,
+	integer *lda, real *s, singlecomplex *u, integer *ldu, singlecomplex *vt, integer
+	*ldvt, singlecomplex *work, integer *lwork, real *rwork, integer *iwork,
 	integer *info)
 {
     /* System generated locals */
@@ -3802,50 +3802,50 @@ L10:
     static real anrm;
     static integer idum[1], ierr, itau, irvt;
     extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *,
-	    integer *, complex *, complex *, integer *, complex *, integer *,
-	    complex *, complex *, integer *);
+	    integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, singlecomplex *, integer *);
     extern logical lsame_(char *, char *);
     static integer chunk, minmn, wrkbl, itaup, itauq;
     static logical wntqa;
     static integer nwork;
     extern /* Subroutine */ int clacp2_(char *, integer *, integer *, real *,
-	    integer *, complex *, integer *);
+	    integer *, singlecomplex *, integer *);
     static logical wntqn, wntqo, wntqs;
     static integer mnthr1, mnthr2;
-    extern /* Subroutine */ int cgebrd_(integer *, integer *, complex *,
-	    integer *, real *, real *, complex *, complex *, complex *,
+    extern /* Subroutine */ int cgebrd_(integer *, integer *, singlecomplex *,
+	    integer *, real *, real *, singlecomplex *, singlecomplex *, singlecomplex *,
 	    integer *, integer *);
-    extern doublereal clange_(char *, integer *, integer *, complex *,
+    extern doublereal clange_(char *, integer *, integer *, singlecomplex *,
 	    integer *, real *);
-    extern /* Subroutine */ int cgelqf_(integer *, integer *, complex *,
-	    integer *, complex *, complex *, integer *, integer *), clacrm_(
-	    integer *, integer *, complex *, integer *, real *, integer *,
-	    complex *, integer *, real *), clarcm_(integer *, integer *, real
-	    *, integer *, complex *, integer *, complex *, integer *, real *),
+    extern /* Subroutine */ int cgelqf_(integer *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, singlecomplex *, integer *, integer *), clacrm_(
+	    integer *, integer *, singlecomplex *, integer *, real *, integer *,
+	    singlecomplex *, integer *, real *), clarcm_(integer *, integer *, real
+	    *, integer *, singlecomplex *, integer *, singlecomplex *, integer *, real *),
 	     clascl_(char *, integer *, integer *, real *, real *, integer *,
-	    integer *, complex *, integer *, integer *), sbdsdc_(char
+	    integer *, singlecomplex *, integer *, integer *), sbdsdc_(char
 	    *, char *, integer *, real *, real *, real *, integer *, real *,
-	    integer *, real *, integer *, real *, integer *, integer *), cgeqrf_(integer *, integer *, complex *, integer
-	    *, complex *, complex *, integer *, integer *);
+	    integer *, real *, integer *, real *, integer *, integer *), cgeqrf_(integer *, integer *, singlecomplex *, integer
+	    *, singlecomplex *, singlecomplex *, integer *, integer *);
     extern doublereal slamch_(char *);
-    extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex
-	    *, integer *, complex *, integer *), claset_(char *,
-	    integer *, integer *, complex *, complex *, complex *, integer *), xerbla_(char *, integer *);
+    extern /* Subroutine */ int clacpy_(char *, integer *, integer *, singlecomplex
+	    *, integer *, singlecomplex *, integer *), claset_(char *,
+	    integer *, integer *, singlecomplex *, singlecomplex *, singlecomplex *, integer *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
     extern /* Subroutine */ int cungbr_(char *, integer *, integer *, integer
-	    *, complex *, integer *, complex *, complex *, integer *, integer
+	    *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *, integer
 	    *);
     static real bignum;
     extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *,
 	    real *, integer *, integer *, real *, integer *, integer *), cunmbr_(char *, char *, char *, integer *, integer *,
-	    integer *, complex *, integer *, complex *, complex *, integer *,
-	    complex *, integer *, integer *), cunglq_(
-	    integer *, integer *, integer *, complex *, integer *, complex *,
-	    complex *, integer *, integer *);
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, integer *), cunglq_(
+	    integer *, integer *, integer *, singlecomplex *, integer *, singlecomplex *,
+	    singlecomplex *, integer *, integer *);
     static integer ldwrkl;
     extern /* Subroutine */ int cungqr_(integer *, integer *, integer *,
-	    complex *, integer *, complex *, complex *, integer *, integer *);
+	    singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *, integer *);
     static integer ldwrkr, minwrk, ldwrku, maxwrk, ldwkvt;
     static real smlnum;
     static logical wntqas;
@@ -6283,16 +6283,16 @@ L10:
 
 } /* cgesdd_ */
 
-/* Subroutine */ int cgesv_(integer *n, integer *nrhs, complex *a, integer *
-	lda, integer *ipiv, complex *b, integer *ldb, integer *info)
+/* Subroutine */ int cgesv_(integer *n, integer *nrhs, singlecomplex *a, integer *
+	lda, integer *ipiv, singlecomplex *b, integer *ldb, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, b_dim1, b_offset, i__1;
 
     /* Local variables */
-    extern /* Subroutine */ int cgetrf_(integer *, integer *, complex *,
-	    integer *, integer *, integer *), xerbla_(char *, integer *), cgetrs_(char *, integer *, integer *, complex *, integer
-	    *, integer *, complex *, integer *, integer *);
+    extern /* Subroutine */ int cgetrf_(integer *, integer *, singlecomplex *,
+	    integer *, integer *, integer *), xerbla_(char *, integer *), cgetrs_(char *, integer *, integer *, singlecomplex *, integer
+	    *, integer *, singlecomplex *, integer *, integer *);
 
 
 /*
@@ -6401,22 +6401,22 @@ L10:
 
 } /* cgesv_ */
 
-/* Subroutine */ int cgetf2_(integer *m, integer *n, complex *a, integer *lda,
+/* Subroutine */ int cgetf2_(integer *m, integer *n, singlecomplex *a, integer *lda,
 	 integer *ipiv, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, j, jp;
-    extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
-	    integer *), cgeru_(integer *, integer *, complex *, complex *,
-	    integer *, complex *, integer *, complex *, integer *);
+    extern /* Subroutine */ int cscal_(integer *, singlecomplex *, singlecomplex *,
+	    integer *), cgeru_(integer *, integer *, singlecomplex *, singlecomplex *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, integer *);
     static real sfmin;
-    extern /* Subroutine */ int cswap_(integer *, complex *, integer *,
-	    complex *, integer *);
-    extern integer icamax_(integer *, complex *, integer *);
+    extern /* Subroutine */ int cswap_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *);
+    extern integer icamax_(integer *, singlecomplex *, integer *);
     extern doublereal slamch_(char *);
     extern /* Subroutine */ int xerbla_(char *, integer *);
 
@@ -6568,27 +6568,27 @@ L10:
 
 } /* cgetf2_ */
 
-/* Subroutine */ int cgetrf_(integer *m, integer *n, complex *a, integer *lda,
+/* Subroutine */ int cgetrf_(integer *m, integer *n, singlecomplex *a, integer *lda,
 	 integer *ipiv, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, j, jb, nb;
     extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *,
-	    integer *, complex *, complex *, integer *, complex *, integer *,
-	    complex *, complex *, integer *);
+	    integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, singlecomplex *, integer *);
     static integer iinfo;
     extern /* Subroutine */ int ctrsm_(char *, char *, char *, char *,
-	    integer *, integer *, complex *, complex *, integer *, complex *,
+	    integer *, integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *,
 	    integer *), cgetf2_(integer *,
-	    integer *, complex *, integer *, integer *, integer *), xerbla_(
+	    integer *, singlecomplex *, integer *, integer *, integer *), xerbla_(
 	    char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
-    extern /* Subroutine */ int claswp_(integer *, complex *, integer *,
+    extern /* Subroutine */ int claswp_(integer *, singlecomplex *, integer *,
 	    integer *, integer *, integer *, integer *);
 
 
@@ -6759,8 +6759,8 @@ L10:
 
 } /* cgetrf_ */
 
-/* Subroutine */ int cgetrs_(char *trans, integer *n, integer *nrhs, complex *
-	a, integer *lda, integer *ipiv, complex *b, integer *ldb, integer *
+/* Subroutine */ int cgetrs_(char *trans, integer *n, integer *nrhs, singlecomplex *
+	a, integer *lda, integer *ipiv, singlecomplex *b, integer *ldb, integer *
 	info)
 {
     /* System generated locals */
@@ -6769,9 +6769,9 @@ L10:
     /* Local variables */
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int ctrsm_(char *, char *, char *, char *,
-	    integer *, integer *, complex *, complex *, integer *, complex *,
+	    integer *, integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *,
 	    integer *), xerbla_(char *,
-	    integer *), claswp_(integer *, complex *, integer *,
+	    integer *), claswp_(integer *, singlecomplex *, integer *,
 	    integer *, integer *, integer *, integer *);
     static logical notran;
 
@@ -6917,8 +6917,8 @@ L10:
 
 } /* cgetrs_ */
 
-/* Subroutine */ int cheevd_(char *jobz, char *uplo, integer *n, complex *a,
-	integer *lda, real *w, complex *work, integer *lwork, real *rwork,
+/* Subroutine */ int cheevd_(char *jobz, char *uplo, integer *n, singlecomplex *a,
+	integer *lda, real *w, singlecomplex *work, integer *lwork, real *rwork,
 	integer *lrwork, integer *iwork, integer *liwork, integer *info)
 {
     /* System generated locals */
@@ -6941,17 +6941,17 @@ L10:
     static integer llrwk, lropt;
     static logical wantz;
     static integer indwk2, llwrk2;
-    extern doublereal clanhe_(char *, char *, integer *, complex *, integer *,
+    extern doublereal clanhe_(char *, char *, integer *, singlecomplex *, integer *,
 	     real *);
     static integer iscale;
     extern /* Subroutine */ int clascl_(char *, integer *, integer *, real *,
-	    real *, integer *, integer *, complex *, integer *, integer *), cstedc_(char *, integer *, real *, real *, complex *,
-	    integer *, complex *, integer *, real *, integer *, integer *,
+	    real *, integer *, integer *, singlecomplex *, integer *, integer *), cstedc_(char *, integer *, real *, real *, singlecomplex *,
+	    integer *, singlecomplex *, integer *, real *, integer *, integer *,
 	    integer *, integer *);
     extern doublereal slamch_(char *);
-    extern /* Subroutine */ int chetrd_(char *, integer *, complex *, integer
-	    *, real *, real *, complex *, complex *, integer *, integer *), clacpy_(char *, integer *, integer *, complex *, integer
-	    *, complex *, integer *);
+    extern /* Subroutine */ int chetrd_(char *, integer *, singlecomplex *, integer
+	    *, real *, real *, singlecomplex *, singlecomplex *, integer *, integer *), clacpy_(char *, integer *, integer *, singlecomplex *, integer
+	    *, singlecomplex *, integer *);
     static real safmin;
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -6961,8 +6961,8 @@ L10:
     extern /* Subroutine */ int ssterf_(integer *, real *, real *, integer *);
     static integer lrwmin;
     extern /* Subroutine */ int cunmtr_(char *, char *, char *, integer *,
-	    integer *, complex *, integer *, complex *, complex *, integer *,
-	    complex *, integer *, integer *);
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, integer *);
     static integer llwork;
     static real smlnum;
     static logical lquery;
@@ -7260,30 +7260,30 @@ L10:
 
 } /* cheevd_ */
 
-/* Subroutine */ int chetd2_(char *uplo, integer *n, complex *a, integer *lda,
-	 real *d__, real *e, complex *tau, integer *info)
+/* Subroutine */ int chetd2_(char *uplo, integer *n, singlecomplex *a, integer *lda,
+	 real *d__, real *e, singlecomplex *tau, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3;
     real r__1;
-    complex q__1, q__2, q__3, q__4;
+    singlecomplex q__1, q__2, q__3, q__4;
 
     /* Local variables */
     static integer i__;
-    static complex taui;
-    extern /* Subroutine */ int cher2_(char *, integer *, complex *, complex *
-	    , integer *, complex *, integer *, complex *, integer *);
-    static complex alpha;
-    extern /* Complex */ VOID cdotc_(complex *, integer *, complex *, integer
-	    *, complex *, integer *);
+    static singlecomplex taui;
+    extern /* Subroutine */ int cher2_(char *, integer *, singlecomplex *, singlecomplex *
+	    , integer *, singlecomplex *, integer *, singlecomplex *, integer *);
+    static singlecomplex alpha;
+    extern /* Complex */ VOID cdotc_(singlecomplex *, integer *, singlecomplex *, integer
+	    *, singlecomplex *, integer *);
     extern logical lsame_(char *, char *);
-    extern /* Subroutine */ int chemv_(char *, integer *, complex *, complex *
-	    , integer *, complex *, integer *, complex *, complex *, integer *
-	    ), caxpy_(integer *, complex *, complex *, integer *,
-	    complex *, integer *);
+    extern /* Subroutine */ int chemv_(char *, integer *, singlecomplex *, singlecomplex *
+	    , integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *
+	    ), caxpy_(integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *);
     static logical upper;
-    extern /* Subroutine */ int clarfg_(integer *, complex *, complex *,
-	    integer *, complex *), xerbla_(char *, integer *);
+    extern /* Subroutine */ int clarfg_(integer *, singlecomplex *, singlecomplex *,
+	    integer *, singlecomplex *), xerbla_(char *, integer *);
 
 
 /*
@@ -7596,24 +7596,24 @@ L10:
 
 } /* chetd2_ */
 
-/* Subroutine */ int chetrd_(char *uplo, integer *n, complex *a, integer *lda,
-	 real *d__, real *e, complex *tau, complex *work, integer *lwork,
+/* Subroutine */ int chetrd_(char *uplo, integer *n, singlecomplex *a, integer *lda,
+	 real *d__, real *e, singlecomplex *tau, singlecomplex *work, integer *lwork,
 	integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, j, nb, kk, nx, iws;
     extern logical lsame_(char *, char *);
     static integer nbmin, iinfo;
     static logical upper;
-    extern /* Subroutine */ int chetd2_(char *, integer *, complex *, integer
-	    *, real *, real *, complex *, integer *), cher2k_(char *,
-	    char *, integer *, integer *, complex *, complex *, integer *,
-	    complex *, integer *, real *, complex *, integer *), clatrd_(char *, integer *, integer *, complex *, integer
-	    *, real *, complex *, complex *, integer *), xerbla_(char
+    extern /* Subroutine */ int chetd2_(char *, integer *, singlecomplex *, integer
+	    *, real *, real *, singlecomplex *, integer *), cher2k_(char *,
+	    char *, integer *, integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, real *, singlecomplex *, integer *), clatrd_(char *, integer *, integer *, singlecomplex *, integer
+	    *, real *, singlecomplex *, singlecomplex *, integer *), xerbla_(char
 	    *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -7952,33 +7952,33 @@ L10:
 } /* chetrd_ */
 
 /* Subroutine */ int chseqr_(char *job, char *compz, integer *n, integer *ilo,
-	 integer *ihi, complex *h__, integer *ldh, complex *w, complex *z__,
-	integer *ldz, complex *work, integer *lwork, integer *info)
+	 integer *ihi, singlecomplex *h__, integer *ldh, singlecomplex *w, singlecomplex *z__,
+	integer *ldz, singlecomplex *work, integer *lwork, integer *info)
 {
     /* System generated locals */
     address a__1[2];
     integer h_dim1, h_offset, z_dim1, z_offset, i__1, i__2, i__3[2];
     real r__1, r__2, r__3;
-    complex q__1;
+    singlecomplex q__1;
     char ch__1[2];
 
     /* Local variables */
-    static complex hl[2401]	/* was [49][49] */;
+    static singlecomplex hl[2401]	/* was [49][49] */;
     static integer kbot, nmin;
     extern logical lsame_(char *, char *);
-    extern /* Subroutine */ int ccopy_(integer *, complex *, integer *,
-	    complex *, integer *);
+    extern /* Subroutine */ int ccopy_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *);
     static logical initz;
-    static complex workl[49];
+    static singlecomplex workl[49];
     static logical wantt, wantz;
     extern /* Subroutine */ int claqr0_(logical *, logical *, integer *,
-	    integer *, integer *, complex *, integer *, complex *, integer *,
-	    integer *, complex *, integer *, complex *, integer *, integer *),
+	    integer *, integer *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, integer *, integer *),
 	     clahqr_(logical *, logical *, integer *, integer *, integer *,
-	    complex *, integer *, complex *, integer *, integer *, complex *,
+	    singlecomplex *, integer *, singlecomplex *, integer *, integer *, singlecomplex *,
 	    integer *, integer *), clacpy_(char *, integer *, integer *,
-	    complex *, integer *, complex *, integer *), claset_(char
-	    *, integer *, integer *, complex *, complex *, complex *, integer
+	    singlecomplex *, integer *, singlecomplex *, integer *), claset_(char
+	    *, integer *, integer *, singlecomplex *, singlecomplex *, singlecomplex *, integer
 	    *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -8404,23 +8404,23 @@ L10:
     return 0;
 } /* chseqr_ */
 
-/* Subroutine */ int clabrd_(integer *m, integer *n, integer *nb, complex *a,
-	integer *lda, real *d__, real *e, complex *tauq, complex *taup,
-	complex *x, integer *ldx, complex *y, integer *ldy)
+/* Subroutine */ int clabrd_(integer *m, integer *n, integer *nb, singlecomplex *a,
+	integer *lda, real *d__, real *e, singlecomplex *tauq, singlecomplex *taup,
+	singlecomplex *x, integer *ldx, singlecomplex *y, integer *ldy)
 {
     /* System generated locals */
     integer a_dim1, a_offset, x_dim1, x_offset, y_dim1, y_offset, i__1, i__2,
 	    i__3;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__;
-    static complex alpha;
-    extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
-	    integer *), cgemv_(char *, integer *, integer *, complex *,
-	    complex *, integer *, complex *, integer *, complex *, complex *,
-	    integer *), clarfg_(integer *, complex *, complex *,
-	    integer *, complex *), clacgv_(integer *, complex *, integer *);
+    static singlecomplex alpha;
+    extern /* Subroutine */ int cscal_(integer *, singlecomplex *, singlecomplex *,
+	    integer *), cgemv_(char *, integer *, integer *, singlecomplex *,
+	    singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *,
+	    integer *), clarfg_(integer *, singlecomplex *, singlecomplex *,
+	    integer *, singlecomplex *), clacgv_(integer *, singlecomplex *, integer *);
 
 
 /*
@@ -8875,11 +8875,11 @@ L10:
 
 } /* clabrd_ */
 
-/* Subroutine */ int clacgv_(integer *n, complex *x, integer *incx)
+/* Subroutine */ int clacgv_(integer *n, singlecomplex *x, integer *incx)
 {
     /* System generated locals */
     integer i__1, i__2;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, ioff;
@@ -8948,7 +8948,7 @@ L10:
 } /* clacgv_ */
 
 /* Subroutine */ int clacp2_(char *uplo, integer *m, integer *n, real *a,
-	integer *lda, complex *b, integer *ldb)
+	integer *lda, singlecomplex *b, integer *ldb)
 {
     /* System generated locals */
     integer a_dim1, a_offset, b_dim1, b_offset, i__1, i__2, i__3, i__4;
@@ -9059,8 +9059,8 @@ L10:
 
 } /* clacp2_ */
 
-/* Subroutine */ int clacpy_(char *uplo, integer *m, integer *n, complex *a,
-	integer *lda, complex *b, integer *ldb)
+/* Subroutine */ int clacpy_(char *uplo, integer *m, integer *n, singlecomplex *a,
+	integer *lda, singlecomplex *b, integer *ldb)
 {
     /* System generated locals */
     integer a_dim1, a_offset, b_dim1, b_offset, i__1, i__2, i__3, i__4;
@@ -9171,14 +9171,14 @@ L10:
 
 } /* clacpy_ */
 
-/* Subroutine */ int clacrm_(integer *m, integer *n, complex *a, integer *lda,
-	 real *b, integer *ldb, complex *c__, integer *ldc, real *rwork)
+/* Subroutine */ int clacrm_(integer *m, integer *n, singlecomplex *a, integer *lda,
+	 real *b, integer *ldb, singlecomplex *c__, integer *ldc, real *rwork)
 {
     /* System generated locals */
     integer b_dim1, b_offset, a_dim1, a_offset, c_dim1, c_offset, i__1, i__2,
 	    i__3, i__4, i__5;
     real r__1;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, j, l;
@@ -9315,11 +9315,11 @@ L10:
 
 } /* clacrm_ */
 
-/* Complex */ VOID cladiv_(complex * ret_val, complex *x, complex *y)
+/* Complex */ VOID cladiv_(singlecomplex * ret_val, singlecomplex *x, singlecomplex *y)
 {
     /* System generated locals */
     real r__1, r__2, r__3, r__4;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static real zi, zr;
@@ -9367,7 +9367,7 @@ L10:
 } /* cladiv_ */
 
 /* Subroutine */ int claed0_(integer *qsiz, integer *n, real *d__, real *e,
-	complex *q, integer *ldq, complex *qstore, integer *ldqs, real *rwork,
+	singlecomplex *q, integer *ldq, singlecomplex *qstore, integer *ldqs, real *rwork,
 	 integer *iwork, integer *info)
 {
     /* System generated locals */
@@ -9378,20 +9378,20 @@ L10:
     static integer i__, j, k, ll, iq, lgn, msd2, smm1, spm1, spm2;
     static real temp;
     static integer curr, iperm;
-    extern /* Subroutine */ int ccopy_(integer *, complex *, integer *,
-	    complex *, integer *);
+    extern /* Subroutine */ int ccopy_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *);
     static integer indxq, iwrem;
     extern /* Subroutine */ int scopy_(integer *, real *, integer *, real *,
 	    integer *);
     static integer iqptr;
     extern /* Subroutine */ int claed7_(integer *, integer *, integer *,
-	    integer *, integer *, integer *, real *, complex *, integer *,
+	    integer *, integer *, integer *, real *, singlecomplex *, integer *,
 	    real *, integer *, real *, integer *, integer *, integer *,
-	    integer *, integer *, real *, complex *, real *, integer *,
+	    integer *, integer *, real *, singlecomplex *, real *, integer *,
 	    integer *);
     static integer tlvls;
-    extern /* Subroutine */ int clacrm_(integer *, integer *, complex *,
-	    integer *, real *, integer *, complex *, integer *, real *);
+    extern /* Subroutine */ int clacrm_(integer *, integer *, singlecomplex *,
+	    integer *, real *, integer *, singlecomplex *, integer *, real *);
     static integer igivcl;
     extern /* Subroutine */ int xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
@@ -9714,10 +9714,10 @@ L80:
 } /* claed0_ */
 
 /* Subroutine */ int claed7_(integer *n, integer *cutpnt, integer *qsiz,
-	integer *tlvls, integer *curlvl, integer *curpbm, real *d__, complex *
+	integer *tlvls, integer *curlvl, integer *curpbm, real *d__, singlecomplex *
 	q, integer *ldq, real *rho, integer *indxq, real *qstore, integer *
 	qptr, integer *prmptr, integer *perm, integer *givptr, integer *
-	givcol, real *givnum, complex *work, real *rwork, integer *iwork,
+	givcol, real *givnum, singlecomplex *work, real *rwork, integer *iwork,
 	integer *info)
 {
     /* System generated locals */
@@ -9726,8 +9726,8 @@ L80:
     /* Local variables */
     static integer i__, k, n1, n2, iq, iw, iz, ptr, indx, curr, indxc, indxp;
     extern /* Subroutine */ int claed8_(integer *, integer *, integer *,
-	    complex *, integer *, real *, real *, integer *, real *, real *,
-	    complex *, integer *, real *, integer *, integer *, integer *,
+	    singlecomplex *, integer *, real *, real *, integer *, real *, real *,
+	    singlecomplex *, integer *, real *, integer *, integer *, integer *,
 	    integer *, integer *, integer *, real *, integer *), slaed9_(
 	    integer *, integer *, integer *, integer *, real *, real *,
 	    integer *, real *, real *, real *, real *, integer *, integer *),
@@ -9735,8 +9735,8 @@ L80:
 	    integer *, integer *, integer *, real *, real *, integer *, real *
 	    , real *, integer *);
     static integer idlmda;
-    extern /* Subroutine */ int clacrm_(integer *, integer *, complex *,
-	    integer *, real *, integer *, complex *, integer *, real *),
+    extern /* Subroutine */ int clacrm_(integer *, integer *, singlecomplex *,
+	    integer *, real *, integer *, singlecomplex *, integer *, real *),
 	    xerbla_(char *, integer *), slamrg_(integer *, integer *,
 	    real *, integer *, integer *, integer *);
     static integer coltyp;
@@ -10015,9 +10015,9 @@ L80:
 
 } /* claed7_ */
 
-/* Subroutine */ int claed8_(integer *k, integer *n, integer *qsiz, complex *
+/* Subroutine */ int claed8_(integer *k, integer *n, integer *qsiz, singlecomplex *
 	q, integer *ldq, real *d__, real *rho, integer *cutpnt, real *z__,
-	real *dlamda, complex *q2, integer *ldq2, real *w, integer *indxp,
+	real *dlamda, singlecomplex *q2, integer *ldq2, real *w, integer *indxp,
 	integer *indx, integer *indxq, integer *perm, integer *givptr,
 	integer *givcol, real *givnum, integer *info)
 {
@@ -10033,13 +10033,13 @@ L80:
     static real eps, tau, tol;
     static integer jlam, imax, jmax;
     extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *),
-	    ccopy_(integer *, complex *, integer *, complex *, integer *),
-	    csrot_(integer *, complex *, integer *, complex *, integer *,
+	    ccopy_(integer *, singlecomplex *, integer *, singlecomplex *, integer *),
+	    csrot_(integer *, singlecomplex *, integer *, singlecomplex *, integer *,
 	    real *, real *), scopy_(integer *, real *, integer *, real *,
 	    integer *);
     extern doublereal slapy2_(real *, real *), slamch_(char *);
-    extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex
-	    *, integer *, complex *, integer *), xerbla_(char *,
+    extern /* Subroutine */ int clacpy_(char *, integer *, integer *, singlecomplex
+	    *, integer *, singlecomplex *, integer *), xerbla_(char *,
 	    integer *);
     extern integer isamax_(integer *, real *, integer *);
     extern /* Subroutine */ int slamrg_(integer *, integer *, real *, integer
@@ -10436,43 +10436,43 @@ L100:
 } /* claed8_ */
 
 /* Subroutine */ int clahqr_(logical *wantt, logical *wantz, integer *n,
-	integer *ilo, integer *ihi, complex *h__, integer *ldh, complex *w,
-	integer *iloz, integer *ihiz, complex *z__, integer *ldz, integer *
+	integer *ilo, integer *ihi, singlecomplex *h__, integer *ldh, singlecomplex *w,
+	integer *iloz, integer *ihiz, singlecomplex *z__, integer *ldz, integer *
 	info)
 {
     /* System generated locals */
     integer h_dim1, h_offset, z_dim1, z_offset, i__1, i__2, i__3, i__4;
     real r__1, r__2, r__3, r__4, r__5, r__6;
-    complex q__1, q__2, q__3, q__4, q__5, q__6, q__7;
+    singlecomplex q__1, q__2, q__3, q__4, q__5, q__6, q__7;
 
     /* Local variables */
     static integer i__, j, k, l, m;
     static real s;
-    static complex t, u, v[2], x, y;
+    static singlecomplex t, u, v[2], x, y;
     static integer i1, i2;
-    static complex t1;
+    static singlecomplex t1;
     static real t2;
-    static complex v2;
+    static singlecomplex v2;
     static real aa, ab, ba, bb, h10;
-    static complex h11;
+    static singlecomplex h11;
     static real h21;
-    static complex h22, sc;
+    static singlecomplex h22, sc;
     static integer nh, nz;
     static real sx;
     static integer jhi;
-    static complex h11s;
+    static singlecomplex h11s;
     static integer jlo, its;
     static real ulp;
-    static complex sum;
+    static singlecomplex sum;
     static real tst;
-    static complex temp;
-    extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
-	    integer *), ccopy_(integer *, complex *, integer *, complex *,
+    static singlecomplex temp;
+    extern /* Subroutine */ int cscal_(integer *, singlecomplex *, singlecomplex *,
+	    integer *), ccopy_(integer *, singlecomplex *, integer *, singlecomplex *,
 	    integer *);
     static real rtemp;
     extern /* Subroutine */ int slabad_(real *, real *), clarfg_(integer *,
-	    complex *, complex *, integer *, complex *);
-    extern /* Complex */ VOID cladiv_(complex *, complex *, complex *);
+	    singlecomplex *, singlecomplex *, integer *, singlecomplex *);
+    extern /* Complex */ VOID cladiv_(singlecomplex *, singlecomplex *, singlecomplex *);
     extern doublereal slamch_(char *);
     static real safmin, safmax, smlnum;
 
@@ -11166,33 +11166,33 @@ L150:
 
 } /* clahqr_ */
 
-/* Subroutine */ int clahr2_(integer *n, integer *k, integer *nb, complex *a,
-	integer *lda, complex *tau, complex *t, integer *ldt, complex *y,
+/* Subroutine */ int clahr2_(integer *n, integer *k, integer *nb, singlecomplex *a,
+	integer *lda, singlecomplex *tau, singlecomplex *t, integer *ldt, singlecomplex *y,
 	integer *ldy)
 {
     /* System generated locals */
     integer a_dim1, a_offset, t_dim1, t_offset, y_dim1, y_offset, i__1, i__2,
 	    i__3;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__;
-    static complex ei;
-    extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
+    static singlecomplex ei;
+    extern /* Subroutine */ int cscal_(integer *, singlecomplex *, singlecomplex *,
 	    integer *), cgemm_(char *, char *, integer *, integer *, integer *
-	    , complex *, complex *, integer *, complex *, integer *, complex *
-	    , complex *, integer *), cgemv_(char *, integer *,
-	     integer *, complex *, complex *, integer *, complex *, integer *,
-	     complex *, complex *, integer *), ccopy_(integer *,
-	    complex *, integer *, complex *, integer *), ctrmm_(char *, char *
-	    , char *, char *, integer *, integer *, complex *, complex *,
-	    integer *, complex *, integer *),
-	    caxpy_(integer *, complex *, complex *, integer *, complex *,
-	    integer *), ctrmv_(char *, char *, char *, integer *, complex *,
-	    integer *, complex *, integer *), clarfg_(
-	    integer *, complex *, complex *, integer *, complex *), clacgv_(
-	    integer *, complex *, integer *), clacpy_(char *, integer *,
-	    integer *, complex *, integer *, complex *, integer *);
+	    , singlecomplex *, singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *
+	    , singlecomplex *, integer *), cgemv_(char *, integer *,
+	     integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *, integer *,
+	     singlecomplex *, singlecomplex *, integer *), ccopy_(integer *,
+	    singlecomplex *, integer *, singlecomplex *, integer *), ctrmm_(char *, char *
+	    , char *, char *, integer *, integer *, singlecomplex *, singlecomplex *,
+	    integer *, singlecomplex *, integer *),
+	    caxpy_(integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *,
+	    integer *), ctrmv_(char *, char *, char *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, integer *), clarfg_(
+	    integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *), clacgv_(
+	    integer *, singlecomplex *, integer *), clacpy_(char *, integer *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, integer *);
 
 
 /*  -- LAPACK auxiliary routine (version 3.2.1)                        -- */
@@ -11479,7 +11479,7 @@ L150:
 } /* clahr2_ */
 
 /* Subroutine */ int clals0_(integer *icompq, integer *nl, integer *nr,
-	integer *sqre, integer *nrhs, complex *b, integer *ldb, complex *bx,
+	integer *sqre, integer *nrhs, singlecomplex *b, integer *ldb, singlecomplex *bx,
 	integer *ldbx, integer *perm, integer *givptr, integer *givcol,
 	integer *ldgcol, real *givnum, integer *ldgnum, real *poles, real *
 	difl, real *difr, real *z__, integer *k, real *c__, real *s, real *
@@ -11490,7 +11490,7 @@ L150:
 	    givnum_offset, poles_dim1, poles_offset, b_dim1, b_offset,
 	    bx_dim1, bx_offset, i__1, i__2, i__3, i__4, i__5;
     real r__1;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, j, m, n;
@@ -11500,15 +11500,15 @@ L150:
     static integer jrow;
     extern doublereal snrm2_(integer *, real *, integer *);
     static real diflj, difrj, dsigj;
-    extern /* Subroutine */ int ccopy_(integer *, complex *, integer *,
-	    complex *, integer *), sgemv_(char *, integer *, integer *, real *
-	    , real *, integer *, real *, integer *, real *, real *, integer *), csrot_(integer *, complex *, integer *, complex *,
+    extern /* Subroutine */ int ccopy_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *), sgemv_(char *, integer *, integer *, real *
+	    , real *, integer *, real *, integer *, real *, real *, integer *), csrot_(integer *, singlecomplex *, integer *, singlecomplex *,
 	    integer *, real *, real *);
     extern doublereal slamc3_(real *, real *);
     extern /* Subroutine */ int clascl_(char *, integer *, integer *, real *,
-	    real *, integer *, integer *, complex *, integer *, integer *), csscal_(integer *, real *, complex *, integer *),
-	    clacpy_(char *, integer *, integer *, complex *, integer *,
-	    complex *, integer *), xerbla_(char *, integer *);
+	    real *, integer *, integer *, singlecomplex *, integer *, integer *), csscal_(integer *, real *, singlecomplex *, integer *),
+	    clacpy_(char *, integer *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *), xerbla_(char *, integer *);
     static real dsigjp;
 
 
@@ -12012,7 +12012,7 @@ L150:
 } /* clals0_ */
 
 /* Subroutine */ int clalsa_(integer *icompq, integer *smlsiz, integer *n,
-	integer *nrhs, complex *b, integer *ldb, complex *bx, integer *ldbx,
+	integer *nrhs, singlecomplex *b, integer *ldb, singlecomplex *bx, integer *ldbx,
 	real *u, integer *ldu, real *vt, integer *k, real *difl, real *difr,
 	real *z__, real *poles, integer *givptr, integer *givcol, integer *
 	ldgcol, integer *perm, real *givnum, real *c__, real *s, real *rwork,
@@ -12024,7 +12024,7 @@ L150:
 	    poles_dim1, poles_offset, u_dim1, u_offset, vt_dim1, vt_offset,
 	    z_dim1, z_offset, b_dim1, b_offset, bx_dim1, bx_offset, i__1,
 	    i__2, i__3, i__4, i__5, i__6;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, j, i1, ic, lf, nd, ll, nl, nr, im1, nlf, nrf, lvl,
@@ -12034,9 +12034,9 @@ L150:
 	    integer *, real *, real *, integer *, real *, integer *, real *,
 	    real *, integer *);
     static integer ndimr;
-    extern /* Subroutine */ int ccopy_(integer *, complex *, integer *,
-	    complex *, integer *), clals0_(integer *, integer *, integer *,
-	    integer *, integer *, complex *, integer *, complex *, integer *,
+    extern /* Subroutine */ int ccopy_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *), clals0_(integer *, integer *, integer *,
+	    integer *, integer *, singlecomplex *, integer *, singlecomplex *, integer *,
 	    integer *, integer *, integer *, integer *, real *, integer *,
 	    real *, real *, real *, real *, integer *, real *, real *, real *,
 	     integer *), xerbla_(char *, integer *), slasdt_(integer *
@@ -12667,14 +12667,14 @@ L330:
 } /* clalsa_ */
 
 /* Subroutine */ int clalsd_(char *uplo, integer *smlsiz, integer *n, integer
-	*nrhs, real *d__, real *e, complex *b, integer *ldb, real *rcond,
-	integer *rank, complex *work, real *rwork, integer *iwork, integer *
+	*nrhs, real *d__, real *e, singlecomplex *b, integer *ldb, real *rcond,
+	integer *rank, singlecomplex *work, real *rwork, integer *iwork, integer *
 	info)
 {
     /* System generated locals */
     integer b_dim1, b_offset, i__1, i__2, i__3, i__4, i__5, i__6;
     real r__1;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer c__, i__, j, k;
@@ -12695,27 +12695,27 @@ L330:
 	    integer *, real *, real *, integer *, real *, integer *, real *,
 	    real *, integer *);
     static integer irwib;
-    extern /* Subroutine */ int ccopy_(integer *, complex *, integer *,
-	    complex *, integer *);
+    extern /* Subroutine */ int ccopy_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *);
     static integer poles, sizei, irwrb, nsize;
-    extern /* Subroutine */ int csrot_(integer *, complex *, integer *,
-	    complex *, integer *, real *, real *);
+    extern /* Subroutine */ int csrot_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, real *, real *);
     static integer irwvt, icmpq1, icmpq2;
     extern /* Subroutine */ int clalsa_(integer *, integer *, integer *,
-	    integer *, complex *, integer *, complex *, integer *, real *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, integer *, real *,
 	    integer *, real *, integer *, real *, real *, real *, real *,
 	    integer *, integer *, integer *, integer *, real *, real *, real *
 	    , real *, integer *, integer *), clascl_(char *, integer *,
-	    integer *, real *, real *, integer *, integer *, complex *,
+	    integer *, real *, real *, integer *, integer *, singlecomplex *,
 	    integer *, integer *);
     extern doublereal slamch_(char *);
     extern /* Subroutine */ int slasda_(integer *, integer *, integer *,
 	    integer *, real *, real *, real *, integer *, real *, integer *,
 	    real *, real *, real *, real *, integer *, integer *, integer *,
 	    integer *, real *, real *, real *, real *, integer *, integer *),
-	    clacpy_(char *, integer *, integer *, complex *, integer *,
-	    complex *, integer *), claset_(char *, integer *, integer
-	    *, complex *, complex *, complex *, integer *), xerbla_(
+	    clacpy_(char *, integer *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *), claset_(char *, integer *, integer
+	    *, singlecomplex *, singlecomplex *, singlecomplex *, integer *), xerbla_(
 	    char *, integer *), slascl_(char *, integer *, integer *,
 	    real *, real *, integer *, integer *, real *, integer *, integer *
 	    );
@@ -13404,7 +13404,7 @@ L330:
 
 } /* clalsd_ */
 
-doublereal clange_(char *norm, integer *m, integer *n, complex *a, integer *
+doublereal clange_(char *norm, integer *m, integer *n, singlecomplex *a, integer *
 	lda, real *work)
 {
     /* System generated locals */
@@ -13416,7 +13416,7 @@ doublereal clange_(char *norm, integer *m, integer *n, complex *a, integer *
     static real sum, scale;
     extern logical lsame_(char *, char *);
     static real value;
-    extern /* Subroutine */ int classq_(integer *, complex *, integer *, real
+    extern /* Subroutine */ int classq_(integer *, singlecomplex *, integer *, real
 	    *, real *);
 
 
@@ -13432,7 +13432,7 @@ doublereal clange_(char *norm, integer *m, integer *n, complex *a, integer *
 
     CLANGE  returns the value of the one norm,  or the Frobenius norm, or
     the  infinity norm,  or the  element of  largest absolute value  of a
-    complex matrix A.
+    singlecomplex matrix A.
 
     Description
     ===========
@@ -13570,7 +13570,7 @@ doublereal clange_(char *norm, integer *m, integer *n, complex *a, integer *
 
 } /* clange_ */
 
-doublereal clanhe_(char *norm, char *uplo, integer *n, complex *a, integer *
+doublereal clanhe_(char *norm, char *uplo, integer *n, singlecomplex *a, integer *
 	lda, real *work)
 {
     /* System generated locals */
@@ -13582,7 +13582,7 @@ doublereal clanhe_(char *norm, char *uplo, integer *n, complex *a, integer *
     static real sum, absa, scale;
     extern logical lsame_(char *, char *);
     static real value;
-    extern /* Subroutine */ int classq_(integer *, complex *, integer *, real
+    extern /* Subroutine */ int classq_(integer *, singlecomplex *, integer *, real
 	    *, real *);
 
 
@@ -13598,7 +13598,7 @@ doublereal clanhe_(char *norm, char *uplo, integer *n, complex *a, integer *
 
     CLANHE  returns the value of the one norm,  or the Frobenius norm, or
     the  infinity norm,  or the  element of  largest absolute value  of a
-    complex hermitian matrix A.
+    singlecomplex hermitian matrix A.
 
     Description
     ===========
@@ -13803,48 +13803,48 @@ doublereal clanhe_(char *norm, char *uplo, integer *n, complex *a, integer *
 } /* clanhe_ */
 
 /* Subroutine */ int claqr0_(logical *wantt, logical *wantz, integer *n,
-	integer *ilo, integer *ihi, complex *h__, integer *ldh, complex *w,
-	integer *iloz, integer *ihiz, complex *z__, integer *ldz, complex *
+	integer *ilo, integer *ihi, singlecomplex *h__, integer *ldh, singlecomplex *w,
+	integer *iloz, integer *ihiz, singlecomplex *z__, integer *ldz, singlecomplex *
 	work, integer *lwork, integer *info)
 {
     /* System generated locals */
     integer h_dim1, h_offset, z_dim1, z_offset, i__1, i__2, i__3, i__4, i__5;
     real r__1, r__2, r__3, r__4, r__5, r__6, r__7, r__8;
-    complex q__1, q__2, q__3, q__4, q__5;
+    singlecomplex q__1, q__2, q__3, q__4, q__5;
 
     /* Local variables */
     static integer i__, k;
     static real s;
-    static complex aa, bb, cc, dd;
+    static singlecomplex aa, bb, cc, dd;
     static integer ld, nh, it, ks, kt, ku, kv, ls, ns, nw;
-    static complex tr2, det;
+    static singlecomplex tr2, det;
     static integer inf, kdu, nho, nve, kwh, nsr, nwr, kwv, ndec, ndfl, kbot,
 	    nmin;
-    static complex swap;
+    static singlecomplex swap;
     static integer ktop;
-    static complex zdum[1]	/* was [1][1] */;
+    static singlecomplex zdum[1]	/* was [1][1] */;
     static integer kacc22, itmax, nsmax, nwmax, kwtop;
     extern /* Subroutine */ int claqr3_(logical *, logical *, integer *,
-	    integer *, integer *, integer *, complex *, integer *, integer *,
-	    integer *, complex *, integer *, integer *, integer *, complex *,
-	    complex *, integer *, integer *, complex *, integer *, integer *,
-	    complex *, integer *, complex *, integer *), claqr4_(logical *,
-	    logical *, integer *, integer *, integer *, complex *, integer *,
-	    complex *, integer *, integer *, complex *, integer *, complex *,
+	    integer *, integer *, integer *, singlecomplex *, integer *, integer *,
+	    integer *, singlecomplex *, integer *, integer *, integer *, singlecomplex *,
+	    singlecomplex *, integer *, integer *, singlecomplex *, integer *, integer *,
+	    singlecomplex *, integer *, singlecomplex *, integer *), claqr4_(logical *,
+	    logical *, integer *, integer *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, integer *, singlecomplex *, integer *, singlecomplex *,
 	    integer *, integer *), claqr5_(logical *, logical *, integer *,
-	    integer *, integer *, integer *, integer *, complex *, complex *,
-	    integer *, integer *, integer *, complex *, integer *, complex *,
-	    integer *, complex *, integer *, integer *, complex *, integer *,
-	    integer *, complex *, integer *);
+	    integer *, integer *, integer *, integer *, singlecomplex *, singlecomplex *,
+	    integer *, integer *, integer *, singlecomplex *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, integer *, integer *, singlecomplex *, integer *,
+	    integer *, singlecomplex *, integer *);
     static integer nibble;
     extern /* Subroutine */ int clahqr_(logical *, logical *, integer *,
-	    integer *, integer *, complex *, integer *, complex *, integer *,
-	    integer *, complex *, integer *, integer *), clacpy_(char *,
-	    integer *, integer *, complex *, integer *, complex *, integer *);
+	    integer *, integer *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    integer *, singlecomplex *, integer *, integer *), clacpy_(char *,
+	    integer *, integer *, singlecomplex *, integer *, singlecomplex *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
     static char jbcmpz[2];
-    static complex rtdisc;
+    static singlecomplex rtdisc;
     static integer nwupbd;
     static logical sorted;
     static integer lwkopt;
@@ -14585,17 +14585,17 @@ L80:
     return 0;
 } /* claqr0_ */
 
-/* Subroutine */ int claqr1_(integer *n, complex *h__, integer *ldh, complex *
-	s1, complex *s2, complex *v)
+/* Subroutine */ int claqr1_(integer *n, singlecomplex *h__, integer *ldh, singlecomplex *
+	s1, singlecomplex *s2, singlecomplex *v)
 {
     /* System generated locals */
     integer h_dim1, h_offset, i__1, i__2, i__3, i__4;
     real r__1, r__2, r__3, r__4, r__5, r__6;
-    complex q__1, q__2, q__3, q__4, q__5, q__6, q__7, q__8;
+    singlecomplex q__1, q__2, q__3, q__4, q__5, q__6, q__7, q__8;
 
     /* Local variables */
     static real s;
-    static complex h21s, h31s;
+    static singlecomplex h21s, h31s;
 
 
 /*
@@ -14753,52 +14753,52 @@ L80:
 } /* claqr1_ */
 
 /* Subroutine */ int claqr2_(logical *wantt, logical *wantz, integer *n,
-	integer *ktop, integer *kbot, integer *nw, complex *h__, integer *ldh,
-	 integer *iloz, integer *ihiz, complex *z__, integer *ldz, integer *
-	ns, integer *nd, complex *sh, complex *v, integer *ldv, integer *nh,
-	complex *t, integer *ldt, integer *nv, complex *wv, integer *ldwv,
-	complex *work, integer *lwork)
+	integer *ktop, integer *kbot, integer *nw, singlecomplex *h__, integer *ldh,
+	 integer *iloz, integer *ihiz, singlecomplex *z__, integer *ldz, integer *
+	ns, integer *nd, singlecomplex *sh, singlecomplex *v, integer *ldv, integer *nh,
+	singlecomplex *t, integer *ldt, integer *nv, singlecomplex *wv, integer *ldwv,
+	singlecomplex *work, integer *lwork)
 {
     /* System generated locals */
     integer h_dim1, h_offset, t_dim1, t_offset, v_dim1, v_offset, wv_dim1,
 	    wv_offset, z_dim1, z_offset, i__1, i__2, i__3, i__4;
     real r__1, r__2, r__3, r__4, r__5, r__6;
-    complex q__1, q__2;
+    singlecomplex q__1, q__2;
 
     /* Local variables */
     static integer i__, j;
-    static complex s;
+    static singlecomplex s;
     static integer jw;
     static real foo;
     static integer kln;
-    static complex tau;
+    static singlecomplex tau;
     static integer knt;
     static real ulp;
     static integer lwk1, lwk2;
-    static complex beta;
+    static singlecomplex beta;
     static integer kcol, info, ifst, ilst, ltop, krow;
-    extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex *
-	    , integer *, complex *, complex *, integer *, complex *),
-	    cgemm_(char *, char *, integer *, integer *, integer *, complex *,
-	     complex *, integer *, complex *, integer *, complex *, complex *,
-	     integer *), ccopy_(integer *, complex *, integer
-	    *, complex *, integer *);
+    extern /* Subroutine */ int clarf_(char *, integer *, integer *, singlecomplex *
+	    , integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *),
+	    cgemm_(char *, char *, integer *, integer *, integer *, singlecomplex *,
+	     singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *,
+	     integer *), ccopy_(integer *, singlecomplex *, integer
+	    *, singlecomplex *, integer *);
     static integer infqr, kwtop;
     extern /* Subroutine */ int slabad_(real *, real *), cgehrd_(integer *,
-	    integer *, integer *, complex *, integer *, complex *, complex *,
-	    integer *, integer *), clarfg_(integer *, complex *, complex *,
-	    integer *, complex *);
+	    integer *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *,
+	    integer *, integer *), clarfg_(integer *, singlecomplex *, singlecomplex *,
+	    integer *, singlecomplex *);
     extern doublereal slamch_(char *);
     extern /* Subroutine */ int clahqr_(logical *, logical *, integer *,
-	    integer *, integer *, complex *, integer *, complex *, integer *,
-	    integer *, complex *, integer *, integer *), clacpy_(char *,
-	    integer *, integer *, complex *, integer *, complex *, integer *), claset_(char *, integer *, integer *, complex *, complex
-	    *, complex *, integer *);
+	    integer *, integer *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    integer *, singlecomplex *, integer *, integer *), clacpy_(char *,
+	    integer *, integer *, singlecomplex *, integer *, singlecomplex *, integer *), claset_(char *, integer *, integer *, singlecomplex *, singlecomplex
+	    *, singlecomplex *, integer *);
     static real safmin, safmax;
-    extern /* Subroutine */ int ctrexc_(char *, integer *, complex *, integer
-	    *, complex *, integer *, integer *, integer *, integer *),
+    extern /* Subroutine */ int ctrexc_(char *, integer *, singlecomplex *, integer
+	    *, singlecomplex *, integer *, integer *, integer *, integer *),
 	     cunmhr_(char *, char *, integer *, integer *, integer *, integer
-	    *, complex *, integer *, complex *, complex *, integer *, complex
+	    *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex
 	    *, integer *, integer *);
     static real smlnum;
     static integer lwkopt;
@@ -15327,57 +15327,57 @@ L80:
 } /* claqr2_ */
 
 /* Subroutine */ int claqr3_(logical *wantt, logical *wantz, integer *n,
-	integer *ktop, integer *kbot, integer *nw, complex *h__, integer *ldh,
-	 integer *iloz, integer *ihiz, complex *z__, integer *ldz, integer *
-	ns, integer *nd, complex *sh, complex *v, integer *ldv, integer *nh,
-	complex *t, integer *ldt, integer *nv, complex *wv, integer *ldwv,
-	complex *work, integer *lwork)
+	integer *ktop, integer *kbot, integer *nw, singlecomplex *h__, integer *ldh,
+	 integer *iloz, integer *ihiz, singlecomplex *z__, integer *ldz, integer *
+	ns, integer *nd, singlecomplex *sh, singlecomplex *v, integer *ldv, integer *nh,
+	singlecomplex *t, integer *ldt, integer *nv, singlecomplex *wv, integer *ldwv,
+	singlecomplex *work, integer *lwork)
 {
     /* System generated locals */
     integer h_dim1, h_offset, t_dim1, t_offset, v_dim1, v_offset, wv_dim1,
 	    wv_offset, z_dim1, z_offset, i__1, i__2, i__3, i__4;
     real r__1, r__2, r__3, r__4, r__5, r__6;
-    complex q__1, q__2;
+    singlecomplex q__1, q__2;
 
     /* Local variables */
     static integer i__, j;
-    static complex s;
+    static singlecomplex s;
     static integer jw;
     static real foo;
     static integer kln;
-    static complex tau;
+    static singlecomplex tau;
     static integer knt;
     static real ulp;
     static integer lwk1, lwk2, lwk3;
-    static complex beta;
+    static singlecomplex beta;
     static integer kcol, info, nmin, ifst, ilst, ltop, krow;
-    extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex *
-	    , integer *, complex *, complex *, integer *, complex *),
-	    cgemm_(char *, char *, integer *, integer *, integer *, complex *,
-	     complex *, integer *, complex *, integer *, complex *, complex *,
-	     integer *), ccopy_(integer *, complex *, integer
-	    *, complex *, integer *);
+    extern /* Subroutine */ int clarf_(char *, integer *, integer *, singlecomplex *
+	    , integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *),
+	    cgemm_(char *, char *, integer *, integer *, integer *, singlecomplex *,
+	     singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *,
+	     integer *), ccopy_(integer *, singlecomplex *, integer
+	    *, singlecomplex *, integer *);
     static integer infqr, kwtop;
     extern /* Subroutine */ int claqr4_(logical *, logical *, integer *,
-	    integer *, integer *, complex *, integer *, complex *, integer *,
-	    integer *, complex *, integer *, complex *, integer *, integer *),
+	    integer *, integer *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, integer *, integer *),
 	     slabad_(real *, real *), cgehrd_(integer *, integer *, integer *,
-	     complex *, integer *, complex *, complex *, integer *, integer *)
-	    , clarfg_(integer *, complex *, complex *, integer *, complex *);
+	     singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *, integer *)
+	    , clarfg_(integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *);
     extern doublereal slamch_(char *);
     extern /* Subroutine */ int clahqr_(logical *, logical *, integer *,
-	    integer *, integer *, complex *, integer *, complex *, integer *,
-	    integer *, complex *, integer *, integer *), clacpy_(char *,
-	    integer *, integer *, complex *, integer *, complex *, integer *), claset_(char *, integer *, integer *, complex *, complex
-	    *, complex *, integer *);
+	    integer *, integer *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    integer *, singlecomplex *, integer *, integer *), clacpy_(char *,
+	    integer *, integer *, singlecomplex *, integer *, singlecomplex *, integer *), claset_(char *, integer *, integer *, singlecomplex *, singlecomplex
+	    *, singlecomplex *, integer *);
     static real safmin;
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
     static real safmax;
-    extern /* Subroutine */ int ctrexc_(char *, integer *, complex *, integer
-	    *, complex *, integer *, integer *, integer *, integer *),
+    extern /* Subroutine */ int ctrexc_(char *, integer *, singlecomplex *, integer
+	    *, singlecomplex *, integer *, integer *, integer *, integer *),
 	     cunmhr_(char *, char *, integer *, integer *, integer *, integer
-	    *, complex *, integer *, complex *, complex *, integer *, complex
+	    *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex
 	    *, integer *, integer *);
     static real smlnum;
     static integer lwkopt;
@@ -15920,45 +15920,45 @@ L80:
 } /* claqr3_ */
 
 /* Subroutine */ int claqr4_(logical *wantt, logical *wantz, integer *n,
-	integer *ilo, integer *ihi, complex *h__, integer *ldh, complex *w,
-	integer *iloz, integer *ihiz, complex *z__, integer *ldz, complex *
+	integer *ilo, integer *ihi, singlecomplex *h__, integer *ldh, singlecomplex *w,
+	integer *iloz, integer *ihiz, singlecomplex *z__, integer *ldz, singlecomplex *
 	work, integer *lwork, integer *info)
 {
     /* System generated locals */
     integer h_dim1, h_offset, z_dim1, z_offset, i__1, i__2, i__3, i__4, i__5;
     real r__1, r__2, r__3, r__4, r__5, r__6, r__7, r__8;
-    complex q__1, q__2, q__3, q__4, q__5;
+    singlecomplex q__1, q__2, q__3, q__4, q__5;
 
     /* Local variables */
     static integer i__, k;
     static real s;
-    static complex aa, bb, cc, dd;
+    static singlecomplex aa, bb, cc, dd;
     static integer ld, nh, it, ks, kt, ku, kv, ls, ns, nw;
-    static complex tr2, det;
+    static singlecomplex tr2, det;
     static integer inf, kdu, nho, nve, kwh, nsr, nwr, kwv, ndec, ndfl, kbot,
 	    nmin;
-    static complex swap;
+    static singlecomplex swap;
     static integer ktop;
-    static complex zdum[1]	/* was [1][1] */;
+    static singlecomplex zdum[1]	/* was [1][1] */;
     static integer kacc22, itmax, nsmax, nwmax, kwtop;
     extern /* Subroutine */ int claqr2_(logical *, logical *, integer *,
-	    integer *, integer *, integer *, complex *, integer *, integer *,
-	    integer *, complex *, integer *, integer *, integer *, complex *,
-	    complex *, integer *, integer *, complex *, integer *, integer *,
-	    complex *, integer *, complex *, integer *), claqr5_(logical *,
+	    integer *, integer *, integer *, singlecomplex *, integer *, integer *,
+	    integer *, singlecomplex *, integer *, integer *, integer *, singlecomplex *,
+	    singlecomplex *, integer *, integer *, singlecomplex *, integer *, integer *,
+	    singlecomplex *, integer *, singlecomplex *, integer *), claqr5_(logical *,
 	    logical *, integer *, integer *, integer *, integer *, integer *,
-	    complex *, complex *, integer *, integer *, integer *, complex *,
-	    integer *, complex *, integer *, complex *, integer *, integer *,
-	    complex *, integer *, integer *, complex *, integer *);
+	    singlecomplex *, singlecomplex *, integer *, integer *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, integer *, integer *,
+	    singlecomplex *, integer *, integer *, singlecomplex *, integer *);
     static integer nibble;
     extern /* Subroutine */ int clahqr_(logical *, logical *, integer *,
-	    integer *, integer *, complex *, integer *, complex *, integer *,
-	    integer *, complex *, integer *, integer *), clacpy_(char *,
-	    integer *, integer *, complex *, integer *, complex *, integer *);
+	    integer *, integer *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    integer *, singlecomplex *, integer *, integer *), clacpy_(char *,
+	    integer *, integer *, singlecomplex *, integer *, singlecomplex *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
     static char jbcmpz[2];
-    static complex rtdisc;
+    static singlecomplex rtdisc;
     static integer nwupbd;
     static logical sorted;
     static integer lwkopt;
@@ -16701,10 +16701,10 @@ L80:
 } /* claqr4_ */
 
 /* Subroutine */ int claqr5_(logical *wantt, logical *wantz, integer *kacc22,
-	integer *n, integer *ktop, integer *kbot, integer *nshfts, complex *s,
-	 complex *h__, integer *ldh, integer *iloz, integer *ihiz, complex *
-	z__, integer *ldz, complex *v, integer *ldv, complex *u, integer *ldu,
-	 integer *nv, complex *wv, integer *ldwv, integer *nh, complex *wh,
+	integer *n, integer *ktop, integer *kbot, integer *nshfts, singlecomplex *s,
+	 singlecomplex *h__, integer *ldh, integer *iloz, integer *ihiz, singlecomplex *
+	z__, integer *ldz, singlecomplex *v, integer *ldv, singlecomplex *u, integer *ldu,
+	 integer *nv, singlecomplex *wv, integer *ldwv, integer *nh, singlecomplex *wh,
 	integer *ldwh)
 {
     /* System generated locals */
@@ -16712,39 +16712,39 @@ L80:
 	    wh_offset, wv_dim1, wv_offset, z_dim1, z_offset, i__1, i__2, i__3,
 	     i__4, i__5, i__6, i__7, i__8, i__9, i__10, i__11;
     real r__1, r__2, r__3, r__4, r__5, r__6, r__7, r__8, r__9, r__10;
-    complex q__1, q__2, q__3, q__4, q__5, q__6, q__7, q__8;
+    singlecomplex q__1, q__2, q__3, q__4, q__5, q__6, q__7, q__8;
 
     /* Local variables */
     static integer j, k, m, i2, j2, i4, j4, k1;
     static real h11, h12, h21, h22;
     static integer m22, ns, nu;
-    static complex vt[3];
+    static singlecomplex vt[3];
     static real scl;
     static integer kdu, kms;
     static real ulp;
     static integer knz, kzs;
     static real tst1, tst2;
-    static complex beta;
+    static singlecomplex beta;
     static logical blk22, bmp22;
     static integer mend, jcol, jlen, jbot, mbot, jtop, jrow, mtop;
-    static complex alpha;
+    static singlecomplex alpha;
     static logical accum;
     extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *,
-	    integer *, complex *, complex *, integer *, complex *, integer *,
-	    complex *, complex *, integer *);
+	    integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, singlecomplex *, integer *);
     static integer ndcol, incol, krcol, nbmps;
     extern /* Subroutine */ int ctrmm_(char *, char *, char *, char *,
-	    integer *, integer *, complex *, complex *, integer *, complex *,
+	    integer *, integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *,
 	    integer *), claqr1_(integer *,
-	    complex *, integer *, complex *, complex *, complex *), slabad_(
-	    real *, real *), clarfg_(integer *, complex *, complex *, integer
-	    *, complex *);
+	    singlecomplex *, integer *, singlecomplex *, singlecomplex *, singlecomplex *), slabad_(
+	    real *, real *), clarfg_(integer *, singlecomplex *, singlecomplex *, integer
+	    *, singlecomplex *);
     extern doublereal slamch_(char *);
-    extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex
-	    *, integer *, complex *, integer *), claset_(char *,
-	    integer *, integer *, complex *, complex *, complex *, integer *);
+    extern /* Subroutine */ int clacpy_(char *, integer *, integer *, singlecomplex
+	    *, integer *, singlecomplex *, integer *), claset_(char *,
+	    integer *, integer *, singlecomplex *, singlecomplex *, singlecomplex *, integer *);
     static real safmin, safmax;
-    static complex refsum;
+    static singlecomplex refsum;
     static integer mstart;
     static real smlnum;
 
@@ -18048,13 +18048,13 @@ L80:
 } /* claqr5_ */
 
 /* Subroutine */ int clarcm_(integer *m, integer *n, real *a, integer *lda,
-	complex *b, integer *ldb, complex *c__, integer *ldc, real *rwork)
+	singlecomplex *b, integer *ldb, singlecomplex *c__, integer *ldc, real *rwork)
 {
     /* System generated locals */
     integer a_dim1, a_offset, b_dim1, b_offset, c_dim1, c_offset, i__1, i__2,
 	    i__3, i__4, i__5;
     real r__1;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, j, l;
@@ -18191,25 +18191,25 @@ L80:
 
 } /* clarcm_ */
 
-/* Subroutine */ int clarf_(char *side, integer *m, integer *n, complex *v,
-	integer *incv, complex *tau, complex *c__, integer *ldc, complex *
+/* Subroutine */ int clarf_(char *side, integer *m, integer *n, singlecomplex *v,
+	integer *incv, singlecomplex *tau, singlecomplex *c__, integer *ldc, singlecomplex *
 	work)
 {
     /* System generated locals */
     integer c_dim1, c_offset, i__1;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__;
     static logical applyleft;
-    extern /* Subroutine */ int cgerc_(integer *, integer *, complex *,
-	    complex *, integer *, complex *, integer *, complex *, integer *),
-	     cgemv_(char *, integer *, integer *, complex *, complex *,
-	    integer *, complex *, integer *, complex *, complex *, integer *);
+    extern /* Subroutine */ int cgerc_(integer *, integer *, singlecomplex *,
+	    singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *, integer *),
+	     cgemv_(char *, integer *, integer *, singlecomplex *, singlecomplex *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *);
     extern logical lsame_(char *, char *);
     static integer lastc, lastv;
-    extern integer ilaclc_(integer *, integer *, complex *, integer *),
-	    ilaclr_(integer *, integer *, complex *, integer *);
+    extern integer ilaclc_(integer *, integer *, singlecomplex *, integer *),
+	    ilaclr_(integer *, integer *, singlecomplex *, integer *);
 
 
 /*
@@ -18364,30 +18364,30 @@ L80:
 } /* clarf_ */
 
 /* Subroutine */ int clarfb_(char *side, char *trans, char *direct, char *
-	storev, integer *m, integer *n, integer *k, complex *v, integer *ldv,
-	complex *t, integer *ldt, complex *c__, integer *ldc, complex *work,
+	storev, integer *m, integer *n, integer *k, singlecomplex *v, integer *ldv,
+	singlecomplex *t, integer *ldt, singlecomplex *c__, integer *ldc, singlecomplex *work,
 	integer *ldwork)
 {
     /* System generated locals */
     integer c_dim1, c_offset, t_dim1, t_offset, v_dim1, v_offset, work_dim1,
 	    work_offset, i__1, i__2, i__3, i__4, i__5;
-    complex q__1, q__2;
+    singlecomplex q__1, q__2;
 
     /* Local variables */
     static integer i__, j;
     extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *,
-	    integer *, complex *, complex *, integer *, complex *, integer *,
-	    complex *, complex *, integer *);
+	    integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, singlecomplex *, integer *);
     extern logical lsame_(char *, char *);
     static integer lastc;
-    extern /* Subroutine */ int ccopy_(integer *, complex *, integer *,
-	    complex *, integer *), ctrmm_(char *, char *, char *, char *,
-	    integer *, integer *, complex *, complex *, integer *, complex *,
+    extern /* Subroutine */ int ccopy_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *), ctrmm_(char *, char *, char *, char *,
+	    integer *, integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *,
 	    integer *);
     static integer lastv;
-    extern integer ilaclc_(integer *, integer *, complex *, integer *);
-    extern /* Subroutine */ int clacgv_(integer *, complex *, integer *);
-    extern integer ilaclr_(integer *, integer *, complex *, integer *);
+    extern integer ilaclc_(integer *, integer *, singlecomplex *, integer *);
+    extern /* Subroutine */ int clacgv_(integer *, singlecomplex *, integer *);
+    extern integer ilaclr_(integer *, integer *, singlecomplex *, integer *);
     static char transt[1];
 
 
@@ -19205,25 +19205,25 @@ L80:
 
 } /* clarfb_ */
 
-/* Subroutine */ int clarfg_(integer *n, complex *alpha, complex *x, integer *
-	incx, complex *tau)
+/* Subroutine */ int clarfg_(integer *n, singlecomplex *alpha, singlecomplex *x, integer *
+	incx, singlecomplex *tau)
 {
     /* System generated locals */
     integer i__1;
     real r__1, r__2;
-    complex q__1, q__2;
+    singlecomplex q__1, q__2;
 
     /* Local variables */
     static integer j, knt;
     static real beta;
-    extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
+    extern /* Subroutine */ int cscal_(integer *, singlecomplex *, singlecomplex *,
 	    integer *);
     static real alphi, alphr, xnorm;
-    extern doublereal scnrm2_(integer *, complex *, integer *), slapy3_(real *
+    extern doublereal scnrm2_(integer *, singlecomplex *, integer *), slapy3_(real *
 	    , real *, real *);
-    extern /* Complex */ VOID cladiv_(complex *, complex *, complex *);
+    extern /* Complex */ VOID cladiv_(singlecomplex *, singlecomplex *, singlecomplex *);
     extern doublereal slamch_(char *);
-    extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer
+    extern /* Subroutine */ int csscal_(integer *, real *, singlecomplex *, integer
 	    *);
     static real safmin, rsafmn;
 
@@ -19363,22 +19363,22 @@ L10:
 } /* clarfg_ */
 
 /* Subroutine */ int clarft_(char *direct, char *storev, integer *n, integer *
-	k, complex *v, integer *ldv, complex *tau, complex *t, integer *ldt)
+	k, singlecomplex *v, integer *ldv, singlecomplex *tau, singlecomplex *t, integer *ldt)
 {
     /* System generated locals */
     integer t_dim1, t_offset, v_dim1, v_offset, i__1, i__2, i__3, i__4;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, j, prevlastv;
-    static complex vii;
-    extern /* Subroutine */ int cgemv_(char *, integer *, integer *, complex *
-	    , complex *, integer *, complex *, integer *, complex *, complex *
+    static singlecomplex vii;
+    extern /* Subroutine */ int cgemv_(char *, integer *, integer *, singlecomplex *
+	    , singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *
 	    , integer *);
     extern logical lsame_(char *, char *);
     static integer lastv;
     extern /* Subroutine */ int ctrmv_(char *, char *, char *, integer *,
-	    complex *, integer *, complex *, integer *), clacgv_(integer *, complex *, integer *);
+	    singlecomplex *, integer *, singlecomplex *, integer *), clacgv_(integer *, singlecomplex *, integer *);
 
 
 /*
@@ -19703,21 +19703,21 @@ L36:
 
 } /* clarft_ */
 
-/* Subroutine */ int clartg_(complex *f, complex *g, real *cs, complex *sn,
-	complex *r__)
+/* Subroutine */ int clartg_(singlecomplex *f, singlecomplex *g, real *cs, singlecomplex *sn,
+	singlecomplex *r__)
 {
     /* System generated locals */
     integer i__1;
     real r__1, r__2, r__3, r__4, r__5, r__6, r__7, r__8, r__9, r__10;
-    complex q__1, q__2, q__3;
+    singlecomplex q__1, q__2, q__3;
 
     /* Local variables */
     static real d__;
     static integer i__;
     static real f2, g2;
-    static complex ff;
+    static singlecomplex ff;
     static real di, dr;
-    static complex fs, gs;
+    static singlecomplex fs, gs;
     static real f2s, g2s, eps, scale;
     static integer count;
     static real safmn2, safmx2;
@@ -19963,12 +19963,12 @@ L20:
 } /* clartg_ */
 
 /* Subroutine */ int clascl_(char *type__, integer *kl, integer *ku, real *
-	cfrom, real *cto, integer *m, integer *n, complex *a, integer *lda,
+	cfrom, real *cto, integer *m, integer *n, singlecomplex *a, integer *lda,
 	integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, j, k1, k2, k3, k4;
@@ -20317,8 +20317,8 @@ L10:
 
 } /* clascl_ */
 
-/* Subroutine */ int claset_(char *uplo, integer *m, integer *n, complex *
-	alpha, complex *beta, complex *a, integer *lda)
+/* Subroutine */ int claset_(char *uplo, integer *m, integer *n, singlecomplex *
+	alpha, singlecomplex *beta, singlecomplex *a, integer *lda)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3;
@@ -20464,15 +20464,15 @@ L10:
 } /* claset_ */
 
 /* Subroutine */ int clasr_(char *side, char *pivot, char *direct, integer *m,
-	 integer *n, real *c__, real *s, complex *a, integer *lda)
+	 integer *n, real *c__, real *s, singlecomplex *a, integer *lda)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4;
-    complex q__1, q__2, q__3;
+    singlecomplex q__1, q__2, q__3;
 
     /* Local variables */
     static integer i__, j, info;
-    static complex temp;
+    static singlecomplex temp;
     extern logical lsame_(char *, char *);
     static real ctemp, stemp;
     extern /* Subroutine */ int xerbla_(char *, integer *);
@@ -20488,7 +20488,7 @@ L10:
     Purpose
     =======
 
-    CLASR applies a sequence of real plane rotations to a complex matrix
+    CLASR applies a sequence of real plane rotations to a singlecomplex matrix
     A, from either the left or the right.
 
     When SIDE = 'L', the transformation takes the form
@@ -21046,7 +21046,7 @@ L10:
 
 } /* clasr_ */
 
-/* Subroutine */ int classq_(integer *n, complex *x, integer *incx, real *
+/* Subroutine */ int classq_(integer *n, singlecomplex *x, integer *incx, real *
 	scale, real *sumsq)
 {
     /* System generated locals */
@@ -21159,7 +21159,7 @@ L10:
 
 } /* classq_ */
 
-/* Subroutine */ int claswp_(integer *n, complex *a, integer *lda, integer *
+/* Subroutine */ int claswp_(integer *n, singlecomplex *a, integer *lda, integer *
 	k1, integer *k2, integer *ipiv, integer *incx)
 {
     /* System generated locals */
@@ -21167,7 +21167,7 @@ L10:
 
     /* Local variables */
     static integer i__, j, k, i1, i2, n32, ip, ix, ix0, inc;
-    static complex temp;
+    static singlecomplex temp;
 
 
 /*
@@ -21307,30 +21307,30 @@ L10:
 
 } /* claswp_ */
 
-/* Subroutine */ int clatrd_(char *uplo, integer *n, integer *nb, complex *a,
-	integer *lda, real *e, complex *tau, complex *w, integer *ldw)
+/* Subroutine */ int clatrd_(char *uplo, integer *n, integer *nb, singlecomplex *a,
+	integer *lda, real *e, singlecomplex *tau, singlecomplex *w, integer *ldw)
 {
     /* System generated locals */
     integer a_dim1, a_offset, w_dim1, w_offset, i__1, i__2, i__3;
     real r__1;
-    complex q__1, q__2, q__3, q__4;
+    singlecomplex q__1, q__2, q__3, q__4;
 
     /* Local variables */
     static integer i__, iw;
-    static complex alpha;
-    extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
+    static singlecomplex alpha;
+    extern /* Subroutine */ int cscal_(integer *, singlecomplex *, singlecomplex *,
 	    integer *);
-    extern /* Complex */ VOID cdotc_(complex *, integer *, complex *, integer
-	    *, complex *, integer *);
-    extern /* Subroutine */ int cgemv_(char *, integer *, integer *, complex *
-	    , complex *, integer *, complex *, integer *, complex *, complex *
-	    , integer *), chemv_(char *, integer *, complex *,
-	    complex *, integer *, complex *, integer *, complex *, complex *,
+    extern /* Complex */ VOID cdotc_(singlecomplex *, integer *, singlecomplex *, integer
+	    *, singlecomplex *, integer *);
+    extern /* Subroutine */ int cgemv_(char *, integer *, integer *, singlecomplex *
+	    , singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *
+	    , integer *), chemv_(char *, integer *, singlecomplex *,
+	    singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *,
 	    integer *);
     extern logical lsame_(char *, char *);
-    extern /* Subroutine */ int caxpy_(integer *, complex *, complex *,
-	    integer *, complex *, integer *), clarfg_(integer *, complex *,
-	    complex *, integer *, complex *), clacgv_(integer *, complex *,
+    extern /* Subroutine */ int caxpy_(integer *, singlecomplex *, singlecomplex *,
+	    integer *, singlecomplex *, integer *), clarfg_(integer *, singlecomplex *,
+	    singlecomplex *, integer *, singlecomplex *), clacgv_(integer *, singlecomplex *,
 	    integer *);
 
 
@@ -21699,13 +21699,13 @@ L10:
 } /* clatrd_ */
 
 /* Subroutine */ int clatrs_(char *uplo, char *trans, char *diag, char *
-	normin, integer *n, complex *a, integer *lda, complex *x, real *scale,
+	normin, integer *n, singlecomplex *a, integer *lda, singlecomplex *x, real *scale,
 	 real *cnorm, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4, i__5;
     real r__1, r__2, r__3, r__4;
-    complex q__1, q__2, q__3, q__4;
+    singlecomplex q__1, q__2, q__3, q__4;
 
     /* Local variables */
     static integer i__, j;
@@ -21714,31 +21714,31 @@ L10:
     static real xbnd;
     static integer imax;
     static real tmax;
-    static complex tjjs;
+    static singlecomplex tjjs;
     static real xmax, grow;
-    extern /* Complex */ VOID cdotc_(complex *, integer *, complex *, integer
-	    *, complex *, integer *);
+    extern /* Complex */ VOID cdotc_(singlecomplex *, integer *, singlecomplex *, integer
+	    *, singlecomplex *, integer *);
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *);
     static real tscal;
-    static complex uscal;
+    static singlecomplex uscal;
     static integer jlast;
-    extern /* Complex */ VOID cdotu_(complex *, integer *, complex *, integer
-	    *, complex *, integer *);
-    static complex csumj;
-    extern /* Subroutine */ int caxpy_(integer *, complex *, complex *,
-	    integer *, complex *, integer *);
+    extern /* Complex */ VOID cdotu_(singlecomplex *, integer *, singlecomplex *, integer
+	    *, singlecomplex *, integer *);
+    static singlecomplex csumj;
+    extern /* Subroutine */ int caxpy_(integer *, singlecomplex *, singlecomplex *,
+	    integer *, singlecomplex *, integer *);
     static logical upper;
     extern /* Subroutine */ int ctrsv_(char *, char *, char *, integer *,
-	    complex *, integer *, complex *, integer *), slabad_(real *, real *);
-    extern integer icamax_(integer *, complex *, integer *);
-    extern /* Complex */ VOID cladiv_(complex *, complex *, complex *);
+	    singlecomplex *, integer *, singlecomplex *, integer *), slabad_(real *, real *);
+    extern integer icamax_(integer *, singlecomplex *, integer *);
+    extern /* Complex */ VOID cladiv_(singlecomplex *, singlecomplex *, singlecomplex *);
     extern doublereal slamch_(char *);
-    extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer
+    extern /* Subroutine */ int csscal_(integer *, real *, singlecomplex *, integer
 	    *), xerbla_(char *, integer *);
     static real bignum;
     extern integer isamax_(integer *, real *, integer *);
-    extern doublereal scasum_(integer *, complex *, integer *);
+    extern doublereal scasum_(integer *, singlecomplex *, integer *);
     static logical notran;
     static integer jfirst;
     static real smlnum;
@@ -22860,26 +22860,26 @@ L185:
 
 } /* clatrs_ */
 
-/* Subroutine */ int clauu2_(char *uplo, integer *n, complex *a, integer *lda,
+/* Subroutine */ int clauu2_(char *uplo, integer *n, singlecomplex *a, integer *lda,
 	 integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3;
     real r__1;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__;
     static real aii;
-    extern /* Complex */ VOID cdotc_(complex *, integer *, complex *, integer
-	    *, complex *, integer *);
+    extern /* Complex */ VOID cdotc_(singlecomplex *, integer *, singlecomplex *, integer
+	    *, singlecomplex *, integer *);
     extern logical lsame_(char *, char *);
-    extern /* Subroutine */ int cgemv_(char *, integer *, integer *, complex *
-	    , complex *, integer *, complex *, integer *, complex *, complex *
+    extern /* Subroutine */ int cgemv_(char *, integer *, integer *, singlecomplex *
+	    , singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *
 	    , integer *);
     static logical upper;
-    extern /* Subroutine */ int clacgv_(integer *, complex *, integer *),
-	    csscal_(integer *, real *, complex *, integer *), xerbla_(char *,
+    extern /* Subroutine */ int clacgv_(integer *, singlecomplex *, integer *),
+	    csscal_(integer *, real *, singlecomplex *, integer *), xerbla_(char *,
 	    integer *);
 
 
@@ -23032,7 +23032,7 @@ L185:
 
 } /* clauu2_ */
 
-/* Subroutine */ int clauum_(char *uplo, integer *n, complex *a, integer *lda,
+/* Subroutine */ int clauum_(char *uplo, integer *n, singlecomplex *a, integer *lda,
 	 integer *info)
 {
     /* System generated locals */
@@ -23041,16 +23041,16 @@ L185:
     /* Local variables */
     static integer i__, ib, nb;
     extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *,
-	    integer *, complex *, complex *, integer *, complex *, integer *,
-	    complex *, complex *, integer *), cherk_(char *,
-	    char *, integer *, integer *, real *, complex *, integer *, real *
-	    , complex *, integer *);
+	    integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, singlecomplex *, integer *), cherk_(char *,
+	    char *, integer *, integer *, real *, singlecomplex *, integer *, real *
+	    , singlecomplex *, integer *);
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int ctrmm_(char *, char *, char *, char *,
-	    integer *, integer *, complex *, complex *, integer *, complex *,
+	    integer *, integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *,
 	    integer *);
     static logical upper;
-    extern /* Subroutine */ int clauu2_(char *, integer *, complex *, integer
+    extern /* Subroutine */ int clauu2_(char *, integer *, singlecomplex *, integer
 	    *, integer *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -23217,26 +23217,26 @@ L185:
 
 } /* clauum_ */
 
-/* Subroutine */ int cpotf2_(char *uplo, integer *n, complex *a, integer *lda,
+/* Subroutine */ int cpotf2_(char *uplo, integer *n, singlecomplex *a, integer *lda,
 	 integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3;
     real r__1;
-    complex q__1, q__2;
+    singlecomplex q__1, q__2;
 
     /* Local variables */
     static integer j;
     static real ajj;
-    extern /* Complex */ VOID cdotc_(complex *, integer *, complex *, integer
-	    *, complex *, integer *);
+    extern /* Complex */ VOID cdotc_(singlecomplex *, integer *, singlecomplex *, integer
+	    *, singlecomplex *, integer *);
     extern logical lsame_(char *, char *);
-    extern /* Subroutine */ int cgemv_(char *, integer *, integer *, complex *
-	    , complex *, integer *, complex *, integer *, complex *, complex *
+    extern /* Subroutine */ int cgemv_(char *, integer *, integer *, singlecomplex *
+	    , singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *
 	    , integer *);
     static logical upper;
-    extern /* Subroutine */ int clacgv_(integer *, complex *, integer *),
-	    csscal_(integer *, real *, complex *, integer *), xerbla_(char *,
+    extern /* Subroutine */ int clacgv_(integer *, singlecomplex *, integer *),
+	    csscal_(integer *, real *, singlecomplex *, integer *), xerbla_(char *,
 	    integer *);
     extern logical sisnan_(real *);
 
@@ -23428,26 +23428,26 @@ L40:
 
 } /* cpotf2_ */
 
-/* Subroutine */ int cpotrf_(char *uplo, integer *n, complex *a, integer *lda,
+/* Subroutine */ int cpotrf_(char *uplo, integer *n, singlecomplex *a, integer *lda,
 	 integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3, i__4;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer j, jb, nb;
     extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *,
-	    integer *, complex *, complex *, integer *, complex *, integer *,
-	    complex *, complex *, integer *), cherk_(char *,
-	    char *, integer *, integer *, real *, complex *, integer *, real *
-	    , complex *, integer *);
+	    integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, singlecomplex *, integer *), cherk_(char *,
+	    char *, integer *, integer *, real *, singlecomplex *, integer *, real *
+	    , singlecomplex *, integer *);
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int ctrsm_(char *, char *, char *, char *,
-	    integer *, integer *, complex *, complex *, integer *, complex *,
+	    integer *, integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *,
 	    integer *);
     static logical upper;
-    extern /* Subroutine */ int cpotf2_(char *, integer *, complex *, integer
+    extern /* Subroutine */ int cpotf2_(char *, integer *, singlecomplex *, integer
 	    *, integer *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -23649,7 +23649,7 @@ L40:
 
 } /* cpotrf_ */
 
-/* Subroutine */ int cpotri_(char *uplo, integer *n, complex *a, integer *lda,
+/* Subroutine */ int cpotri_(char *uplo, integer *n, singlecomplex *a, integer *lda,
 	 integer *info)
 {
     /* System generated locals */
@@ -23658,8 +23658,8 @@ L40:
     /* Local variables */
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int xerbla_(char *, integer *), clauum_(
-	    char *, integer *, complex *, integer *, integer *),
-	    ctrtri_(char *, char *, integer *, complex *, integer *, integer *
+	    char *, integer *, singlecomplex *, integer *, integer *),
+	    ctrtri_(char *, char *, integer *, singlecomplex *, integer *, integer *
 	    );
 
 
@@ -23752,8 +23752,8 @@ L40:
 
 } /* cpotri_ */
 
-/* Subroutine */ int cpotrs_(char *uplo, integer *n, integer *nrhs, complex *
-	a, integer *lda, complex *b, integer *ldb, integer *info)
+/* Subroutine */ int cpotrs_(char *uplo, integer *n, integer *nrhs, singlecomplex *
+	a, integer *lda, singlecomplex *b, integer *ldb, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, b_dim1, b_offset, i__1;
@@ -23761,7 +23761,7 @@ L40:
     /* Local variables */
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int ctrsm_(char *, char *, char *, char *,
-	    integer *, integer *, complex *, complex *, integer *, complex *,
+	    integer *, integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *,
 	    integer *);
     static logical upper;
     extern /* Subroutine */ int xerbla_(char *, integer *);
@@ -23891,16 +23891,16 @@ L40:
 
 } /* cpotrs_ */
 
-/* Subroutine */ int crot_(integer *n, complex *cx, integer *incx, complex *
-	cy, integer *incy, real *c__, complex *s)
+/* Subroutine */ int crot_(integer *n, singlecomplex *cx, integer *incx, singlecomplex *
+	cy, integer *incy, real *c__, singlecomplex *s)
 {
     /* System generated locals */
     integer i__1, i__2, i__3, i__4;
-    complex q__1, q__2, q__3, q__4;
+    singlecomplex q__1, q__2, q__3, q__4;
 
     /* Local variables */
     static integer i__, ix, iy;
-    static complex stemp;
+    static singlecomplex stemp;
 
 
 /*
@@ -24024,7 +24024,7 @@ L20:
 } /* crot_ */
 
 /* Subroutine */ int cstedc_(char *compz, integer *n, real *d__, real *e,
-	complex *z__, integer *ldz, complex *work, integer *lwork, real *
+	singlecomplex *z__, integer *ldz, singlecomplex *work, integer *lwork, real *
 	rwork, integer *lrwork, integer *iwork, integer *liwork, integer *
 	info)
 {
@@ -24038,18 +24038,18 @@ L20:
     static integer ii, ll, lgn;
     static real eps, tiny;
     extern logical lsame_(char *, char *);
-    extern /* Subroutine */ int cswap_(integer *, complex *, integer *,
-	    complex *, integer *);
+    extern /* Subroutine */ int cswap_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *);
     static integer lwmin;
     extern /* Subroutine */ int claed0_(integer *, integer *, real *, real *,
-	    complex *, integer *, complex *, integer *, real *, integer *,
+	    singlecomplex *, integer *, singlecomplex *, integer *, real *, integer *,
 	    integer *);
     static integer start;
-    extern /* Subroutine */ int clacrm_(integer *, integer *, complex *,
-	    integer *, real *, integer *, complex *, integer *, real *);
+    extern /* Subroutine */ int clacrm_(integer *, integer *, singlecomplex *,
+	    integer *, real *, integer *, singlecomplex *, integer *, real *);
     extern doublereal slamch_(char *);
-    extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex
-	    *, integer *, complex *, integer *), xerbla_(char *,
+    extern /* Subroutine */ int clacpy_(char *, integer *, integer *, singlecomplex
+	    *, integer *, singlecomplex *, integer *), xerbla_(char *,
 	    integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -24060,7 +24060,7 @@ L20:
 	    real *, integer *);
     static integer liwmin, icompz;
     extern /* Subroutine */ int csteqr_(char *, integer *, real *, real *,
-	    complex *, integer *, real *, integer *);
+	    singlecomplex *, integer *, real *, integer *);
     static real orgnrm;
     extern doublereal slanst_(char *, integer *, real *, real *);
     extern /* Subroutine */ int ssterf_(integer *, real *, real *, integer *);
@@ -24491,7 +24491,7 @@ L70:
 } /* cstedc_ */
 
 /* Subroutine */ int csteqr_(char *compz, integer *n, real *d__, real *e,
-	complex *z__, integer *ldz, real *work, integer *info)
+	singlecomplex *z__, integer *ldz, real *work, integer *info)
 {
     /* System generated locals */
     integer z_dim1, z_offset, i__1, i__2;
@@ -24510,18 +24510,18 @@ L70:
 	    ;
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int clasr_(char *, char *, char *, integer *,
-	    integer *, real *, real *, complex *, integer *);
+	    integer *, real *, real *, singlecomplex *, integer *);
     static real anorm;
-    extern /* Subroutine */ int cswap_(integer *, complex *, integer *,
-	    complex *, integer *);
+    extern /* Subroutine */ int cswap_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *);
     static integer lendm1, lendp1;
     extern /* Subroutine */ int slaev2_(real *, real *, real *, real *, real *
 	    , real *, real *);
     extern doublereal slapy2_(real *, real *);
     static integer iscale;
     extern doublereal slamch_(char *);
-    extern /* Subroutine */ int claset_(char *, integer *, integer *, complex
-	    *, complex *, complex *, integer *);
+    extern /* Subroutine */ int claset_(char *, integer *, integer *, singlecomplex
+	    *, singlecomplex *, singlecomplex *, integer *);
     static real safmin;
     extern /* Subroutine */ int xerbla_(char *, integer *);
     static real safmax;
@@ -25087,15 +25087,15 @@ L160:
 } /* csteqr_ */
 
 /* Subroutine */ int ctrevc_(char *side, char *howmny, logical *select,
-	integer *n, complex *t, integer *ldt, complex *vl, integer *ldvl,
-	complex *vr, integer *ldvr, integer *mm, integer *m, complex *work,
+	integer *n, singlecomplex *t, integer *ldt, singlecomplex *vl, integer *ldvl,
+	singlecomplex *vr, integer *ldvr, integer *mm, integer *m, singlecomplex *work,
 	real *rwork, integer *info)
 {
     /* System generated locals */
     integer t_dim1, t_offset, vl_dim1, vl_offset, vr_dim1, vr_offset, i__1,
 	    i__2, i__3, i__4, i__5;
     real r__1, r__2, r__3;
-    complex q__1, q__2;
+    singlecomplex q__1, q__2;
 
     /* Local variables */
     static integer i__, j, k, ii, ki, is;
@@ -25105,21 +25105,21 @@ L160:
     static logical over;
     static real scale;
     extern logical lsame_(char *, char *);
-    extern /* Subroutine */ int cgemv_(char *, integer *, integer *, complex *
-	    , complex *, integer *, complex *, integer *, complex *, complex *
+    extern /* Subroutine */ int cgemv_(char *, integer *, integer *, singlecomplex *
+	    , singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *
 	    , integer *);
     static real remax;
-    extern /* Subroutine */ int ccopy_(integer *, complex *, integer *,
-	    complex *, integer *);
+    extern /* Subroutine */ int ccopy_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *);
     static logical leftv, bothv, somev;
     extern /* Subroutine */ int slabad_(real *, real *);
-    extern integer icamax_(integer *, complex *, integer *);
+    extern integer icamax_(integer *, singlecomplex *, integer *);
     extern doublereal slamch_(char *);
-    extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer
+    extern /* Subroutine */ int csscal_(integer *, real *, singlecomplex *, integer
 	    *), xerbla_(char *, integer *), clatrs_(char *, char *,
-	    char *, char *, integer *, complex *, integer *, complex *, real *
+	    char *, char *, integer *, singlecomplex *, integer *, singlecomplex *, real *
 	    , real *, integer *);
-    extern doublereal scasum_(integer *, complex *, integer *);
+    extern doublereal scasum_(integer *, singlecomplex *, integer *);
     static logical rightv;
     static real smlnum;
 
@@ -25587,24 +25587,24 @@ L130:
 
 } /* ctrevc_ */
 
-/* Subroutine */ int ctrexc_(char *compq, integer *n, complex *t, integer *
-	ldt, complex *q, integer *ldq, integer *ifst, integer *ilst, integer *
+/* Subroutine */ int ctrexc_(char *compq, integer *n, singlecomplex *t, integer *
+	ldt, singlecomplex *q, integer *ldq, integer *ifst, integer *ilst, integer *
 	info)
 {
     /* System generated locals */
     integer q_dim1, q_offset, t_dim1, t_offset, i__1, i__2, i__3;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer k, m1, m2, m3;
     static real cs;
-    static complex t11, t22, sn, temp;
-    extern /* Subroutine */ int crot_(integer *, complex *, integer *,
-	    complex *, integer *, real *, complex *);
+    static singlecomplex t11, t22, sn, temp;
+    extern /* Subroutine */ int crot_(integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, real *, singlecomplex *);
     extern logical lsame_(char *, char *);
     static logical wantq;
-    extern /* Subroutine */ int clartg_(complex *, complex *, real *, complex
-	    *, complex *), xerbla_(char *, integer *);
+    extern /* Subroutine */ int clartg_(singlecomplex *, singlecomplex *, real *, singlecomplex
+	    *, singlecomplex *), xerbla_(char *, integer *);
 
 
 /*
@@ -25771,22 +25771,22 @@ L130:
 
 } /* ctrexc_ */
 
-/* Subroutine */ int ctrti2_(char *uplo, char *diag, integer *n, complex *a,
+/* Subroutine */ int ctrti2_(char *uplo, char *diag, integer *n, singlecomplex *a,
 	integer *lda, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer j;
-    static complex ajj;
-    extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
+    static singlecomplex ajj;
+    extern /* Subroutine */ int cscal_(integer *, singlecomplex *, singlecomplex *,
 	    integer *);
     extern logical lsame_(char *, char *);
     static logical upper;
     extern /* Subroutine */ int ctrmv_(char *, char *, char *, integer *,
-	    complex *, integer *, complex *, integer *), xerbla_(char *, integer *);
+	    singlecomplex *, integer *, singlecomplex *, integer *), xerbla_(char *, integer *);
     static logical nounit;
 
 
@@ -25800,7 +25800,7 @@ L130:
     Purpose
     =======
 
-    CTRTI2 computes the inverse of a complex upper or lower triangular
+    CTRTI2 computes the inverse of a singlecomplex upper or lower triangular
     matrix.
 
     This is the Level 2 BLAS version of the algorithm.
@@ -25935,25 +25935,25 @@ L130:
 
 } /* ctrti2_ */
 
-/* Subroutine */ int ctrtri_(char *uplo, char *diag, integer *n, complex *a,
+/* Subroutine */ int ctrtri_(char *uplo, char *diag, integer *n, singlecomplex *a,
 	integer *lda, integer *info)
 {
     /* System generated locals */
     address a__1[2];
     integer a_dim1, a_offset, i__1, i__2, i__3[2], i__4, i__5;
-    complex q__1;
+    singlecomplex q__1;
     char ch__1[2];
 
     /* Local variables */
     static integer j, jb, nb, nn;
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int ctrmm_(char *, char *, char *, char *,
-	    integer *, integer *, complex *, complex *, integer *, complex *,
+	    integer *, integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *,
 	    integer *), ctrsm_(char *, char *,
-	     char *, char *, integer *, integer *, complex *, complex *,
-	    integer *, complex *, integer *);
+	     char *, char *, integer *, integer *, singlecomplex *, singlecomplex *,
+	    integer *, singlecomplex *, integer *);
     static logical upper;
-    extern /* Subroutine */ int ctrti2_(char *, char *, integer *, complex *,
+    extern /* Subroutine */ int ctrti2_(char *, char *, integer *, singlecomplex *,
 	    integer *, integer *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -26146,18 +26146,18 @@ L130:
 
 } /* ctrtri_ */
 
-/* Subroutine */ int cung2r_(integer *m, integer *n, integer *k, complex *a,
-	integer *lda, complex *tau, complex *work, integer *info)
+/* Subroutine */ int cung2r_(integer *m, integer *n, integer *k, singlecomplex *a,
+	integer *lda, singlecomplex *tau, singlecomplex *work, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, j, l;
-    extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
-	    integer *), clarf_(char *, integer *, integer *, complex *,
-	    integer *, complex *, complex *, integer *, complex *),
+    extern /* Subroutine */ int cscal_(integer *, singlecomplex *, singlecomplex *,
+	    integer *), clarf_(char *, integer *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *),
 	    xerbla_(char *, integer *);
 
 
@@ -26303,7 +26303,7 @@ L130:
 } /* cung2r_ */
 
 /* Subroutine */ int cungbr_(char *vect, integer *m, integer *n, integer *k,
-	complex *a, integer *lda, complex *tau, complex *work, integer *lwork,
+	singlecomplex *a, integer *lda, singlecomplex *tau, singlecomplex *work, integer *lwork,
 	 integer *info)
 {
     /* System generated locals */
@@ -26318,9 +26318,9 @@ L130:
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
     extern /* Subroutine */ int cunglq_(integer *, integer *, integer *,
-	    complex *, integer *, complex *, complex *, integer *, integer *),
-	     cungqr_(integer *, integer *, integer *, complex *, integer *,
-	    complex *, complex *, integer *, integer *);
+	    singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *, integer *),
+	     cungqr_(integer *, integer *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, singlecomplex *, integer *, integer *);
     static integer lwkopt;
     static logical lquery;
 
@@ -26590,8 +26590,8 @@ L130:
 
 } /* cungbr_ */
 
-/* Subroutine */ int cunghr_(integer *n, integer *ilo, integer *ihi, complex *
-	a, integer *lda, complex *tau, complex *work, integer *lwork, integer
+/* Subroutine */ int cunghr_(integer *n, integer *ilo, integer *ihi, singlecomplex *
+	a, integer *lda, singlecomplex *tau, singlecomplex *work, integer *lwork, integer
 	*info)
 {
     /* System generated locals */
@@ -26603,7 +26603,7 @@ L130:
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
     extern /* Subroutine */ int cungqr_(integer *, integer *, integer *,
-	    complex *, integer *, complex *, complex *, integer *, integer *);
+	    singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *, integer *);
     static integer lwkopt;
     static logical lquery;
 
@@ -26785,19 +26785,19 @@ L130:
 
 } /* cunghr_ */
 
-/* Subroutine */ int cungl2_(integer *m, integer *n, integer *k, complex *a,
-	integer *lda, complex *tau, complex *work, integer *info)
+/* Subroutine */ int cungl2_(integer *m, integer *n, integer *k, singlecomplex *a,
+	integer *lda, singlecomplex *tau, singlecomplex *work, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, i__1, i__2, i__3;
-    complex q__1, q__2;
+    singlecomplex q__1, q__2;
 
     /* Local variables */
     static integer i__, j, l;
-    extern /* Subroutine */ int cscal_(integer *, complex *, complex *,
-	    integer *), clarf_(char *, integer *, integer *, complex *,
-	    integer *, complex *, complex *, integer *, complex *),
-	    clacgv_(integer *, complex *, integer *), xerbla_(char *, integer
+    extern /* Subroutine */ int cscal_(integer *, singlecomplex *, singlecomplex *,
+	    integer *), clarf_(char *, integer *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *),
+	    clacgv_(integer *, singlecomplex *, integer *), xerbla_(char *, integer
 	    *);
 
 
@@ -26951,8 +26951,8 @@ L130:
 
 } /* cungl2_ */
 
-/* Subroutine */ int cunglq_(integer *m, integer *n, integer *k, complex *a,
-	integer *lda, complex *tau, complex *work, integer *lwork, integer *
+/* Subroutine */ int cunglq_(integer *m, integer *n, integer *k, singlecomplex *a,
+	integer *lda, singlecomplex *tau, singlecomplex *work, integer *lwork, integer *
 	info)
 {
     /* System generated locals */
@@ -26961,12 +26961,12 @@ L130:
     /* Local variables */
     static integer i__, j, l, ib, nb, ki, kk, nx, iws, nbmin, iinfo;
     extern /* Subroutine */ int cungl2_(integer *, integer *, integer *,
-	    complex *, integer *, complex *, complex *, integer *), clarfb_(
+	    singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *), clarfb_(
 	    char *, char *, char *, char *, integer *, integer *, integer *,
-	    complex *, integer *, complex *, integer *, complex *, integer *,
-	    complex *, integer *), clarft_(
-	    char *, char *, integer *, integer *, complex *, integer *,
-	    complex *, complex *, integer *), xerbla_(char *,
+	    singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *), clarft_(
+	    char *, char *, integer *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, singlecomplex *, integer *), xerbla_(char *,
 	    integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -27212,8 +27212,8 @@ L130:
 
 } /* cunglq_ */
 
-/* Subroutine */ int cungqr_(integer *m, integer *n, integer *k, complex *a,
-	integer *lda, complex *tau, complex *work, integer *lwork, integer *
+/* Subroutine */ int cungqr_(integer *m, integer *n, integer *k, singlecomplex *a,
+	integer *lda, singlecomplex *tau, singlecomplex *work, integer *lwork, integer *
 	info)
 {
     /* System generated locals */
@@ -27222,12 +27222,12 @@ L130:
     /* Local variables */
     static integer i__, j, l, ib, nb, ki, kk, nx, iws, nbmin, iinfo;
     extern /* Subroutine */ int cung2r_(integer *, integer *, integer *,
-	    complex *, integer *, complex *, complex *, integer *), clarfb_(
+	    singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *), clarfb_(
 	    char *, char *, char *, char *, integer *, integer *, integer *,
-	    complex *, integer *, complex *, integer *, complex *, integer *,
-	    complex *, integer *), clarft_(
-	    char *, char *, integer *, integer *, complex *, integer *,
-	    complex *, complex *, integer *), xerbla_(char *,
+	    singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, integer *), clarft_(
+	    char *, char *, integer *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, singlecomplex *, integer *), xerbla_(char *,
 	    integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -27475,20 +27475,20 @@ L130:
 } /* cungqr_ */
 
 /* Subroutine */ int cunm2l_(char *side, char *trans, integer *m, integer *n,
-	integer *k, complex *a, integer *lda, complex *tau, complex *c__,
-	integer *ldc, complex *work, integer *info)
+	integer *k, singlecomplex *a, integer *lda, singlecomplex *tau, singlecomplex *c__,
+	integer *ldc, singlecomplex *work, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, i1, i2, i3, mi, ni, nq;
-    static complex aii;
+    static singlecomplex aii;
     static logical left;
-    static complex taui;
-    extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex *
-	    , integer *, complex *, complex *, integer *, complex *);
+    static singlecomplex taui;
+    extern /* Subroutine */ int clarf_(char *, integer *, integer *, singlecomplex *
+	    , integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *);
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int xerbla_(char *, integer *);
     static logical notran;
@@ -27687,20 +27687,20 @@ L130:
 } /* cunm2l_ */
 
 /* Subroutine */ int cunm2r_(char *side, char *trans, integer *m, integer *n,
-	integer *k, complex *a, integer *lda, complex *tau, complex *c__,
-	integer *ldc, complex *work, integer *info)
+	integer *k, singlecomplex *a, integer *lda, singlecomplex *tau, singlecomplex *c__,
+	integer *ldc, singlecomplex *work, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, i1, i2, i3, ic, jc, mi, ni, nq;
-    static complex aii;
+    static singlecomplex aii;
     static logical left;
-    static complex taui;
-    extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex *
-	    , integer *, complex *, complex *, integer *, complex *);
+    static singlecomplex taui;
+    extern /* Subroutine */ int clarf_(char *, integer *, integer *, singlecomplex *
+	    , integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *);
     extern logical lsame_(char *, char *);
     extern /* Subroutine */ int xerbla_(char *, integer *);
     static logical notran;
@@ -27903,8 +27903,8 @@ L130:
 } /* cunm2r_ */
 
 /* Subroutine */ int cunmbr_(char *vect, char *side, char *trans, integer *m,
-	integer *n, integer *k, complex *a, integer *lda, complex *tau,
-	complex *c__, integer *ldc, complex *work, integer *lwork, integer *
+	integer *n, integer *k, singlecomplex *a, integer *lda, singlecomplex *tau,
+	singlecomplex *c__, integer *ldc, singlecomplex *work, integer *lwork, integer *
 	info)
 {
     /* System generated locals */
@@ -27921,12 +27921,12 @@ L130:
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
     extern /* Subroutine */ int cunmlq_(char *, char *, integer *, integer *,
-	    integer *, complex *, integer *, complex *, complex *, integer *,
-	    complex *, integer *, integer *);
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, integer *);
     static logical notran;
     extern /* Subroutine */ int cunmqr_(char *, char *, integer *, integer *,
-	    integer *, complex *, integer *, complex *, complex *, integer *,
-	    complex *, integer *, integer *);
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, integer *);
     static logical applyq;
     static char transt[1];
     static integer lwkopt;
@@ -28243,8 +28243,8 @@ L130:
 } /* cunmbr_ */
 
 /* Subroutine */ int cunmhr_(char *side, char *trans, integer *m, integer *n,
-	integer *ilo, integer *ihi, complex *a, integer *lda, complex *tau,
-	complex *c__, integer *ldc, complex *work, integer *lwork, integer *
+	integer *ilo, integer *ihi, singlecomplex *a, integer *lda, singlecomplex *tau,
+	singlecomplex *c__, integer *ldc, singlecomplex *work, integer *lwork, integer *
 	info)
 {
     /* System generated locals */
@@ -28261,8 +28261,8 @@ L130:
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
     extern /* Subroutine */ int cunmqr_(char *, char *, integer *, integer *,
-	    integer *, complex *, integer *, complex *, complex *, integer *,
-	    complex *, integer *, integer *);
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, integer *);
     static integer lwkopt;
     static logical lquery;
 
@@ -28469,22 +28469,22 @@ L130:
 } /* cunmhr_ */
 
 /* Subroutine */ int cunml2_(char *side, char *trans, integer *m, integer *n,
-	integer *k, complex *a, integer *lda, complex *tau, complex *c__,
-	integer *ldc, complex *work, integer *info)
+	integer *k, singlecomplex *a, integer *lda, singlecomplex *tau, singlecomplex *c__,
+	integer *ldc, singlecomplex *work, integer *info)
 {
     /* System generated locals */
     integer a_dim1, a_offset, c_dim1, c_offset, i__1, i__2, i__3;
-    complex q__1;
+    singlecomplex q__1;
 
     /* Local variables */
     static integer i__, i1, i2, i3, ic, jc, mi, ni, nq;
-    static complex aii;
+    static singlecomplex aii;
     static logical left;
-    static complex taui;
-    extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex *
-	    , integer *, complex *, complex *, integer *, complex *);
+    static singlecomplex taui;
+    extern /* Subroutine */ int clarf_(char *, integer *, integer *, singlecomplex *
+	    , integer *, singlecomplex *, singlecomplex *, integer *, singlecomplex *);
     extern logical lsame_(char *, char *);
-    extern /* Subroutine */ int clacgv_(integer *, complex *, integer *),
+    extern /* Subroutine */ int clacgv_(integer *, singlecomplex *, integer *),
 	    xerbla_(char *, integer *);
     static logical notran;
 
@@ -28694,8 +28694,8 @@ L130:
 } /* cunml2_ */
 
 /* Subroutine */ int cunmlq_(char *side, char *trans, integer *m, integer *n,
-	integer *k, complex *a, integer *lda, complex *tau, complex *c__,
-	integer *ldc, complex *work, integer *lwork, integer *info)
+	integer *k, singlecomplex *a, integer *lda, singlecomplex *tau, singlecomplex *c__,
+	integer *ldc, singlecomplex *work, integer *lwork, integer *info)
 {
     /* System generated locals */
     address a__1[2];
@@ -28705,18 +28705,18 @@ L130:
 
     /* Local variables */
     static integer i__;
-    static complex t[4160]	/* was [65][64] */;
+    static singlecomplex t[4160]	/* was [65][64] */;
     static integer i1, i2, i3, ib, ic, jc, nb, mi, ni, nq, nw, iws;
     static logical left;
     extern logical lsame_(char *, char *);
     static integer nbmin, iinfo;
     extern /* Subroutine */ int cunml2_(char *, char *, integer *, integer *,
-	    integer *, complex *, integer *, complex *, complex *, integer *,
-	    complex *, integer *), clarfb_(char *, char *,
-	    char *, char *, integer *, integer *, integer *, complex *,
-	    integer *, complex *, integer *, complex *, integer *, complex *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *), clarfb_(char *, char *,
+	    char *, char *, integer *, integer *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *,
 	    integer *), clarft_(char *, char *
-	    , integer *, integer *, complex *, integer *, complex *, complex *
+	    , integer *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *
 	    , integer *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -28999,8 +28999,8 @@ L130:
 } /* cunmlq_ */
 
 /* Subroutine */ int cunmql_(char *side, char *trans, integer *m, integer *n,
-	integer *k, complex *a, integer *lda, complex *tau, complex *c__,
-	integer *ldc, complex *work, integer *lwork, integer *info)
+	integer *k, singlecomplex *a, integer *lda, singlecomplex *tau, singlecomplex *c__,
+	integer *ldc, singlecomplex *work, integer *lwork, integer *info)
 {
     /* System generated locals */
     address a__1[2];
@@ -29010,18 +29010,18 @@ L130:
 
     /* Local variables */
     static integer i__;
-    static complex t[4160]	/* was [65][64] */;
+    static singlecomplex t[4160]	/* was [65][64] */;
     static integer i1, i2, i3, ib, nb, mi, ni, nq, nw, iws;
     static logical left;
     extern logical lsame_(char *, char *);
     static integer nbmin, iinfo;
     extern /* Subroutine */ int cunm2l_(char *, char *, integer *, integer *,
-	    integer *, complex *, integer *, complex *, complex *, integer *,
-	    complex *, integer *), clarfb_(char *, char *,
-	    char *, char *, integer *, integer *, integer *, complex *,
-	    integer *, complex *, integer *, complex *, integer *, complex *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *), clarfb_(char *, char *,
+	    char *, char *, integer *, integer *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *,
 	    integer *), clarft_(char *, char *
-	    , integer *, integer *, complex *, integer *, complex *, complex *
+	    , integer *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *
 	    , integer *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -29297,8 +29297,8 @@ L130:
 } /* cunmql_ */
 
 /* Subroutine */ int cunmqr_(char *side, char *trans, integer *m, integer *n,
-	integer *k, complex *a, integer *lda, complex *tau, complex *c__,
-	integer *ldc, complex *work, integer *lwork, integer *info)
+	integer *k, singlecomplex *a, integer *lda, singlecomplex *tau, singlecomplex *c__,
+	integer *ldc, singlecomplex *work, integer *lwork, integer *info)
 {
     /* System generated locals */
     address a__1[2];
@@ -29308,18 +29308,18 @@ L130:
 
     /* Local variables */
     static integer i__;
-    static complex t[4160]	/* was [65][64] */;
+    static singlecomplex t[4160]	/* was [65][64] */;
     static integer i1, i2, i3, ib, ic, jc, nb, mi, ni, nq, nw, iws;
     static logical left;
     extern logical lsame_(char *, char *);
     static integer nbmin, iinfo;
     extern /* Subroutine */ int cunm2r_(char *, char *, integer *, integer *,
-	    integer *, complex *, integer *, complex *, complex *, integer *,
-	    complex *, integer *), clarfb_(char *, char *,
-	    char *, char *, integer *, integer *, integer *, complex *,
-	    integer *, complex *, integer *, complex *, integer *, complex *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *), clarfb_(char *, char *,
+	    char *, char *, integer *, integer *, integer *, singlecomplex *,
+	    integer *, singlecomplex *, integer *, singlecomplex *, integer *, singlecomplex *,
 	    integer *), clarft_(char *, char *
-	    , integer *, integer *, complex *, integer *, complex *, complex *
+	    , integer *, integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *
 	    , integer *), xerbla_(char *, integer *);
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
@@ -29595,8 +29595,8 @@ L130:
 } /* cunmqr_ */
 
 /* Subroutine */ int cunmtr_(char *side, char *uplo, char *trans, integer *m,
-	integer *n, complex *a, integer *lda, complex *tau, complex *c__,
-	integer *ldc, complex *work, integer *lwork, integer *info)
+	integer *n, singlecomplex *a, integer *lda, singlecomplex *tau, singlecomplex *c__,
+	integer *ldc, singlecomplex *work, integer *lwork, integer *info)
 {
     /* System generated locals */
     address a__1[2];
@@ -29613,10 +29613,10 @@ L130:
     extern integer ilaenv_(integer *, char *, char *, integer *, integer *,
 	    integer *, integer *, ftnlen, ftnlen);
     extern /* Subroutine */ int cunmql_(char *, char *, integer *, integer *,
-	    integer *, complex *, integer *, complex *, complex *, integer *,
-	    complex *, integer *, integer *), cunmqr_(char *,
-	    char *, integer *, integer *, integer *, complex *, integer *,
-	    complex *, complex *, integer *, complex *, integer *, integer *);
+	    integer *, singlecomplex *, integer *, singlecomplex *, singlecomplex *, integer *,
+	    singlecomplex *, integer *, integer *), cunmqr_(char *,
+	    char *, integer *, integer *, integer *, singlecomplex *, integer *,
+	    singlecomplex *, singlecomplex *, integer *, singlecomplex *, integer *, integer *);
     static integer lwkopt;
     static logical lquery;
 
