summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BLAS/SRC/caxpy.f2
-rw-r--r--BLAS/SRC/ccopy.f2
-rw-r--r--BLAS/SRC/cdotc.f2
-rw-r--r--BLAS/SRC/cdotu.f2
-rw-r--r--BLAS/SRC/cgbmv.f3
-rw-r--r--BLAS/SRC/cgemm.f3
-rw-r--r--BLAS/SRC/cgemv.f3
-rw-r--r--BLAS/SRC/cgerc.f3
-rw-r--r--BLAS/SRC/cgeru.f3
-rw-r--r--BLAS/SRC/chbmv.f3
-rw-r--r--BLAS/SRC/chemm.f3
-rw-r--r--BLAS/SRC/chemv.f3
-rw-r--r--BLAS/SRC/cher.f3
-rw-r--r--BLAS/SRC/cher2.f3
-rw-r--r--BLAS/SRC/cher2k.f3
-rw-r--r--BLAS/SRC/cherk.f3
-rw-r--r--BLAS/SRC/chpmv.f3
-rw-r--r--BLAS/SRC/chpr.f3
-rw-r--r--BLAS/SRC/chpr2.f3
-rw-r--r--BLAS/SRC/crotg.f2
-rw-r--r--BLAS/SRC/cscal.f7
-rw-r--r--BLAS/SRC/csrot.f2
-rw-r--r--BLAS/SRC/csscal.f7
-rw-r--r--BLAS/SRC/cswap.f7
-rw-r--r--BLAS/SRC/csymm.f3
-rw-r--r--BLAS/SRC/csyr2k.f3
-rw-r--r--BLAS/SRC/csyrk.f3
-rw-r--r--BLAS/SRC/ctbmv.f3
-rw-r--r--BLAS/SRC/ctbsv.f3
-rw-r--r--BLAS/SRC/ctpmv.f3
-rw-r--r--BLAS/SRC/ctpsv.f3
-rw-r--r--BLAS/SRC/ctrmm.f3
-rw-r--r--BLAS/SRC/ctrmv.f3
-rw-r--r--BLAS/SRC/ctrsm.f3
-rw-r--r--BLAS/SRC/ctrsv.f3
-rw-r--r--BLAS/SRC/dasum.f7
-rw-r--r--BLAS/SRC/daxpy.f7
-rw-r--r--BLAS/SRC/dcabs1.f2
-rw-r--r--BLAS/SRC/dcopy.f7
-rw-r--r--BLAS/SRC/ddot.f7
-rw-r--r--BLAS/SRC/dgbmv.f4
-rw-r--r--BLAS/SRC/dgemm.f3
-rw-r--r--BLAS/SRC/dgemv.f3
-rw-r--r--BLAS/SRC/dger.f3
-rw-r--r--BLAS/SRC/dnrm2.f3
-rw-r--r--BLAS/SRC/drot.f7
-rw-r--r--BLAS/SRC/drotg.f7
-rw-r--r--BLAS/SRC/dsbmv.f1
-rw-r--r--BLAS/SRC/dscal.f9
-rw-r--r--BLAS/SRC/dsdot.f5
-rw-r--r--BLAS/SRC/dspmv.f3
-rw-r--r--BLAS/SRC/dspr.f3
-rw-r--r--BLAS/SRC/dspr2.f3
-rw-r--r--BLAS/SRC/dswap.f5
-rw-r--r--BLAS/SRC/dsymm.f3
-rw-r--r--BLAS/SRC/dsymv.f3
-rw-r--r--BLAS/SRC/dsyr.f3
-rw-r--r--BLAS/SRC/dsyr2.f3
-rw-r--r--BLAS/SRC/dsyr2k.f3
-rw-r--r--BLAS/SRC/dsyrk.f3
-rw-r--r--BLAS/SRC/dtbmv.f3
-rw-r--r--BLAS/SRC/dtbsv.f3
-rw-r--r--BLAS/SRC/dtpmv.f3
-rw-r--r--BLAS/SRC/dtpsv.f3
-rw-r--r--BLAS/SRC/dtrmm.f3
-rw-r--r--BLAS/SRC/dtrmv.f3
-rw-r--r--BLAS/SRC/dtrsm.f3
-rw-r--r--BLAS/SRC/dtrsv.f1
-rw-r--r--BLAS/SRC/dzasum.f7
-rw-r--r--BLAS/SRC/dznrm2.f3
-rw-r--r--BLAS/SRC/icamax.f7
-rw-r--r--BLAS/SRC/idamax.f7
-rw-r--r--BLAS/SRC/isamax.f7
-rw-r--r--BLAS/SRC/izamax.f7
-rw-r--r--BLAS/SRC/sasum.f8
-rw-r--r--BLAS/SRC/saxpy.f5
-rw-r--r--BLAS/SRC/scabs1.f2
-rw-r--r--BLAS/SRC/scasum.f7
-rw-r--r--BLAS/SRC/scnrm2.f4
-rw-r--r--BLAS/SRC/scopy.f7
-rw-r--r--BLAS/SRC/sdot.f8
-rw-r--r--BLAS/SRC/sdsdot.f5
-rw-r--r--BLAS/SRC/sgbmv.f4
-rw-r--r--BLAS/SRC/sgemm.f3
-rw-r--r--BLAS/SRC/sgemv.f3
-rw-r--r--BLAS/SRC/sger.f3
-rw-r--r--BLAS/SRC/snrm2.f1
-rw-r--r--BLAS/SRC/srot.f2
-rw-r--r--BLAS/SRC/srotg.f7
-rw-r--r--BLAS/SRC/ssbmv.f3
-rw-r--r--BLAS/SRC/sscal.f5
-rw-r--r--BLAS/SRC/sspmv.f3
-rw-r--r--BLAS/SRC/sspr.f3
-rw-r--r--BLAS/SRC/sspr2.f3
-rw-r--r--BLAS/SRC/sswap.f5
-rw-r--r--BLAS/SRC/ssymm.f3
-rw-r--r--BLAS/SRC/ssymv.f3
-rw-r--r--BLAS/SRC/ssyr.f3
-rw-r--r--BLAS/SRC/ssyr2.f3
-rw-r--r--BLAS/SRC/ssyr2k.f3
-rw-r--r--BLAS/SRC/ssyrk.f3
-rw-r--r--BLAS/SRC/stbmv.f3
-rw-r--r--BLAS/SRC/stbsv.f3
-rw-r--r--BLAS/SRC/stpmv.f3
-rw-r--r--BLAS/SRC/stpsv.f3
-rw-r--r--BLAS/SRC/strmm.f3
-rw-r--r--BLAS/SRC/strmv.f3
-rw-r--r--BLAS/SRC/strsm.f3
-rw-r--r--BLAS/SRC/strsv.f3
-rw-r--r--BLAS/SRC/xerbla_array.f114
-rw-r--r--BLAS/SRC/zaxpy.f9
-rw-r--r--BLAS/SRC/zcopy.f7
-rw-r--r--BLAS/SRC/zdotc.f2
-rw-r--r--BLAS/SRC/zdotu.f2
-rw-r--r--BLAS/SRC/zdscal.f7
-rw-r--r--BLAS/SRC/zgbmv.f3
-rw-r--r--BLAS/SRC/zgemm.f3
-rw-r--r--BLAS/SRC/zgemv.f3
-rw-r--r--BLAS/SRC/zgerc.f3
-rw-r--r--BLAS/SRC/zgeru.f3
-rw-r--r--BLAS/SRC/zhbmv.f3
-rw-r--r--BLAS/SRC/zhemm.f3
-rw-r--r--BLAS/SRC/zhemv.f3
-rw-r--r--BLAS/SRC/zher.f3
-rw-r--r--BLAS/SRC/zher2.f3
-rw-r--r--BLAS/SRC/zher2k.f3
-rw-r--r--BLAS/SRC/zherk.f3
-rw-r--r--BLAS/SRC/zhpmv.f3
-rw-r--r--BLAS/SRC/zhpr.f3
-rw-r--r--BLAS/SRC/zhpr2.f3
-rw-r--r--BLAS/SRC/zrotg.f4
-rw-r--r--BLAS/SRC/zscal.f7
-rw-r--r--BLAS/SRC/zswap.f7
-rw-r--r--BLAS/SRC/zsymm.f3
-rw-r--r--BLAS/SRC/zsyr2k.f3
-rw-r--r--BLAS/SRC/zsyrk.f3
-rw-r--r--BLAS/SRC/ztbmv.f3
-rw-r--r--BLAS/SRC/ztbsv.f3
-rw-r--r--BLAS/SRC/ztpmv.f3
-rw-r--r--BLAS/SRC/ztpsv.f3
-rw-r--r--BLAS/SRC/ztrmm.f3
-rw-r--r--BLAS/SRC/ztrmv.f3
-rw-r--r--BLAS/SRC/ztrsm.f3
-rw-r--r--BLAS/SRC/ztrsv.f3
-rw-r--r--SRC/cla_gbrfsx_extended.f10
-rw-r--r--SRC/cla_gbrpvgrw.f8
-rw-r--r--SRC/cla_gerfsx_extended.f8
-rw-r--r--SRC/cla_herfsx_extended.f8
-rw-r--r--SRC/cla_herpvgrw.f8
-rw-r--r--SRC/cla_porfsx_extended.f8
-rw-r--r--SRC/cla_porpvgrw.f8
-rw-r--r--SRC/cla_rpvgrw.f8
-rw-r--r--SRC/cla_syrfsx_extended.f8
-rw-r--r--SRC/cla_syrpvgrw.f8
-rw-r--r--SRC/ctgsja.f2
-rw-r--r--SRC/dgejsv.f389
-rw-r--r--SRC/dggesx.f2
-rw-r--r--SRC/dgsvj0.f2
-rw-r--r--SRC/dgsvj1.f2
-rw-r--r--SRC/dla_gbrfsx_extended.f8
-rw-r--r--SRC/dla_gbrpvgrw.f8
-rw-r--r--SRC/dla_gerfsx_extended.f8
-rw-r--r--SRC/dla_porfsx_extended.f8
-rw-r--r--SRC/dla_porpvgrw.f8
-rw-r--r--SRC/dla_rpvgrw.f8
-rw-r--r--SRC/dla_syrfsx_extended.f8
-rw-r--r--SRC/dla_syrpvgrw.f8
-rw-r--r--SRC/dtgsja.f2
-rw-r--r--SRC/sgejsv.f384
-rw-r--r--SRC/sggesx.f2
-rw-r--r--SRC/sgsvj0.f2
-rw-r--r--SRC/sgsvj1.f2
-rw-r--r--SRC/sla_gbrfsx_extended.f8
-rw-r--r--SRC/sla_gbrpvgrw.f8
-rw-r--r--SRC/sla_gerfsx_extended.f8
-rw-r--r--SRC/sla_porfsx_extended.f8
-rw-r--r--SRC/sla_porpvgrw.f8
-rw-r--r--SRC/sla_rpvgrw.f8
-rw-r--r--SRC/sla_syrfsx_extended.f8
-rw-r--r--SRC/sla_syrpvgrw.f8
-rw-r--r--SRC/stgsja.f2
-rw-r--r--SRC/zla_gbrfsx_extended.f8
-rw-r--r--SRC/zla_gbrpvgrw.f8
-rw-r--r--SRC/zla_gerfsx_extended.f8
-rw-r--r--SRC/zla_herfsx_extended.f8
-rw-r--r--SRC/zla_herpvgrw.f8
-rw-r--r--SRC/zla_porfsx_extended.f9
-rw-r--r--SRC/zla_porpvgrw.f8
-rw-r--r--SRC/zla_rpvgrw.f8
-rw-r--r--SRC/zla_syrfsx_extended.f8
-rw-r--r--SRC/zla_syrpvgrw.f8
-rw-r--r--SRC/ztgsja.f2
192 files changed, 1234 insertions, 498 deletions
diff --git a/BLAS/SRC/caxpy.f b/BLAS/SRC/caxpy.f
index ece603c6..763236d7 100644
--- a/BLAS/SRC/caxpy.f
+++ b/BLAS/SRC/caxpy.f
@@ -18,6 +18,8 @@
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
+*
* .. Local Scalars ..
INTEGER I,IX,IY
* ..
diff --git a/BLAS/SRC/ccopy.f b/BLAS/SRC/ccopy.f
index 97e6a235..89503807 100644
--- a/BLAS/SRC/ccopy.f
+++ b/BLAS/SRC/ccopy.f
@@ -17,6 +17,8 @@
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
+*
* .. Local Scalars ..
INTEGER I,IX,IY
* ..
diff --git a/BLAS/SRC/cdotc.f b/BLAS/SRC/cdotc.f
index 40b7748c..0c121dd8 100644
--- a/BLAS/SRC/cdotc.f
+++ b/BLAS/SRC/cdotc.f
@@ -18,6 +18,8 @@
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
+*
* .. Local Scalars ..
COMPLEX CTEMP
INTEGER I,IX,IY
diff --git a/BLAS/SRC/cdotu.f b/BLAS/SRC/cdotu.f
index 529c0e26..01d6beac 100644
--- a/BLAS/SRC/cdotu.f
+++ b/BLAS/SRC/cdotu.f
@@ -17,6 +17,8 @@
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
+*
* .. Local Scalars ..
COMPLEX CTEMP
INTEGER I,IX,IY
diff --git a/BLAS/SRC/cgbmv.f b/BLAS/SRC/cgbmv.f
index fcec7325..2a837dba 100644
--- a/BLAS/SRC/cgbmv.f
+++ b/BLAS/SRC/cgbmv.f
@@ -118,6 +118,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -127,6 +129,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ONE
diff --git a/BLAS/SRC/cgemm.f b/BLAS/SRC/cgemm.f
index 68b3cf4b..9eb7c6a2 100644
--- a/BLAS/SRC/cgemm.f
+++ b/BLAS/SRC/cgemm.f
@@ -118,6 +118,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -127,6 +129,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/cgemv.f b/BLAS/SRC/cgemv.f
index 18e1bbeb..96e625e1 100644
--- a/BLAS/SRC/cgemv.f
+++ b/BLAS/SRC/cgemv.f
@@ -91,6 +91,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -100,6 +102,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ONE
diff --git a/BLAS/SRC/cgerc.f b/BLAS/SRC/cgerc.f
index 02e4bd10..3860871b 100644
--- a/BLAS/SRC/cgerc.f
+++ b/BLAS/SRC/cgerc.f
@@ -67,6 +67,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -76,6 +78,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ZERO
diff --git a/BLAS/SRC/cgeru.f b/BLAS/SRC/cgeru.f
index 13735489..f9715b6b 100644
--- a/BLAS/SRC/cgeru.f
+++ b/BLAS/SRC/cgeru.f
@@ -67,6 +67,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -76,6 +78,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ZERO
diff --git a/BLAS/SRC/chbmv.f b/BLAS/SRC/chbmv.f
index f58532c3..1b1c330e 100644
--- a/BLAS/SRC/chbmv.f
+++ b/BLAS/SRC/chbmv.f
@@ -120,6 +120,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -129,6 +131,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ONE
diff --git a/BLAS/SRC/chemm.f b/BLAS/SRC/chemm.f
index 2e4492be..f5cb17a5 100644
--- a/BLAS/SRC/chemm.f
+++ b/BLAS/SRC/chemm.f
@@ -124,6 +124,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -133,6 +135,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/chemv.f b/BLAS/SRC/chemv.f
index 9c03c6ea..7026f5b1 100644
--- a/BLAS/SRC/chemv.f
+++ b/BLAS/SRC/chemv.f
@@ -89,6 +89,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -98,6 +100,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ONE
diff --git a/BLAS/SRC/cher.f b/BLAS/SRC/cher.f
index 054ea688..1ef7154e 100644
--- a/BLAS/SRC/cher.f
+++ b/BLAS/SRC/cher.f
@@ -77,6 +77,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -86,6 +88,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ZERO
diff --git a/BLAS/SRC/cher2.f b/BLAS/SRC/cher2.f
index fd43c3d6..861cd94e 100644
--- a/BLAS/SRC/cher2.f
+++ b/BLAS/SRC/cher2.f
@@ -88,6 +88,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -97,6 +99,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ZERO
diff --git a/BLAS/SRC/cher2k.f b/BLAS/SRC/cher2k.f
index b2d2c32c..328fcce1 100644
--- a/BLAS/SRC/cher2k.f
+++ b/BLAS/SRC/cher2k.f
@@ -127,6 +127,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -139,6 +141,7 @@
* -- Modified 8-Nov-93 to set C(J,J) to REAL( C(J,J) ) when BETA = 1.
* Ed Anderson, Cray Research Inc.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/cherk.f b/BLAS/SRC/cherk.f
index 79cf90d7..d957e578 100644
--- a/BLAS/SRC/cherk.f
+++ b/BLAS/SRC/cherk.f
@@ -107,6 +107,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -119,6 +121,7 @@
* -- Modified 8-Nov-93 to set C(J,J) to REAL( C(J,J) ) when BETA = 1.
* Ed Anderson, Cray Research Inc.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/chpmv.f b/BLAS/SRC/chpmv.f
index adefd583..158be5a7 100644
--- a/BLAS/SRC/chpmv.f
+++ b/BLAS/SRC/chpmv.f
@@ -86,6 +86,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -95,6 +97,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ONE
diff --git a/BLAS/SRC/chpr.f b/BLAS/SRC/chpr.f
index 083a4c4d..11bd5c6e 100644
--- a/BLAS/SRC/chpr.f
+++ b/BLAS/SRC/chpr.f
@@ -74,6 +74,8 @@
* not be set, they are assumed to be zero, and on exit they
* are set to zero.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -83,6 +85,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ZERO
diff --git a/BLAS/SRC/chpr2.f b/BLAS/SRC/chpr2.f
index 8a2f9b66..a0020ef3 100644
--- a/BLAS/SRC/chpr2.f
+++ b/BLAS/SRC/chpr2.f
@@ -85,6 +85,8 @@
* not be set, they are assumed to be zero, and on exit they
* are set to zero.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -94,6 +96,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ZERO
diff --git a/BLAS/SRC/crotg.f b/BLAS/SRC/crotg.f
index 2057a298..e9095454 100644
--- a/BLAS/SRC/crotg.f
+++ b/BLAS/SRC/crotg.f
@@ -9,6 +9,8 @@
*
* CROTG determines a complex Givens rotation.
*
+* =====================================================================
+*
* .. Local Scalars ..
COMPLEX ALPHA
REAL NORM,SCALE
diff --git a/BLAS/SRC/cscal.f b/BLAS/SRC/cscal.f
index 3bcdff67..fdba3599 100644
--- a/BLAS/SRC/cscal.f
+++ b/BLAS/SRC/cscal.f
@@ -10,11 +10,16 @@
* Purpose
* =======
*
-* scales a vector by a constant.
+* CSCAL scales a vector by a constant.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
INTEGER I,NINCX
diff --git a/BLAS/SRC/csrot.f b/BLAS/SRC/csrot.f
index d4132889..09e72b27 100644
--- a/BLAS/SRC/csrot.f
+++ b/BLAS/SRC/csrot.f
@@ -11,7 +11,7 @@
* Purpose
* =======
*
-* Applies a plane rotation, where the cos and sin (c and s) are real
+* CSROT applies a plane rotation, where the cos and sin (c and s) are real
* and the vectors cx and cy are complex.
* jack dongarra, linpack, 3/11/78.
*
diff --git a/BLAS/SRC/csscal.f b/BLAS/SRC/csscal.f
index 1bc2b609..338f6296 100644
--- a/BLAS/SRC/csscal.f
+++ b/BLAS/SRC/csscal.f
@@ -10,11 +10,16 @@
* Purpose
* =======
*
-* scales a complex vector by a real constant.
+* CSSCAL scales a complex vector by a real constant.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
INTEGER I,NINCX
diff --git a/BLAS/SRC/cswap.f b/BLAS/SRC/cswap.f
index 4a2b33bf..40dd71f1 100644
--- a/BLAS/SRC/cswap.f
+++ b/BLAS/SRC/cswap.f
@@ -9,10 +9,15 @@
* Purpose
* =======
*
-* interchanges two vectors.
+* CSWAP interchanges two vectors.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
COMPLEX CTEMP
diff --git a/BLAS/SRC/csymm.f b/BLAS/SRC/csymm.f
index a2c36c15..c925a778 100644
--- a/BLAS/SRC/csymm.f
+++ b/BLAS/SRC/csymm.f
@@ -122,6 +122,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -131,6 +133,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/csyr2k.f b/BLAS/SRC/csyr2k.f
index b48d5171..fa1f6022 100644
--- a/BLAS/SRC/csyr2k.f
+++ b/BLAS/SRC/csyr2k.f
@@ -121,6 +121,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -130,6 +132,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/csyrk.f b/BLAS/SRC/csyrk.f
index ebed80d1..3846631d 100644
--- a/BLAS/SRC/csyrk.f
+++ b/BLAS/SRC/csyrk.f
@@ -104,6 +104,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -113,6 +115,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/ctbmv.f b/BLAS/SRC/ctbmv.f
index e0580016..5a879fa0 100644
--- a/BLAS/SRC/ctbmv.f
+++ b/BLAS/SRC/ctbmv.f
@@ -125,6 +125,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -134,6 +136,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ZERO
diff --git a/BLAS/SRC/ctbsv.f b/BLAS/SRC/ctbsv.f
index 5dfd849b..853b9d75 100644
--- a/BLAS/SRC/ctbsv.f
+++ b/BLAS/SRC/ctbsv.f
@@ -129,6 +129,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -138,6 +140,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ZERO
diff --git a/BLAS/SRC/ctpmv.f b/BLAS/SRC/ctpmv.f
index c0dcd31e..b63742cc 100644
--- a/BLAS/SRC/ctpmv.f
+++ b/BLAS/SRC/ctpmv.f
@@ -85,6 +85,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -94,6 +96,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ZERO
diff --git a/BLAS/SRC/ctpsv.f b/BLAS/SRC/ctpsv.f
index a8b9755a..1804797e 100644
--- a/BLAS/SRC/ctpsv.f
+++ b/BLAS/SRC/ctpsv.f
@@ -88,6 +88,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -97,6 +99,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ZERO
diff --git a/BLAS/SRC/ctrmm.f b/BLAS/SRC/ctrmm.f
index 5a3552ea..4f599b29 100644
--- a/BLAS/SRC/ctrmm.f
+++ b/BLAS/SRC/ctrmm.f
@@ -114,6 +114,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -123,6 +125,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/ctrmv.f b/BLAS/SRC/ctrmv.f
index a7c7aa77..9aef3c0d 100644
--- a/BLAS/SRC/ctrmv.f
+++ b/BLAS/SRC/ctrmv.f
@@ -88,6 +88,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -97,6 +99,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ZERO
diff --git a/BLAS/SRC/ctrsm.f b/BLAS/SRC/ctrsm.f
index 1f73ef74..96ff19d5 100644
--- a/BLAS/SRC/ctrsm.f
+++ b/BLAS/SRC/ctrsm.f
@@ -116,6 +116,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -125,6 +127,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/ctrsv.f b/BLAS/SRC/ctrsv.f
index 280a7bc6..97e150a6 100644
--- a/BLAS/SRC/ctrsv.f
+++ b/BLAS/SRC/ctrsv.f
@@ -91,6 +91,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -100,6 +102,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
COMPLEX ZERO
diff --git a/BLAS/SRC/dasum.f b/BLAS/SRC/dasum.f
index def066cc..8705ecd9 100644
--- a/BLAS/SRC/dasum.f
+++ b/BLAS/SRC/dasum.f
@@ -9,11 +9,16 @@
* Purpose
* =======
*
-* takes the sum of the absolute values.
+* DASUM takes the sum of the absolute values.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
DOUBLE PRECISION DTEMP
diff --git a/BLAS/SRC/daxpy.f b/BLAS/SRC/daxpy.f
index ceac8cc5..4f92db2f 100644
--- a/BLAS/SRC/daxpy.f
+++ b/BLAS/SRC/daxpy.f
@@ -10,11 +10,16 @@
* Purpose
* =======
*
-* constant times a vector plus a vector.
+* DAXPY constant times a vector plus a vector.
* uses unrolled loops for increments equal to one.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
INTEGER I,IX,IY,M,MP1
diff --git a/BLAS/SRC/dcabs1.f b/BLAS/SRC/dcabs1.f
index c4acbeb5..4d5fb697 100644
--- a/BLAS/SRC/dcabs1.f
+++ b/BLAS/SRC/dcabs1.f
@@ -8,6 +8,8 @@
*
* DCABS1 computes absolute value of a double complex number
*
+* =====================================================================
+*
* .. Intrinsic Functions ..
INTRINSIC ABS,DBLE,DIMAG
*
diff --git a/BLAS/SRC/dcopy.f b/BLAS/SRC/dcopy.f
index f2305ebc..dcc8a0c1 100644
--- a/BLAS/SRC/dcopy.f
+++ b/BLAS/SRC/dcopy.f
@@ -9,11 +9,16 @@
* Purpose
* =======
*
-* copies a vector, x, to a vector, y.
+* DCOPY copies a vector, x, to a vector, y.
* uses unrolled loops for increments equal to one.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
INTEGER I,IX,IY,M,MP1
diff --git a/BLAS/SRC/ddot.f b/BLAS/SRC/ddot.f
index 582ae649..3df03aec 100644
--- a/BLAS/SRC/ddot.f
+++ b/BLAS/SRC/ddot.f
@@ -9,11 +9,16 @@
* Purpose
* =======
*
-* forms the dot product of two vectors.
+* DDOT forms the dot product of two vectors.
* uses unrolled loops for increments equal to one.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
DOUBLE PRECISION DTEMP
diff --git a/BLAS/SRC/dgbmv.f b/BLAS/SRC/dgbmv.f
index 39505b72..c3dc64aa 100644
--- a/BLAS/SRC/dgbmv.f
+++ b/BLAS/SRC/dgbmv.f
@@ -115,6 +115,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -124,6 +126,8 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
+*
* .. Parameters ..
DOUBLE PRECISION ONE,ZERO
PARAMETER (ONE=1.0D+0,ZERO=0.0D+0)
diff --git a/BLAS/SRC/dgemm.f b/BLAS/SRC/dgemm.f
index a154c125..4afccb16 100644
--- a/BLAS/SRC/dgemm.f
+++ b/BLAS/SRC/dgemm.f
@@ -118,6 +118,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -127,6 +129,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/dgemv.f b/BLAS/SRC/dgemv.f
index 3cac04ad..59e11b88 100644
--- a/BLAS/SRC/dgemv.f
+++ b/BLAS/SRC/dgemv.f
@@ -89,6 +89,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -98,6 +100,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ONE,ZERO
diff --git a/BLAS/SRC/dger.f b/BLAS/SRC/dger.f
index eefcdba7..0a9dcf2a 100644
--- a/BLAS/SRC/dger.f
+++ b/BLAS/SRC/dger.f
@@ -67,6 +67,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -76,6 +78,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO
diff --git a/BLAS/SRC/dnrm2.f b/BLAS/SRC/dnrm2.f
index 6102c3e4..480c912a 100644
--- a/BLAS/SRC/dnrm2.f
+++ b/BLAS/SRC/dnrm2.f
@@ -14,11 +14,14 @@
*
* DNRM2 := sqrt( x'*x )
*
+* Further Details
+* ===============
*
* -- This version written on 25-October-1982.
* Modified on 14-October-1993 to inline the call to DLASSQ.
* Sven Hammarling, Nag Ltd.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ONE,ZERO
diff --git a/BLAS/SRC/drot.f b/BLAS/SRC/drot.f
index adaa88f6..2075314b 100644
--- a/BLAS/SRC/drot.f
+++ b/BLAS/SRC/drot.f
@@ -10,10 +10,15 @@
* Purpose
* =======
*
-* applies a plane rotation.
+* DROT applies a plane rotation.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
DOUBLE PRECISION DTEMP
diff --git a/BLAS/SRC/drotg.f b/BLAS/SRC/drotg.f
index e50dd648..a6ba96ab 100644
--- a/BLAS/SRC/drotg.f
+++ b/BLAS/SRC/drotg.f
@@ -6,9 +6,14 @@
* Purpose
* =======
*
-* construct givens plane rotation.
+* DROTG construct givens plane rotation.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
*
+* =====================================================================
*
* .. Local Scalars ..
DOUBLE PRECISION R,ROE,SCALE,Z
diff --git a/BLAS/SRC/dsbmv.f b/BLAS/SRC/dsbmv.f
index b571a4ad..8c82d1fa 100644
--- a/BLAS/SRC/dsbmv.f
+++ b/BLAS/SRC/dsbmv.f
@@ -127,6 +127,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ONE,ZERO
diff --git a/BLAS/SRC/dscal.f b/BLAS/SRC/dscal.f
index 0b423cf2..81425a94 100644
--- a/BLAS/SRC/dscal.f
+++ b/BLAS/SRC/dscal.f
@@ -9,13 +9,18 @@
*
* Purpose
* =======
-**
-* scales a vector by a constant.
+*
+* DSCAL scales a vector by a constant.
* uses unrolled loops for increment equal to one.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
INTEGER I,M,MP1,NINCX
diff --git a/BLAS/SRC/dsdot.f b/BLAS/SRC/dsdot.f
index 4845123b..457873b5 100644
--- a/BLAS/SRC/dsdot.f
+++ b/BLAS/SRC/dsdot.f
@@ -42,8 +42,10 @@
* DSDOT (output) DOUBLE PRECISION
* DSDOT double precision dot product (zero if N.LE.0)
*
+* Further Details
+* ===============
+*
* REFERENCES
-* ==========
*
* C. L. Lawson, R. J. Hanson, D. R. Kincaid and F. T.
* Krogh, Basic linear algebra subprograms for Fortran
@@ -51,7 +53,6 @@
* Software 5, 3 (September 1979), pp. 308-323.
*
* REVISION HISTORY (YYMMDD)
-* ==========================
*
* 791001 DATE WRITTEN
* 890831 Modified array declarations. (WRB)
diff --git a/BLAS/SRC/dspmv.f b/BLAS/SRC/dspmv.f
index 1549939e..f6e121e7 100644
--- a/BLAS/SRC/dspmv.f
+++ b/BLAS/SRC/dspmv.f
@@ -84,6 +84,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -93,6 +95,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ONE,ZERO
diff --git a/BLAS/SRC/dspr.f b/BLAS/SRC/dspr.f
index 4ec524e0..538e4f76 100644
--- a/BLAS/SRC/dspr.f
+++ b/BLAS/SRC/dspr.f
@@ -71,6 +71,8 @@
* AP is overwritten by the lower triangular part of the
* updated matrix.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -80,6 +82,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO
diff --git a/BLAS/SRC/dspr2.f b/BLAS/SRC/dspr2.f
index 9a86ca16..6f6b54a8 100644
--- a/BLAS/SRC/dspr2.f
+++ b/BLAS/SRC/dspr2.f
@@ -82,6 +82,8 @@
* AP is overwritten by the lower triangular part of the
* updated matrix.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -91,6 +93,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO
diff --git a/BLAS/SRC/dswap.f b/BLAS/SRC/dswap.f
index 79c123b6..3595fd8c 100644
--- a/BLAS/SRC/dswap.f
+++ b/BLAS/SRC/dswap.f
@@ -11,9 +11,14 @@
*
* interchanges two vectors.
* uses unrolled loops for increments equal one.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
DOUBLE PRECISION DTEMP
diff --git a/BLAS/SRC/dsymm.f b/BLAS/SRC/dsymm.f
index 6556777e..d9d3c96a 100644
--- a/BLAS/SRC/dsymm.f
+++ b/BLAS/SRC/dsymm.f
@@ -122,6 +122,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -131,6 +133,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/dsymv.f b/BLAS/SRC/dsymv.f
index c659669a..fa552f28 100644
--- a/BLAS/SRC/dsymv.f
+++ b/BLAS/SRC/dsymv.f
@@ -87,6 +87,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -96,6 +98,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ONE,ZERO
diff --git a/BLAS/SRC/dsyr.f b/BLAS/SRC/dsyr.f
index e7bad3d4..b418d3c3 100644
--- a/BLAS/SRC/dsyr.f
+++ b/BLAS/SRC/dsyr.f
@@ -74,6 +74,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -83,6 +85,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO
diff --git a/BLAS/SRC/dsyr2.f b/BLAS/SRC/dsyr2.f
index a46f35ef..387969d4 100644
--- a/BLAS/SRC/dsyr2.f
+++ b/BLAS/SRC/dsyr2.f
@@ -85,6 +85,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -94,6 +96,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO
diff --git a/BLAS/SRC/dsyr2k.f b/BLAS/SRC/dsyr2k.f
index 0a7cc877..588e71c1 100644
--- a/BLAS/SRC/dsyr2k.f
+++ b/BLAS/SRC/dsyr2k.f
@@ -124,6 +124,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -134,6 +136,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/dsyrk.f b/BLAS/SRC/dsyrk.f
index 8d461fe9..05e1f5b0 100644
--- a/BLAS/SRC/dsyrk.f
+++ b/BLAS/SRC/dsyrk.f
@@ -106,6 +106,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -115,6 +117,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/dtbmv.f b/BLAS/SRC/dtbmv.f
index 864a122d..a87ffdea 100644
--- a/BLAS/SRC/dtbmv.f
+++ b/BLAS/SRC/dtbmv.f
@@ -125,6 +125,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -134,6 +136,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO
diff --git a/BLAS/SRC/dtbsv.f b/BLAS/SRC/dtbsv.f
index 951f5684..cfeb0b82 100644
--- a/BLAS/SRC/dtbsv.f
+++ b/BLAS/SRC/dtbsv.f
@@ -129,6 +129,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -138,6 +140,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO
diff --git a/BLAS/SRC/dtpmv.f b/BLAS/SRC/dtpmv.f
index 8a9332e3..c5bc112d 100644
--- a/BLAS/SRC/dtpmv.f
+++ b/BLAS/SRC/dtpmv.f
@@ -85,6 +85,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -94,6 +96,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO
diff --git a/BLAS/SRC/dtpsv.f b/BLAS/SRC/dtpsv.f
index fbd73f0f..c7e58d32 100644
--- a/BLAS/SRC/dtpsv.f
+++ b/BLAS/SRC/dtpsv.f
@@ -88,6 +88,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -97,6 +99,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO
diff --git a/BLAS/SRC/dtrmm.f b/BLAS/SRC/dtrmm.f
index 1ae449ab..931748db 100644
--- a/BLAS/SRC/dtrmm.f
+++ b/BLAS/SRC/dtrmm.f
@@ -114,6 +114,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -123,6 +125,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/dtrmv.f b/BLAS/SRC/dtrmv.f
index 1648d9b1..b1ca93a4 100644
--- a/BLAS/SRC/dtrmv.f
+++ b/BLAS/SRC/dtrmv.f
@@ -88,6 +88,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -97,6 +99,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO
diff --git a/BLAS/SRC/dtrsm.f b/BLAS/SRC/dtrsm.f
index 75295b49..88811104 100644
--- a/BLAS/SRC/dtrsm.f
+++ b/BLAS/SRC/dtrsm.f
@@ -116,6 +116,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -126,6 +128,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/dtrsv.f b/BLAS/SRC/dtrsv.f
index d3bc6f1a..847fd391 100644
--- a/BLAS/SRC/dtrsv.f
+++ b/BLAS/SRC/dtrsv.f
@@ -100,6 +100,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO
diff --git a/BLAS/SRC/dzasum.f b/BLAS/SRC/dzasum.f
index 5baa6526..5eabc60f 100644
--- a/BLAS/SRC/dzasum.f
+++ b/BLAS/SRC/dzasum.f
@@ -9,11 +9,16 @@
* Purpose
* =======
*
-* takes the sum of the absolute values.
+* DZASUM takes the sum of the absolute values.
+*
+* Further Details
+* ===============
+*
* jack dongarra, 3/11/78.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
DOUBLE PRECISION STEMP
diff --git a/BLAS/SRC/dznrm2.f b/BLAS/SRC/dznrm2.f
index d65015f6..d5e76c54 100644
--- a/BLAS/SRC/dznrm2.f
+++ b/BLAS/SRC/dznrm2.f
@@ -14,11 +14,14 @@
*
* DZNRM2 := sqrt( conjg( x' )*x )
*
+* Further Details
+* ===============
*
* -- This version written on 25-October-1982.
* Modified on 14-October-1993 to inline the call to ZLASSQ.
* Sven Hammarling, Nag Ltd.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ONE,ZERO
diff --git a/BLAS/SRC/icamax.f b/BLAS/SRC/icamax.f
index 9a6afc17..4fd4b920 100644
--- a/BLAS/SRC/icamax.f
+++ b/BLAS/SRC/icamax.f
@@ -9,11 +9,16 @@
* Purpose
* =======
*
-* finds the index of element having max. absolute value.
+* ICAMAX finds the index of element having max. absolute value.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
REAL SMAX
diff --git a/BLAS/SRC/idamax.f b/BLAS/SRC/idamax.f
index 44729fe4..fa45c1d6 100644
--- a/BLAS/SRC/idamax.f
+++ b/BLAS/SRC/idamax.f
@@ -9,11 +9,16 @@
* Purpose
* =======
*
-* finds the index of element having max. absolute value.
+* IDAMAX finds the index of element having max. absolute value.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
DOUBLE PRECISION DMAX
diff --git a/BLAS/SRC/isamax.f b/BLAS/SRC/isamax.f
index f6fd3121..88741e7e 100644
--- a/BLAS/SRC/isamax.f
+++ b/BLAS/SRC/isamax.f
@@ -9,11 +9,16 @@
* Purpose
* =======
*
-* finds the index of element having max. absolute value.
+* ISAMAX finds the index of element having max. absolute value.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
REAL SMAX
diff --git a/BLAS/SRC/izamax.f b/BLAS/SRC/izamax.f
index e99af9ba..27c56874 100644
--- a/BLAS/SRC/izamax.f
+++ b/BLAS/SRC/izamax.f
@@ -9,11 +9,16 @@
* Purpose
* =======
*
-* finds the index of element having max. absolute value.
+* IZAMAX finds the index of element having max. absolute value.
+*
+* Further Details
+* ===============
+*
* jack dongarra, 1/15/85.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
DOUBLE PRECISION SMAX
diff --git a/BLAS/SRC/sasum.f b/BLAS/SRC/sasum.f
index 0677ba47..83513335 100644
--- a/BLAS/SRC/sasum.f
+++ b/BLAS/SRC/sasum.f
@@ -9,14 +9,18 @@
* Purpose
* =======
*
-* takes the sum of the absolute values.
+* SASUM takes the sum of the absolute values.
* uses unrolled loops for increment equal to one.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
-
* .. Local Scalars ..
REAL STEMP
INTEGER I,M,MP1,NINCX
diff --git a/BLAS/SRC/saxpy.f b/BLAS/SRC/saxpy.f
index 6241a71d..00fc145d 100644
--- a/BLAS/SRC/saxpy.f
+++ b/BLAS/SRC/saxpy.f
@@ -12,9 +12,14 @@
*
* SAXPY constant times a vector plus a vector.
* uses unrolled loop for increments equal to one.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
INTEGER I,IX,IY,M,MP1
diff --git a/BLAS/SRC/scabs1.f b/BLAS/SRC/scabs1.f
index ce6b63ff..eccb9f61 100644
--- a/BLAS/SRC/scabs1.f
+++ b/BLAS/SRC/scabs1.f
@@ -8,6 +8,8 @@
*
* SCABS1 computes absolute value of a complex number
*
+* =====================================================================
+*
* .. Intrinsic Functions ..
INTRINSIC ABS,AIMAG,REAL
* ..
diff --git a/BLAS/SRC/scasum.f b/BLAS/SRC/scasum.f
index 5a4abfa9..2fa01859 100644
--- a/BLAS/SRC/scasum.f
+++ b/BLAS/SRC/scasum.f
@@ -9,12 +9,17 @@
* Purpose
* =======
*
-* takes the sum of the absolute values of a complex vector and
+* SCASUM takes the sum of the absolute values of a complex vector and
* returns a single precision result.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
REAL STEMP
diff --git a/BLAS/SRC/scnrm2.f b/BLAS/SRC/scnrm2.f
index 160e2c41..f8288026 100644
--- a/BLAS/SRC/scnrm2.f
+++ b/BLAS/SRC/scnrm2.f
@@ -14,12 +14,14 @@
*
* SCNRM2 := sqrt( conjg( x' )*x )
*
-*
+* Further Details
+* ===============
*
* -- This version written on 25-October-1982.
* Modified on 14-October-1993 to inline the call to CLASSQ.
* Sven Hammarling, Nag Ltd.
*
+* =====================================================================
*
* .. Parameters ..
REAL ONE,ZERO
diff --git a/BLAS/SRC/scopy.f b/BLAS/SRC/scopy.f
index ad04ee69..e0f41fe8 100644
--- a/BLAS/SRC/scopy.f
+++ b/BLAS/SRC/scopy.f
@@ -9,11 +9,16 @@
* Purpose
* =======
*
-* copies a vector, x, to a vector, y.
+* SCOPY copies a vector, x, to a vector, y.
* uses unrolled loops for increments equal to 1.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
INTEGER I,IX,IY,M,MP1
diff --git a/BLAS/SRC/sdot.f b/BLAS/SRC/sdot.f
index deebc348..e0df5700 100644
--- a/BLAS/SRC/sdot.f
+++ b/BLAS/SRC/sdot.f
@@ -9,13 +9,17 @@
* Purpose
* =======
*
-* forms the dot product of two vectors.
+* SDOT forms the dot product of two vectors.
* uses unrolled loops for increments equal to one.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
-
* .. Local Scalars ..
REAL STEMP
INTEGER I,IX,IY,M,MP1
diff --git a/BLAS/SRC/sdsdot.f b/BLAS/SRC/sdsdot.f
index f6349a14..5b9e6c41 100644
--- a/BLAS/SRC/sdsdot.f
+++ b/BLAS/SRC/sdsdot.f
@@ -47,8 +47,10 @@
* SDSDOT (output) REAL
* single precision dot product (SB if N .LE. 0)
*
+* Further Details
+* ===============
+*
* REFERENCES
-* ==========
*
* C. L. Lawson, R. J. Hanson, D. R. Kincaid and F. T.
* Krogh, Basic linear algebra subprograms for Fortran
@@ -56,7 +58,6 @@
* Software 5, 3 (September 1979), pp. 308-323.
*
* REVISION HISTORY (YYMMDD)
-* ==========================
*
* 791001 DATE WRITTEN
* 890531 Changed all specific intrinsics to generic. (WRB)
diff --git a/BLAS/SRC/sgbmv.f b/BLAS/SRC/sgbmv.f
index 6a79a039..aaa8b1a1 100644
--- a/BLAS/SRC/sgbmv.f
+++ b/BLAS/SRC/sgbmv.f
@@ -115,6 +115,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -124,6 +126,8 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
+*
* .. Parameters ..
REAL ONE,ZERO
PARAMETER (ONE=1.0E+0,ZERO=0.0E+0)
diff --git a/BLAS/SRC/sgemm.f b/BLAS/SRC/sgemm.f
index 06e33c09..caafaba0 100644
--- a/BLAS/SRC/sgemm.f
+++ b/BLAS/SRC/sgemm.f
@@ -118,6 +118,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -127,6 +129,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/sgemv.f b/BLAS/SRC/sgemv.f
index 494cfc9e..2f2cbb0c 100644
--- a/BLAS/SRC/sgemv.f
+++ b/BLAS/SRC/sgemv.f
@@ -89,6 +89,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -98,6 +100,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ONE,ZERO
diff --git a/BLAS/SRC/sger.f b/BLAS/SRC/sger.f
index 5f94cf6d..3ddd10c7 100644
--- a/BLAS/SRC/sger.f
+++ b/BLAS/SRC/sger.f
@@ -67,6 +67,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -76,6 +78,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ZERO
diff --git a/BLAS/SRC/snrm2.f b/BLAS/SRC/snrm2.f
index fa54ba10..1c336dac 100644
--- a/BLAS/SRC/snrm2.f
+++ b/BLAS/SRC/snrm2.f
@@ -21,6 +21,7 @@
* Modified on 14-October-1993 to inline the call to SLASSQ.
* Sven Hammarling, Nag Ltd.
*
+* =====================================================================
*
* .. Parameters ..
REAL ONE,ZERO
diff --git a/BLAS/SRC/srot.f b/BLAS/SRC/srot.f
index e9f1cf71..5903b561 100644
--- a/BLAS/SRC/srot.f
+++ b/BLAS/SRC/srot.f
@@ -18,8 +18,8 @@
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
-
* .. Local Scalars ..
REAL STEMP
INTEGER I,IX,IY
diff --git a/BLAS/SRC/srotg.f b/BLAS/SRC/srotg.f
index 2625bd58..4f2a8411 100644
--- a/BLAS/SRC/srotg.f
+++ b/BLAS/SRC/srotg.f
@@ -6,9 +6,14 @@
* Purpose
* =======
*
-* construct givens plane rotation.
+* SROTG construct givens plane rotation.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
*
+* =====================================================================
*
* .. Local Scalars ..
REAL R,ROE,SCALE,Z
diff --git a/BLAS/SRC/ssbmv.f b/BLAS/SRC/ssbmv.f
index c08b501b..16893a29 100644
--- a/BLAS/SRC/ssbmv.f
+++ b/BLAS/SRC/ssbmv.f
@@ -118,6 +118,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -127,6 +129,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ONE,ZERO
diff --git a/BLAS/SRC/sscal.f b/BLAS/SRC/sscal.f
index b900be9a..312aeaf1 100644
--- a/BLAS/SRC/sscal.f
+++ b/BLAS/SRC/sscal.f
@@ -12,10 +12,15 @@
*
* scales a vector by a constant.
* uses unrolled loops for increment equal to 1.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
INTEGER I,M,MP1,NINCX
diff --git a/BLAS/SRC/sspmv.f b/BLAS/SRC/sspmv.f
index 813738ed..0b844982 100644
--- a/BLAS/SRC/sspmv.f
+++ b/BLAS/SRC/sspmv.f
@@ -84,6 +84,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -93,6 +95,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ONE,ZERO
diff --git a/BLAS/SRC/sspr.f b/BLAS/SRC/sspr.f
index 02e46673..bae92612 100644
--- a/BLAS/SRC/sspr.f
+++ b/BLAS/SRC/sspr.f
@@ -71,6 +71,8 @@
* AP is overwritten by the lower triangular part of the
* updated matrix.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -80,6 +82,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ZERO
diff --git a/BLAS/SRC/sspr2.f b/BLAS/SRC/sspr2.f
index e1945824..cd27c734 100644
--- a/BLAS/SRC/sspr2.f
+++ b/BLAS/SRC/sspr2.f
@@ -82,6 +82,8 @@
* AP is overwritten by the lower triangular part of the
* updated matrix.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -91,6 +93,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ZERO
diff --git a/BLAS/SRC/sswap.f b/BLAS/SRC/sswap.f
index e23f3803..736d4974 100644
--- a/BLAS/SRC/sswap.f
+++ b/BLAS/SRC/sswap.f
@@ -11,9 +11,14 @@
*
* interchanges two vectors.
* uses unrolled loops for increments equal to 1.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
REAL STEMP
diff --git a/BLAS/SRC/ssymm.f b/BLAS/SRC/ssymm.f
index 344cd35a..5182672e 100644
--- a/BLAS/SRC/ssymm.f
+++ b/BLAS/SRC/ssymm.f
@@ -122,6 +122,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -131,6 +133,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/ssymv.f b/BLAS/SRC/ssymv.f
index 2b9bedd3..19f6e76f 100644
--- a/BLAS/SRC/ssymv.f
+++ b/BLAS/SRC/ssymv.f
@@ -87,6 +87,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -96,6 +98,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ONE,ZERO
diff --git a/BLAS/SRC/ssyr.f b/BLAS/SRC/ssyr.f
index aea091b1..6c7a8770 100644
--- a/BLAS/SRC/ssyr.f
+++ b/BLAS/SRC/ssyr.f
@@ -74,6 +74,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -83,6 +85,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ZERO
diff --git a/BLAS/SRC/ssyr2.f b/BLAS/SRC/ssyr2.f
index 4e4fcaac..cc472ccd 100644
--- a/BLAS/SRC/ssyr2.f
+++ b/BLAS/SRC/ssyr2.f
@@ -85,6 +85,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -94,6 +96,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ZERO
diff --git a/BLAS/SRC/ssyr2k.f b/BLAS/SRC/ssyr2k.f
index cc8acb6e..7f0f9875 100644
--- a/BLAS/SRC/ssyr2k.f
+++ b/BLAS/SRC/ssyr2k.f
@@ -124,6 +124,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -134,6 +136,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/ssyrk.f b/BLAS/SRC/ssyrk.f
index 05659108..a56ba40c 100644
--- a/BLAS/SRC/ssyrk.f
+++ b/BLAS/SRC/ssyrk.f
@@ -106,6 +106,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -115,6 +117,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/stbmv.f b/BLAS/SRC/stbmv.f
index 61dcb703..c0b8f113 100644
--- a/BLAS/SRC/stbmv.f
+++ b/BLAS/SRC/stbmv.f
@@ -125,6 +125,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -134,6 +136,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ZERO
diff --git a/BLAS/SRC/stbsv.f b/BLAS/SRC/stbsv.f
index c98cac7a..b846be85 100644
--- a/BLAS/SRC/stbsv.f
+++ b/BLAS/SRC/stbsv.f
@@ -129,6 +129,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -138,6 +140,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ZERO
diff --git a/BLAS/SRC/stpmv.f b/BLAS/SRC/stpmv.f
index 6c79edee..71ea49a3 100644
--- a/BLAS/SRC/stpmv.f
+++ b/BLAS/SRC/stpmv.f
@@ -85,6 +85,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -94,6 +96,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ZERO
diff --git a/BLAS/SRC/stpsv.f b/BLAS/SRC/stpsv.f
index ddba7783..7d95efbd 100644
--- a/BLAS/SRC/stpsv.f
+++ b/BLAS/SRC/stpsv.f
@@ -88,6 +88,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -97,6 +99,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ZERO
diff --git a/BLAS/SRC/strmm.f b/BLAS/SRC/strmm.f
index e610743d..97fcf6c4 100644
--- a/BLAS/SRC/strmm.f
+++ b/BLAS/SRC/strmm.f
@@ -114,6 +114,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -123,6 +125,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/strmv.f b/BLAS/SRC/strmv.f
index ea31b5f3..743c0d73 100644
--- a/BLAS/SRC/strmv.f
+++ b/BLAS/SRC/strmv.f
@@ -88,6 +88,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -97,6 +99,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ZERO
diff --git a/BLAS/SRC/strsm.f b/BLAS/SRC/strsm.f
index 05606382..4572784e 100644
--- a/BLAS/SRC/strsm.f
+++ b/BLAS/SRC/strsm.f
@@ -116,6 +116,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -126,6 +128,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/strsv.f b/BLAS/SRC/strsv.f
index 026cbc7b..0f820fe4 100644
--- a/BLAS/SRC/strsv.f
+++ b/BLAS/SRC/strsv.f
@@ -91,6 +91,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -100,6 +102,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
REAL ZERO
diff --git a/BLAS/SRC/xerbla_array.f b/BLAS/SRC/xerbla_array.f
index 57cd98a9..350b59bc 100644
--- a/BLAS/SRC/xerbla_array.f
+++ b/BLAS/SRC/xerbla_array.f
@@ -1,68 +1,68 @@
SUBROUTINE XERBLA_ARRAY(SRNAME_ARRAY, SRNAME_LEN, INFO)
-!
-! -- LAPACK auxiliary routine (version 3.0) --
-! Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
-! September 19, 2006
-!
+*
+* -- LAPACK auxiliary routine (version 3.0) --
+* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
+* September 19, 2006
+*
IMPLICIT NONE
-! .. Scalar Arguments ..
+* .. Scalar Arguments ..
INTEGER SRNAME_LEN, INFO
-! ..
-! .. Array Arguments ..
+* ..
+* .. Array Arguments ..
CHARACTER(1) SRNAME_ARRAY(SRNAME_LEN)
-! ..
-!
-! Purpose
-! =======
-!
-! XERBLA_ARRAY assists other languages in calling XERBLA, the LAPACK
-! and BLAS error handler. Rather than taking a Fortran string argument
-! as the function's name, XERBLA_ARRAY takes an array of single
-! characters along with the array's length. XERBLA_ARRAY then copies
-! up to 32 characters of that array into a Fortran string and passes
-! that to XERBLA. If called with a non-positive SRNAME_LEN,
-! XERBLA_ARRAY will call XERBLA with a string of all blank characters.
-!
-! Say some macro or other device makes XERBLA_ARRAY available to C99
-! by a name lapack_xerbla and with a common Fortran calling convention.
-! Then a C99 program could invoke XERBLA via:
-! {
-! int flen = strlen(__func__);
-! lapack_xerbla(__func__, &flen, &info);
-! }
-!
-! Providing XERBLA_ARRAY is not necessary for intercepting LAPACK
-! errors. XERBLA_ARRAY calls XERBLA.
-!
-! Arguments
-! =========
-!
-! SRNAME_ARRAY (input) CHARACTER(1) array, dimension (SRNAME_LEN)
-! The name of the routine which called XERBLA_ARRAY.
-!
-! SRNAME_LEN (input) INTEGER
-! The length of the name in SRNAME_ARRAY.
-!
-! INFO (input) INTEGER
-! The position of the invalid parameter in the parameter list
-! of the calling routine.
-!
-! =====================================================================
-!
-! ..
-! .. Local Scalars ..
+* ..
+*
+* Purpose
+* =======
+*
+* XERBLA_ARRAY assists other languages in calling XERBLA, the LAPACK
+* and BLAS error handler. Rather than taking a Fortran string argument
+* as the function's name, XERBLA_ARRAY takes an array of single
+* characters along with the array's length. XERBLA_ARRAY then copies
+* up to 32 characters of that array into a Fortran string and passes
+* that to XERBLA. If called with a non-positive SRNAME_LEN,
+* XERBLA_ARRAY will call XERBLA with a string of all blank characters.
+*
+* Say some macro or other device makes XERBLA_ARRAY available to C99
+* by a name lapack_xerbla and with a common Fortran calling convention.
+* Then a C99 program could invoke XERBLA via:
+* {
+* int flen = strlen(__func__);
+* lapack_xerbla(__func__, &flen, &info);
+* }
+*
+* Providing XERBLA_ARRAY is not necessary for intercepting LAPACK
+* errors. XERBLA_ARRAY calls XERBLA.
+*
+* Arguments
+* =========
+*
+* SRNAME_ARRAY (input) CHARACTER(1) array, dimension (SRNAME_LEN)
+* The name of the routine which called XERBLA_ARRAY.
+*
+* SRNAME_LEN (input) INTEGER
+* The length of the name in SRNAME_ARRAY.
+*
+* INFO (input) INTEGER
+* The position of the invalid parameter in the parameter list
+* of the calling routine.
+*
+* =====================================================================
+*
+* ..
+* .. Local Scalars ..
INTEGER I
-! ..
-! .. Local Arrays ..
+* ..
+* .. Local Arrays ..
CHARACTER*32 SRNAME
-! ..
-! .. Intrinsic Functions ..
+* ..
+* .. Intrinsic Functions ..
INTRINSIC MIN, LEN
-! ..
-! .. External Functions ..
+* ..
+* .. External Functions ..
EXTERNAL XERBLA
-! ..
-! .. Executable Statements ..
+* ..
+* .. Executable Statements ..
SRNAME = ''
DO I = 1, MIN( SRNAME_LEN, LEN( SRNAME ) )
SRNAME( I:I ) = SRNAME_ARRAY( I )
diff --git a/BLAS/SRC/zaxpy.f b/BLAS/SRC/zaxpy.f
index b33794c3..b05d9d2b 100644
--- a/BLAS/SRC/zaxpy.f
+++ b/BLAS/SRC/zaxpy.f
@@ -10,11 +10,16 @@
* Purpose
* =======
*
-* constant times a vector plus a vector.
+* ZAXPY constant times a vector plus a vector.
+*
+* Further Details
+* ===============
+*
* jack dongarra, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
-
+* =====================================================================
+*
* .. Local Scalars ..
INTEGER I,IX,IY
* ..
diff --git a/BLAS/SRC/zcopy.f b/BLAS/SRC/zcopy.f
index c77a8010..793be5c5 100644
--- a/BLAS/SRC/zcopy.f
+++ b/BLAS/SRC/zcopy.f
@@ -9,10 +9,15 @@
* Purpose
* =======
*
-* copies a vector, x, to a vector, y.
+* ZCOPY copies a vector, x, to a vector, y.
+*
+* Further Details
+* ===============
+*
* jack dongarra, linpack, 4/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
INTEGER I,IX,IY
diff --git a/BLAS/SRC/zdotc.f b/BLAS/SRC/zdotc.f
index 656243bd..b97cc41f 100644
--- a/BLAS/SRC/zdotc.f
+++ b/BLAS/SRC/zdotc.f
@@ -17,6 +17,8 @@
* jack dongarra, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
+*
* .. Local Scalars ..
DOUBLE COMPLEX ZTEMP
INTEGER I,IX,IY
diff --git a/BLAS/SRC/zdotu.f b/BLAS/SRC/zdotu.f
index 11af134c..4c6dc9bc 100644
--- a/BLAS/SRC/zdotu.f
+++ b/BLAS/SRC/zdotu.f
@@ -17,6 +17,8 @@
* jack dongarra, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
+*
* .. Local Scalars ..
DOUBLE COMPLEX ZTEMP
INTEGER I,IX,IY
diff --git a/BLAS/SRC/zdscal.f b/BLAS/SRC/zdscal.f
index 86525276..aa0fa905 100644
--- a/BLAS/SRC/zdscal.f
+++ b/BLAS/SRC/zdscal.f
@@ -10,11 +10,16 @@
* Purpose
* =======
*
-* scales a vector by a constant.
+* ZDSCAL scales a vector by a constant.
+*
+* Further Details
+* ===============
+*
* jack dongarra, 3/11/78.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
INTEGER I,IX
diff --git a/BLAS/SRC/zgbmv.f b/BLAS/SRC/zgbmv.f
index 42704e6b..5a2228d0 100644
--- a/BLAS/SRC/zgbmv.f
+++ b/BLAS/SRC/zgbmv.f
@@ -118,6 +118,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -127,6 +129,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ONE
diff --git a/BLAS/SRC/zgemm.f b/BLAS/SRC/zgemm.f
index 4a3d4ae6..198e57f5 100644
--- a/BLAS/SRC/zgemm.f
+++ b/BLAS/SRC/zgemm.f
@@ -118,6 +118,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -127,6 +129,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/zgemv.f b/BLAS/SRC/zgemv.f
index 2db065c8..72729603 100644
--- a/BLAS/SRC/zgemv.f
+++ b/BLAS/SRC/zgemv.f
@@ -91,6 +91,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -100,6 +102,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ONE
diff --git a/BLAS/SRC/zgerc.f b/BLAS/SRC/zgerc.f
index 6f175c11..62fed2c3 100644
--- a/BLAS/SRC/zgerc.f
+++ b/BLAS/SRC/zgerc.f
@@ -67,6 +67,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -76,6 +78,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ZERO
diff --git a/BLAS/SRC/zgeru.f b/BLAS/SRC/zgeru.f
index 4293a1c2..3dd3bd46 100644
--- a/BLAS/SRC/zgeru.f
+++ b/BLAS/SRC/zgeru.f
@@ -67,6 +67,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -76,6 +78,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ZERO
diff --git a/BLAS/SRC/zhbmv.f b/BLAS/SRC/zhbmv.f
index 00db9f2d..bca0da5f 100644
--- a/BLAS/SRC/zhbmv.f
+++ b/BLAS/SRC/zhbmv.f
@@ -120,6 +120,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -129,6 +131,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ONE
diff --git a/BLAS/SRC/zhemm.f b/BLAS/SRC/zhemm.f
index f22fbe9b..5c8d9500 100644
--- a/BLAS/SRC/zhemm.f
+++ b/BLAS/SRC/zhemm.f
@@ -124,6 +124,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -133,6 +135,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/zhemv.f b/BLAS/SRC/zhemv.f
index a076b7ba..341362b4 100644
--- a/BLAS/SRC/zhemv.f
+++ b/BLAS/SRC/zhemv.f
@@ -89,6 +89,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -98,6 +100,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ONE
diff --git a/BLAS/SRC/zher.f b/BLAS/SRC/zher.f
index e1b6a5e3..848a3702 100644
--- a/BLAS/SRC/zher.f
+++ b/BLAS/SRC/zher.f
@@ -77,6 +77,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -86,6 +88,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ZERO
diff --git a/BLAS/SRC/zher2.f b/BLAS/SRC/zher2.f
index aa59caf1..c0b6a306 100644
--- a/BLAS/SRC/zher2.f
+++ b/BLAS/SRC/zher2.f
@@ -88,6 +88,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -97,6 +99,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ZERO
diff --git a/BLAS/SRC/zher2k.f b/BLAS/SRC/zher2k.f
index 63b5586e..0dfb32bf 100644
--- a/BLAS/SRC/zher2k.f
+++ b/BLAS/SRC/zher2k.f
@@ -127,6 +127,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -139,6 +141,7 @@
* -- Modified 8-Nov-93 to set C(J,J) to DBLE( C(J,J) ) when BETA = 1.
* Ed Anderson, Cray Research Inc.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/zherk.f b/BLAS/SRC/zherk.f
index 4fa5678e..ed51aa18 100644
--- a/BLAS/SRC/zherk.f
+++ b/BLAS/SRC/zherk.f
@@ -107,6 +107,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -119,6 +121,7 @@
* -- Modified 8-Nov-93 to set C(J,J) to DBLE( C(J,J) ) when BETA = 1.
* Ed Anderson, Cray Research Inc.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/zhpmv.f b/BLAS/SRC/zhpmv.f
index f72233fe..b686108b 100644
--- a/BLAS/SRC/zhpmv.f
+++ b/BLAS/SRC/zhpmv.f
@@ -86,6 +86,8 @@
* Y. INCY must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -95,6 +97,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ONE
diff --git a/BLAS/SRC/zhpr.f b/BLAS/SRC/zhpr.f
index 3cbfa2f0..40efbc7d 100644
--- a/BLAS/SRC/zhpr.f
+++ b/BLAS/SRC/zhpr.f
@@ -74,6 +74,8 @@
* not be set, they are assumed to be zero, and on exit they
* are set to zero.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -83,6 +85,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ZERO
diff --git a/BLAS/SRC/zhpr2.f b/BLAS/SRC/zhpr2.f
index 77496c0b..99977462 100644
--- a/BLAS/SRC/zhpr2.f
+++ b/BLAS/SRC/zhpr2.f
@@ -85,6 +85,8 @@
* not be set, they are assumed to be zero, and on exit they
* are set to zero.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -94,6 +96,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ZERO
diff --git a/BLAS/SRC/zrotg.f b/BLAS/SRC/zrotg.f
index bc67fecb..99190c37 100644
--- a/BLAS/SRC/zrotg.f
+++ b/BLAS/SRC/zrotg.f
@@ -7,7 +7,9 @@
* Purpose
* =======
*
-* determines a double complex Givens rotation.
+* ZROTG determines a double complex Givens rotation.
+*
+* =====================================================================
*
* .. Local Scalars ..
DOUBLE COMPLEX ALPHA
diff --git a/BLAS/SRC/zscal.f b/BLAS/SRC/zscal.f
index 079f8ded..42fba167 100644
--- a/BLAS/SRC/zscal.f
+++ b/BLAS/SRC/zscal.f
@@ -10,11 +10,16 @@
* Purpose
* =======
*
-* scales a vector by a constant.
+* ZSCAL scales a vector by a constant.
+*
+* Further Details
+* ===============
+*
* jack dongarra, 3/11/78.
* modified 3/93 to return if incx .le. 0.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
INTEGER I,IX
diff --git a/BLAS/SRC/zswap.f b/BLAS/SRC/zswap.f
index 0b2dcd23..6ce8c09a 100644
--- a/BLAS/SRC/zswap.f
+++ b/BLAS/SRC/zswap.f
@@ -9,10 +9,15 @@
* Purpose
* =======
*
-* interchanges two vectors.
+* ZSWAP interchanges two vectors.
+*
+* Further Details
+* ===============
+*
* jack dongarra, 3/11/78.
* modified 12/3/93, array(1) declarations changed to array(*)
*
+* =====================================================================
*
* .. Local Scalars ..
DOUBLE COMPLEX ZTEMP
diff --git a/BLAS/SRC/zsymm.f b/BLAS/SRC/zsymm.f
index 1095ae10..f5d07e1c 100644
--- a/BLAS/SRC/zsymm.f
+++ b/BLAS/SRC/zsymm.f
@@ -122,6 +122,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -131,6 +133,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/zsyr2k.f b/BLAS/SRC/zsyr2k.f
index e94734d9..94ed2e36 100644
--- a/BLAS/SRC/zsyr2k.f
+++ b/BLAS/SRC/zsyr2k.f
@@ -121,6 +121,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -130,6 +132,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/zsyrk.f b/BLAS/SRC/zsyrk.f
index 0e0d7ced..486a1744 100644
--- a/BLAS/SRC/zsyrk.f
+++ b/BLAS/SRC/zsyrk.f
@@ -104,6 +104,8 @@
* max( 1, n ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -113,6 +115,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/ztbmv.f b/BLAS/SRC/ztbmv.f
index ef85dbee..7c85c1b5 100644
--- a/BLAS/SRC/ztbmv.f
+++ b/BLAS/SRC/ztbmv.f
@@ -125,6 +125,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -134,6 +136,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ZERO
diff --git a/BLAS/SRC/ztbsv.f b/BLAS/SRC/ztbsv.f
index ee1a90ac..42b234a7 100644
--- a/BLAS/SRC/ztbsv.f
+++ b/BLAS/SRC/ztbsv.f
@@ -129,6 +129,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -138,6 +140,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ZERO
diff --git a/BLAS/SRC/ztpmv.f b/BLAS/SRC/ztpmv.f
index bb81f348..5a7b3b8b 100644
--- a/BLAS/SRC/ztpmv.f
+++ b/BLAS/SRC/ztpmv.f
@@ -85,6 +85,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -94,6 +96,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ZERO
diff --git a/BLAS/SRC/ztpsv.f b/BLAS/SRC/ztpsv.f
index 5163a12d..b56e1d8c 100644
--- a/BLAS/SRC/ztpsv.f
+++ b/BLAS/SRC/ztpsv.f
@@ -88,6 +88,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -97,6 +99,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ZERO
diff --git a/BLAS/SRC/ztrmm.f b/BLAS/SRC/ztrmm.f
index 3f5dc3c6..56f3360f 100644
--- a/BLAS/SRC/ztrmm.f
+++ b/BLAS/SRC/ztrmm.f
@@ -114,6 +114,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -123,6 +125,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/ztrmv.f b/BLAS/SRC/ztrmv.f
index 1c08bc6c..43001729 100644
--- a/BLAS/SRC/ztrmv.f
+++ b/BLAS/SRC/ztrmv.f
@@ -88,6 +88,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -97,6 +99,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ZERO
diff --git a/BLAS/SRC/ztrsm.f b/BLAS/SRC/ztrsm.f
index 844c7247..7d81de51 100644
--- a/BLAS/SRC/ztrsm.f
+++ b/BLAS/SRC/ztrsm.f
@@ -116,6 +116,8 @@
* max( 1, m ).
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 3 Blas routine.
*
@@ -125,6 +127,7 @@
* Jeremy Du Croz, Numerical Algorithms Group Ltd.
* Sven Hammarling, Numerical Algorithms Group Ltd.
*
+* =====================================================================
*
* .. External Functions ..
LOGICAL LSAME
diff --git a/BLAS/SRC/ztrsv.f b/BLAS/SRC/ztrsv.f
index 5e92174c..c48d9945 100644
--- a/BLAS/SRC/ztrsv.f
+++ b/BLAS/SRC/ztrsv.f
@@ -91,6 +91,8 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
+* Further Details
+* ===============
*
* Level 2 Blas routine.
*
@@ -100,6 +102,7 @@
* Sven Hammarling, Nag Central Office.
* Richard Hanson, Sandia National Labs.
*
+* =====================================================================
*
* .. Parameters ..
DOUBLE COMPLEX ZERO
diff --git a/SRC/cla_gbrfsx_extended.f b/SRC/cla_gbrfsx_extended.f
index e1a4e3e9..04d59475 100644
--- a/SRC/cla_gbrfsx_extended.f
+++ b/SRC/cla_gbrfsx_extended.f
@@ -1,4 +1,4 @@
- SUBROUTINE CLA_GBRFSX_EXTENDED( PREC_TYPE, TRANS_TYPE, N, KL, KU,
+ SUBROUTINE CLA_GBRFSX_EXTENDED ( PREC_TYPE, TRANS_TYPE, N, KL, KU,
$ NRHS, AB, LDAB, AFB, LDAFB, IPIV,
$ COLEQU, C, B, LDB, Y, LDY,
$ BERR_OUT, N_NORMS, ERRS_N, ERRS_C,
@@ -30,6 +30,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* CLA_GBRFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/cla_gbrpvgrw.f b/SRC/cla_gbrpvgrw.f
index aa85d57f..0d7443c4 100644
--- a/SRC/cla_gbrpvgrw.f
+++ b/SRC/cla_gbrpvgrw.f
@@ -18,6 +18,14 @@
COMPLEX AB( LDAB, * ), AFB( LDAFB, * )
* ..
*
+* Purpose
+* =======
+*
+* CLA_GBRPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/cla_gerfsx_extended.f b/SRC/cla_gerfsx_extended.f
index 7231f2cd..fa9c9a18 100644
--- a/SRC/cla_gerfsx_extended.f
+++ b/SRC/cla_gerfsx_extended.f
@@ -30,6 +30,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* CLA_GERFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/cla_herfsx_extended.f b/SRC/cla_herfsx_extended.f
index b79d9708..dcb5e58e 100644
--- a/SRC/cla_herfsx_extended.f
+++ b/SRC/cla_herfsx_extended.f
@@ -30,6 +30,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* CLA_HERFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/cla_herpvgrw.f b/SRC/cla_herpvgrw.f
index 10e82fd2..04b77e7a 100644
--- a/SRC/cla_herpvgrw.f
+++ b/SRC/cla_herpvgrw.f
@@ -21,6 +21,14 @@
REAL WORK( * )
* ..
*
+* Purpose
+* =======
+*
+* CLA_HERPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/cla_porfsx_extended.f b/SRC/cla_porfsx_extended.f
index 8e05a6bb..7ea06a37 100644
--- a/SRC/cla_porfsx_extended.f
+++ b/SRC/cla_porfsx_extended.f
@@ -29,6 +29,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* CLA_PORFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/cla_porpvgrw.f b/SRC/cla_porpvgrw.f
index 3f01199c..93808203 100644
--- a/SRC/cla_porpvgrw.f
+++ b/SRC/cla_porpvgrw.f
@@ -19,6 +19,14 @@
REAL WORK( * )
* ..
*
+* Purpose
+* =======
+*
+* CLA_PORPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/cla_rpvgrw.f b/SRC/cla_rpvgrw.f
index fb481c22..3cfa3fb1 100644
--- a/SRC/cla_rpvgrw.f
+++ b/SRC/cla_rpvgrw.f
@@ -17,6 +17,14 @@
COMPLEX A( LDA, * ), AF( LDAF, * )
* ..
*
+* Purpose
+* =======
+*
+* CLA_RPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/cla_syrfsx_extended.f b/SRC/cla_syrfsx_extended.f
index d3df3149..9bedfc55 100644
--- a/SRC/cla_syrfsx_extended.f
+++ b/SRC/cla_syrfsx_extended.f
@@ -30,6 +30,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* CLA_SYRFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/cla_syrpvgrw.f b/SRC/cla_syrpvgrw.f
index 1c1a6e52..66c6adbe 100644
--- a/SRC/cla_syrpvgrw.f
+++ b/SRC/cla_syrpvgrw.f
@@ -21,6 +21,14 @@
INTEGER IPIV( * )
* ..
*
+* Purpose
+* =======
+*
+* CLA_SYRPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/ctgsja.f b/SRC/ctgsja.f
index 8e9f9461..05c056a4 100644
--- a/SRC/ctgsja.f
+++ b/SRC/ctgsja.f
@@ -144,7 +144,7 @@
* K and L specify the subblocks in the input matrices A and B:
* A23 = A(K+1:MIN(K+L,M),N-L+1:N) and B13 = B(1:L,,N-L+1:N)
* of A and B, whose GSVD is going to be computed by CTGSJA.
-* See Further details.
+* See Further Details.
*
* A (input/output) COMPLEX array, dimension (LDA,N)
* On entry, the M-by-N matrix A.
diff --git a/SRC/dgejsv.f b/SRC/dgejsv.f
index 28efa5f2..e0bf503c 100644
--- a/SRC/dgejsv.f
+++ b/SRC/dgejsv.f
@@ -16,13 +16,11 @@
* computation of SVD, PSVD, QSVD, (H,K)-SVD, and for solution of the
* eigenvalue problems Hx = lambda M x, H M x = lambda x with H, M > 0.
*
-* -#- Scalar Arguments -#-
-*
+* .. Scalar Arguments ..
IMPLICIT NONE
INTEGER INFO, LDA, LDU, LDV, LWORK, M, N
-*
-* -#- Array Arguments -#-
-*
+* ..
+* .. Array Arguments ..
DOUBLE PRECISION A( LDA, * ), SVA( N ), U( LDU, * ), V( LDV, * ),
& WORK( LWORK )
INTEGER IWORK( * )
@@ -30,7 +28,8 @@
* ..
*
* Purpose
-* ~~~~~~~
+* =======
+*
* DGEJSV computes the singular value decomposition (SVD) of a real M-by-N
* matrix [A], where M >= N. The SVD of [A] is written as
*
@@ -44,181 +43,114 @@
* are computed and stored in the arrays U and V, respectively. The diagonal
* of [SIGMA] is computed and stored in the array SVA.
*
-* Further details
-* ~~~~~~~~~~~~~~~
-* DGEJSV implements a preconditioned Jacobi SVD algorithm. It uses SGEQP3,
-* SGEQRF, and SGELQF as preprocessors and preconditioners. Optionally, an
-* additional row pivoting can be used as a preprocessor, which in some
-* cases results in much higher accuracy. An example is matrix A with the
-* structure A = D1 * C * D2, where D1, D2 are arbitrarily ill-conditioned
-* diagonal matrices and C is well-conditioned matrix. In that case, complete
-* pivoting in the first QR factorizations provides accuracy dependent on the
-* condition number of C, and independent of D1, D2. Such higher accuracy is
-* not completely understood theoretically, but it works well in practice.
-* Further, if A can be written as A = B*D, with well-conditioned B and some
-* diagonal D, then the high accuracy is guaranteed, both theoretically and
-* in software, independent of D. For more details see [1], [2].
-* The computational range for the singular values can be the full range
-* ( UNDERFLOW,OVERFLOW ), provided that the machine arithmetic and the BLAS
-* & LAPACK routines called by DGEJSV are implemented to work in that range.
-* If that is not the case, then the restriction for safe computation with
-* the singular values in the range of normalized IEEE numbers is that the
-* spectral condition number kappa(A)=sigma_max(A)/sigma_min(A) does not
-* overflow. This code (DGEJSV) is best used in this restricted range,
-* meaning that singular values of magnitude below ||A||_2 / SLAMCH('O') are
-* returned as zeros. See JOBR for details on this.
-* Further, this implementation is somewhat slower than the one described
-* in [1,2] due to replacement of some non-LAPACK components, and because
-* the choice of some tuning parameters in the iterative part (DGESVJ) is
-* left to the implementer on a particular machine.
-* The rank revealing QR factorization (in this code: SGEQP3) should be
-* implemented as in [3]. We have a new version of SGEQP3 under development
-* that is more robust than the current one in LAPACK, with a cleaner cut in
-* rank defficient cases. It will be available in the SIGMA library [4].
-* If M is much larger than N, it is obvious that the inital QRF with
-* column pivoting can be preprocessed by the QRF without pivoting. That
-* well known trick is not used in DGEJSV because in some cases heavy row
-* weighting can be treated with complete pivoting. The overhead in cases
-* M much larger than N is then only due to pivoting, but the benefits in
-* terms of accuracy have prevailed. The implementer/user can incorporate
-* this extra QRF step easily. The implementer can also improve data movement
-* (matrix transpose, matrix copy, matrix transposed copy) - this
-* implementation of DGEJSV uses only the simplest, naive data movement.
-*
-* Contributors
-* ~~~~~~~~~~~~
-* Zlatko Drmac (Zagreb, Croatia) and Kresimir Veselic (Hagen, Germany)
-*
-* References
-* ~~~~~~~~~~
-* [1] Z. Drmac and K. Veselic: New fast and accurate Jacobi SVD algorithm I.
-* SIAM J. Matrix Anal. Appl. Vol. 35, No. 2 (2008), pp. 1322-1342.
-* LAPACK Working note 169.
-* [2] Z. Drmac and K. Veselic: New fast and accurate Jacobi SVD algorithm II.
-* SIAM J. Matrix Anal. Appl. Vol. 35, No. 2 (2008), pp. 1343-1362.
-* LAPACK Working note 170.
-* [3] Z. Drmac and Z. Bujanovic: On the failure of rank-revealing QR
-* factorization software - a case study.
-* ACM Trans. Math. Softw. Vol. 35, No 2 (2008), pp. 1-28.
-* LAPACK Working note 176.
-* [4] Z. Drmac: SIGMA - mathematical software library for accurate SVD, PSV,
-* QSVD, (H,K)-SVD computations.
-* Department of Mathematics, University of Zagreb, 2008.
-*
-* Bugs, examples and comments
-* ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-* Please report all bugs and send interesting examples and/or comments to
-* drmac@math.hr. Thank you.
-*
* Arguments
-* ~~~~~~~~~
-*............................................................................
-*. JOBA (input) CHARACTER*1
-*. Specifies the level of accuracy:
-*. = 'C': This option works well (high relative accuracy) if A = B * D,
-*. with well-conditioned B and arbitrary diagonal matrix D.
-*. The accuracy cannot be spoiled by COLUMN scaling. The
-*. accuracy of the computed output depends on the condition of
-*. B, and the procedure aims at the best theoretical accuracy.
-*. The relative error max_{i=1:N}|d sigma_i| / sigma_i is
-*. bounded by f(M,N)*epsilon* cond(B), independent of D.
-*. The input matrix is preprocessed with the QRF with column
-*. pivoting. This initial preprocessing and preconditioning by
-*. a rank revealing QR factorization is common for all values of
-*. JOBA. Additional actions are specified as follows:
-*. = 'E': Computation as with 'C' with an additional estimate of the
-*. condition number of B. It provides a realistic error bound.
-*. = 'F': If A = D1 * C * D2 with ill-conditioned diagonal scalings
-*. D1, D2, and well-conditioned matrix C, this option gives
-*. higher accuracy than the 'C' option. If the structure of the
-*. input matrix is not known, and relative accuracy is
-*. desirable, then this option is advisable. The input matrix A
-*. is preprocessed with QR factorization with FULL (row and
-*. column) pivoting.
-*. = 'G' Computation as with 'F' with an additional estimate of the
-*. condition number of B, where A=D*B. If A has heavily weighted
-*. rows, then using this condition number gives too pessimistic
-*. error bound.
-*. = 'A': Small singular values are the noise and the matrix is treated
-*. as numerically rank defficient. The error in the computed
-*. singular values is bounded by f(m,n)*epsilon*||A||.
-*. The computed SVD A = U * S * V^t restores A up to
-*. f(m,n)*epsilon*||A||.
-*. This gives the procedure the licence to discard (set to zero)
-*. all singular values below N*epsilon*||A||.
-*. = 'R': Similar as in 'A'. Rank revealing property of the initial
-*. QR factorization is used do reveal (using triangular factor)
-*. a gap sigma_{r+1} < epsilon * sigma_r in which case the
-*. numerical RANK is declared to be r. The SVD is computed with
-*. absolute error bounds, but more accurately than with 'A'.
-*.
-*. JOBU (input) CHARACTER*1
-*. Specifies whether to compute the columns of U:
-*. = 'U': N columns of U are returned in the array U.
-*. = 'F': full set of M left sing. vectors is returned in the array U.
-*. = 'W': U may be used as workspace of length M*N. See the description
-*. of U.
-*. = 'N': U is not computed.
-*.
-*. JOBV (input) CHARACTER*1
-*. Specifies whether to compute the matrix V:
-*. = 'V': N columns of V are returned in the array V; Jacobi rotations
-*. are not explicitly accumulated.
-*. = 'J': N columns of V are returned in the array V, but they are
-*. computed as the product of Jacobi rotations. This option is
-*. allowed only if JOBU .NE. 'N', i.e. in computing the full SVD.
-*. = 'W': V may be used as workspace of length N*N. See the description
-*. of V.
-*. = 'N': V is not computed.
-*.
-*. JOBR (input) CHARACTER*1
-*. Specifies the RANGE for the singular values. Issues the licence to
-*. set to zero small positive singular values if they are outside
-*. specified range. If A .NE. 0 is scaled so that the largest singular
-*. value of c*A is around DSQRT(BIG), BIG=SLAMCH('O'), then JOBR issues
-*. the licence to kill columns of A whose norm in c*A is less than
-*. DSQRT(SFMIN) (for JOBR.EQ.'R'), or less than SMALL=SFMIN/EPSLN,
-*. where SFMIN=SLAMCH('S'), EPSLN=SLAMCH('E').
-*. = 'N': Do not kill small columns of c*A. This option assumes that
-*. BLAS and QR factorizations and triangular solvers are
-*. implemented to work in that range. If the condition of A
-*. is greater than BIG, use DGESVJ.
-*. = 'R': RESTRICTED range for sigma(c*A) is [DSQRT(SFMIN), DSQRT(BIG)]
-*. (roughly, as described above). This option is recommended.
-*. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-*. For computing the singular values in the FULL range [SFMIN,BIG]
-*. use DGESVJ.
-*.
-*. JOBT (input) CHARACTER*1
-*. If the matrix is square then the procedure may determine to use
-*. transposed A if A^t seems to be better with respect to convergence.
-*. If the matrix is not square, JOBT is ignored. This is subject to
-*. changes in the future.
-*. The decision is based on two values of entropy over the adjoint
-*. orbit of A^t * A. See the descriptions of WORK(6) and WORK(7).
-*. = 'T': transpose if entropy test indicates possibly faster
-*. convergence of Jacobi process if A^t is taken as input. If A is
-*. replaced with A^t, then the row pivoting is included automatically.
-*. = 'N': do not speculate.
-*. This option can be used to compute only the singular values, or the
-*. full SVD (U, SIGMA and V). For only one set of singular vectors
-*. (U or V), the caller should provide both U and V, as one of the
-*. matrices is used as workspace if the matrix A is transposed.
-*. The implementer can easily remove this constraint and make the
-*. code more complicated. See the descriptions of U and V.
-*.
-*. JOBP (input) CHARACTER*1
-*. Issues the licence to introduce structured perturbations to drown
-*. denormalized numbers. This licence should be active if the
-*. denormals are poorly implemented, causing slow computation,
-*. especially in cases of fast convergence (!). For details see [1,2].
-*. For the sake of simplicity, this perturbations are included only
-*. when the full SVD or only the singular values are requested. The
-*. implementer/user can easily add the perturbation for the cases of
-*. computing one set of singular vectors.
-*. = 'P': introduce perturbation
-*. = 'N': do not perturb
-*............................................................................
+* =========
+*
+* JOBA (input) CHARACTER*1
+* Specifies the level of accuracy:
+* = 'C': This option works well (high relative accuracy) if A = B * D,
+* with well-conditioned B and arbitrary diagonal matrix D.
+* The accuracy cannot be spoiled by COLUMN scaling. The
+* accuracy of the computed output depends on the condition of
+* B, and the procedure aims at the best theoretical accuracy.
+* The relative error max_{i=1:N}|d sigma_i| / sigma_i is
+* bounded by f(M,N)*epsilon* cond(B), independent of D.
+* The input matrix is preprocessed with the QRF with column
+* pivoting. This initial preprocessing and preconditioning by
+* a rank revealing QR factorization is common for all values of
+* JOBA. Additional actions are specified as follows:
+* = 'E': Computation as with 'C' with an additional estimate of the
+* condition number of B. It provides a realistic error bound.
+* = 'F': If A = D1 * C * D2 with ill-conditioned diagonal scalings
+* D1, D2, and well-conditioned matrix C, this option gives
+* higher accuracy than the 'C' option. If the structure of the
+* input matrix is not known, and relative accuracy is
+* desirable, then this option is advisable. The input matrix A
+* is preprocessed with QR factorization with FULL (row and
+* column) pivoting.
+* = 'G' Computation as with 'F' with an additional estimate of the
+* condition number of B, where A=D*B. If A has heavily weighted
+* rows, then using this condition number gives too pessimistic
+* error bound.
+* = 'A': Small singular values are the noise and the matrix is treated
+* as numerically rank defficient. The error in the computed
+* singular values is bounded by f(m,n)*epsilon*||A||.
+* The computed SVD A = U * S * V^t restores A up to
+* f(m,n)*epsilon*||A||.
+* This gives the procedure the licence to discard (set to zero)
+* all singular values below N*epsilon*||A||.
+* = 'R': Similar as in 'A'. Rank revealing property of the initial
+* QR factorization is used do reveal (using triangular factor)
+* a gap sigma_{r+1} < epsilon * sigma_r in which case the
+* numerical RANK is declared to be r. The SVD is computed with
+* absolute error bounds, but more accurately than with 'A'.
+*
+* JOBU (input) CHARACTER*1
+* Specifies whether to compute the columns of U:
+* = 'U': N columns of U are returned in the array U.
+* = 'F': full set of M left sing. vectors is returned in the array U.
+* = 'W': U may be used as workspace of length M*N. See the description
+* of U.
+* = 'N': U is not computed.
+*
+* JOBV (input) CHARACTER*1
+* Specifies whether to compute the matrix V:
+* = 'V': N columns of V are returned in the array V; Jacobi rotations
+* are not explicitly accumulated.
+* = 'J': N columns of V are returned in the array V, but they are
+* computed as the product of Jacobi rotations. This option is
+* allowed only if JOBU .NE. 'N', i.e. in computing the full SVD.
+* = 'W': V may be used as workspace of length N*N. See the description
+* of V.
+* = 'N': V is not computed.
+*
+* JOBR (input) CHARACTER*1
+* Specifies the RANGE for the singular values. Issues the licence to
+* set to zero small positive singular values if they are outside
+* specified range. If A .NE. 0 is scaled so that the largest singular
+* value of c*A is around DSQRT(BIG), BIG=SLAMCH('O'), then JOBR issues
+* the licence to kill columns of A whose norm in c*A is less than
+* DSQRT(SFMIN) (for JOBR.EQ.'R'), or less than SMALL=SFMIN/EPSLN,
+* where SFMIN=SLAMCH('S'), EPSLN=SLAMCH('E').
+* = 'N': Do not kill small columns of c*A. This option assumes that
+* BLAS and QR factorizations and triangular solvers are
+* implemented to work in that range. If the condition of A
+* is greater than BIG, use DGESVJ.
+* = 'R': RESTRICTED range for sigma(c*A) is [DSQRT(SFMIN), DSQRT(BIG)]
+* (roughly, as described above). This option is recommended.
+* ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* For computing the singular values in the FULL range [SFMIN,BIG]
+* use DGESVJ.
+*
+* JOBT (input) CHARACTER*1
+* If the matrix is square then the procedure may determine to use
+* transposed A if A^t seems to be better with respect to convergence.
+* If the matrix is not square, JOBT is ignored. This is subject to
+* changes in the future.
+* The decision is based on two values of entropy over the adjoint
+* orbit of A^t * A. See the descriptions of WORK(6) and WORK(7).
+* = 'T': transpose if entropy test indicates possibly faster
+* convergence of Jacobi process if A^t is taken as input. If A is
+* replaced with A^t, then the row pivoting is included automatically.
+* = 'N': do not speculate.
+* This option can be used to compute only the singular values, or the
+* full SVD (U, SIGMA and V). For only one set of singular vectors
+* (U or V), the caller should provide both U and V, as one of the
+* matrices is used as workspace if the matrix A is transposed.
+* The implementer can easily remove this constraint and make the
+* code more complicated. See the descriptions of U and V.
+*
+* JOBP (input) CHARACTER*1
+* Issues the licence to introduce structured perturbations to drown
+* denormalized numbers. This licence should be active if the
+* denormals are poorly implemented, causing slow computation,
+* especially in cases of fast convergence (!). For details see [1,2].
+* For the sake of simplicity, this perturbations are included only
+* when the full SVD or only the singular values are requested. The
+* implementer/user can easily add the perturbation for the cases of
+* computing one set of singular vectors.
+* = 'P': introduce perturbation
+* = 'N': do not perturb
*
* M (input) INTEGER
* The number of rows of the input matrix A. M >= 0.
@@ -365,15 +297,80 @@
* > 0 : DGEJSV did not converge in the maximal allowed number
* of sweeps. The computed values may be inaccurate.
*
-*............................................................................
+* Further Details
+* ===============
*
-* Local Parameters:
+* DGEJSV implements a preconditioned Jacobi SVD algorithm. It uses SGEQP3,
+* SGEQRF, and SGELQF as preprocessors and preconditioners. Optionally, an
+* additional row pivoting can be used as a preprocessor, which in some
+* cases results in much higher accuracy. An example is matrix A with the
+* structure A = D1 * C * D2, where D1, D2 are arbitrarily ill-conditioned
+* diagonal matrices and C is well-conditioned matrix. In that case, complete
+* pivoting in the first QR factorizations provides accuracy dependent on the
+* condition number of C, and independent of D1, D2. Such higher accuracy is
+* not completely understood theoretically, but it works well in practice.
+* Further, if A can be written as A = B*D, with well-conditioned B and some
+* diagonal D, then the high accuracy is guaranteed, both theoretically and
+* in software, independent of D. For more details see [1], [2].
+* The computational range for the singular values can be the full range
+* ( UNDERFLOW,OVERFLOW ), provided that the machine arithmetic and the BLAS
+* & LAPACK routines called by DGEJSV are implemented to work in that range.
+* If that is not the case, then the restriction for safe computation with
+* the singular values in the range of normalized IEEE numbers is that the
+* spectral condition number kappa(A)=sigma_max(A)/sigma_min(A) does not
+* overflow. This code (DGEJSV) is best used in this restricted range,
+* meaning that singular values of magnitude below ||A||_2 / SLAMCH('O') are
+* returned as zeros. See JOBR for details on this.
+* Further, this implementation is somewhat slower than the one described
+* in [1,2] due to replacement of some non-LAPACK components, and because
+* the choice of some tuning parameters in the iterative part (DGESVJ) is
+* left to the implementer on a particular machine.
+* The rank revealing QR factorization (in this code: SGEQP3) should be
+* implemented as in [3]. We have a new version of SGEQP3 under development
+* that is more robust than the current one in LAPACK, with a cleaner cut in
+* rank defficient cases. It will be available in the SIGMA library [4].
+* If M is much larger than N, it is obvious that the inital QRF with
+* column pivoting can be preprocessed by the QRF without pivoting. That
+* well known trick is not used in DGEJSV because in some cases heavy row
+* weighting can be treated with complete pivoting. The overhead in cases
+* M much larger than N is then only due to pivoting, but the benefits in
+* terms of accuracy have prevailed. The implementer/user can incorporate
+* this extra QRF step easily. The implementer can also improve data movement
+* (matrix transpose, matrix copy, matrix transposed copy) - this
+* implementation of DGEJSV uses only the simplest, naive data movement.
*
- DOUBLE PRECISION ZERO, ONE
- PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 )
+* Contributors
*
-* Local Scalars:
+* Zlatko Drmac (Zagreb, Croatia) and Kresimir Veselic (Hagen, Germany)
*
+* References
+*
+* [1] Z. Drmac and K. Veselic: New fast and accurate Jacobi SVD algorithm I.
+* SIAM J. Matrix Anal. Appl. Vol. 35, No. 2 (2008), pp. 1322-1342.
+* LAPACK Working note 169.
+* [2] Z. Drmac and K. Veselic: New fast and accurate Jacobi SVD algorithm II.
+* SIAM J. Matrix Anal. Appl. Vol. 35, No. 2 (2008), pp. 1343-1362.
+* LAPACK Working note 170.
+* [3] Z. Drmac and Z. Bujanovic: On the failure of rank-revealing QR
+* factorization software - a case study.
+* ACM Trans. Math. Softw. Vol. 35, No 2 (2008), pp. 1-28.
+* LAPACK Working note 176.
+* [4] Z. Drmac: SIGMA - mathematical software library for accurate SVD, PSV,
+* QSVD, (H,K)-SVD computations.
+* Department of Mathematics, University of Zagreb, 2008.
+*
+* Bugs, examples and comments
+*
+* Please report all bugs and send interesting examples and/or comments to
+* drmac@math.hr. Thank you.
+*
+* ==========================================================================
+*
+* .. Local Parameters ..
+ DOUBLE PRECISION ZERO, ONE
+ PARAMETER ( ZERO = 0.0D0, ONE = 1.0D0 )
+* ..
+* .. Local Scalars ..
DOUBLE PRECISION AAPP, AAQQ, AATMAX, AATMIN, BIG, BIG1, COND_OK,
& CONDR1, CONDR2, ENTRA, ENTRAT, EPSLN, MAXPRJ, SCALEM,
& SCONDA, SFMIN, SMALL, TEMP1, USCAL1, USCAL2, XSC
@@ -381,28 +378,24 @@
LOGICAL ALMORT, DEFR, ERREST, GOSCAL, JRACC, KILL, LSVEC,
& L2ABER, L2KILL, L2PERT, L2RANK, L2TRAN,
& NOSCAL, ROWPIV, RSVEC, TRANSP
-*
-* Intrinsic Functions:
-*
+* ..
+* .. Intrinsic Functions ..
INTRINSIC DABS, DLOG, DMAX1, DMIN1, DBLE,
& MAX0, MIN0, IDNINT, DSIGN, DSQRT
-*
-* External Functions:
-*
+* ..
+* .. External Functions ..
DOUBLE PRECISION DLAMCH, DNRM2
INTEGER IDAMAX
LOGICAL LSAME
EXTERNAL IDAMAX, LSAME, DLAMCH, DNRM2
-*
-* External Subroutines ( BLAS, LAPACK ):
-*
+* ..
+* .. External Subroutines ..
EXTERNAL DCOPY, DGELQF, DGEQP3, DGEQRF, DLACPY, DLASCL,
& DLASET, DLASSQ, DLASWP, DORGQR, DORMLQ,
& DORMQR, DPOCON, DSCAL, DSWAP, DTRSM, XERBLA
*
EXTERNAL DGESVJ
-*
-*............................................................................
+* ..
*
* Test the input arguments
*
@@ -1061,7 +1054,7 @@
*
ELSE IF ( LSVEC .AND. ( .NOT. RSVEC ) ) THEN
*
-* -#- Singular Values and Left Singular Vectors -#-
+* .. Singular Values and Left Singular Vectors ..
*
* .. second preconditioning step to avoid need to accumulate
* Jacobi rotations in the Jacobi iterations.
@@ -1108,7 +1101,7 @@
*
ELSE
*
-* -#- Full SVD -#-
+* .. Full SVD ..
*
IF ( .NOT. JRACC ) THEN
*
diff --git a/SRC/dggesx.f b/SRC/dggesx.f
index d5218d36..369d32a7 100644
--- a/SRC/dggesx.f
+++ b/SRC/dggesx.f
@@ -229,7 +229,7 @@
* be caused due to scaling.
* =N+3: reordering failed in DTGSEN.
*
-* Further details
+* Further Details
* ===============
*
* An approximate (asymptotic) bound on the average absolute error of
diff --git a/SRC/dgsvj0.f b/SRC/dgsvj0.f
index 473aa58a..4e66880b 100644
--- a/SRC/dgsvj0.f
+++ b/SRC/dgsvj0.f
@@ -34,7 +34,7 @@
* it does not check convergence (stopping criterion). Few tuning
* parameters (marked by [TP]) are available for the implementer.
*
-* Further details
+* Further Details
* ~~~~~~~~~~~~~~~
* DGSVJ0 is used just to enable SGESVJ to call a simplified version of
* itself to work on a submatrix of the original matrix.
diff --git a/SRC/dgsvj1.f b/SRC/dgsvj1.f
index 5f6a102c..5a49206c 100644
--- a/SRC/dgsvj1.f
+++ b/SRC/dgsvj1.f
@@ -36,7 +36,7 @@
* (stopping criterion). Few tunning parameters (marked by [TP]) are
* available for the implementer.
*
-* Further details
+* Further Details
* ~~~~~~~~~~~~~~~
* DGSVJ1 applies few sweeps of Jacobi rotations in the column space of
* the input M-by-N matrix A. The pivot pairs are taken from the (1,2)
diff --git a/SRC/dla_gbrfsx_extended.f b/SRC/dla_gbrfsx_extended.f
index e3bb0f1a..998af02e 100644
--- a/SRC/dla_gbrfsx_extended.f
+++ b/SRC/dla_gbrfsx_extended.f
@@ -30,6 +30,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* DLA_GBRFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/dla_gbrpvgrw.f b/SRC/dla_gbrpvgrw.f
index eea53feb..e7e3fa2e 100644
--- a/SRC/dla_gbrpvgrw.f
+++ b/SRC/dla_gbrpvgrw.f
@@ -18,6 +18,14 @@
DOUBLE PRECISION AB( LDAB, * ), AFB( LDAFB, * )
* ..
*
+* Purpose
+* =======
+*
+* DLA_GBRPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/dla_gerfsx_extended.f b/SRC/dla_gerfsx_extended.f
index 05daa969..bbb600a6 100644
--- a/SRC/dla_gerfsx_extended.f
+++ b/SRC/dla_gerfsx_extended.f
@@ -29,6 +29,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* DLA_GERFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/dla_porfsx_extended.f b/SRC/dla_porfsx_extended.f
index 33c16119..d30fdc89 100644
--- a/SRC/dla_porfsx_extended.f
+++ b/SRC/dla_porfsx_extended.f
@@ -29,6 +29,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* DLA_PORFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/dla_porpvgrw.f b/SRC/dla_porpvgrw.f
index 06efe3f1..05ce8f8b 100644
--- a/SRC/dla_porpvgrw.f
+++ b/SRC/dla_porpvgrw.f
@@ -19,6 +19,14 @@
DOUBLE PRECISION A( LDA, * ), AF( LDAF, * ), WORK( * )
* ..
*
+* Purpose
+* =======
+*
+* DLA_PORPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/dla_rpvgrw.f b/SRC/dla_rpvgrw.f
index 47d7ed8b..41da7a44 100644
--- a/SRC/dla_rpvgrw.f
+++ b/SRC/dla_rpvgrw.f
@@ -17,6 +17,14 @@
DOUBLE PRECISION A( LDA, * ), AF( LDAF, * )
* ..
*
+* Purpose
+* =======
+*
+* DLA_RPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/dla_syrfsx_extended.f b/SRC/dla_syrfsx_extended.f
index 6eee0573..82a6895d 100644
--- a/SRC/dla_syrfsx_extended.f
+++ b/SRC/dla_syrfsx_extended.f
@@ -30,6 +30,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* DLA_SYRFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/dla_syrpvgrw.f b/SRC/dla_syrpvgrw.f
index 67adf069..99b5c096 100644
--- a/SRC/dla_syrpvgrw.f
+++ b/SRC/dla_syrpvgrw.f
@@ -20,6 +20,14 @@
DOUBLE PRECISION A( LDA, * ), AF( LDAF, * ), WORK( * )
* ..
*
+* Purpose
+* =======
+*
+* DLA_SYRPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/dtgsja.f b/SRC/dtgsja.f
index 5e1c092f..1fae9c82 100644
--- a/SRC/dtgsja.f
+++ b/SRC/dtgsja.f
@@ -143,7 +143,7 @@
* K and L specify the subblocks in the input matrices A and B:
* A23 = A(K+1:MIN(K+L,M),N-L+1:N) and B13 = B(1:L,N-L+1:N)
* of A and B, whose GSVD is going to be computed by DTGSJA.
-* See Further details.
+* See Further Details.
*
* A (input/output) DOUBLE PRECISION array, dimension (LDA,N)
* On entry, the M-by-N matrix A.
diff --git a/SRC/sgejsv.f b/SRC/sgejsv.f
index 054151fc..d85b9c05 100644
--- a/SRC/sgejsv.f
+++ b/SRC/sgejsv.f
@@ -16,12 +16,12 @@
* computation of SVD, PSVD, QSVD, (H,K)-SVD, and for solution of the
* eigenvalue problems Hx = lambda M x, H M x = lambda x with H, M > 0.
*
-* -#- Scalar Arguments -#-
+* .. Scalar Arguments ..
*
IMPLICIT NONE
INTEGER INFO, LDA, LDU, LDV, LWORK, M, N
*
-* -#- Array Arguments -#-
+* .. Array Arguments ..
*
REAL A( LDA, * ), SVA( N ), U( LDU, * ), V( LDV, * ),
& WORK( LWORK )
@@ -30,7 +30,7 @@
* ..
*
* Purpose
-* ~~~~~~~
+* =======
* SGEJSV computes the singular value decomposition (SVD) of a real M-by-N
* matrix [A], where M >= N. The SVD of [A] is written as
*
@@ -44,181 +44,114 @@
* are computed and stored in the arrays U and V, respectively. The diagonal
* of [SIGMA] is computed and stored in the array SVA.
*
-* Further details
-* ~~~~~~~~~~~~~~~
-* SGEJSV implements a preconditioned Jacobi SVD algorithm. It uses SGEQP3,
-* SGEQRF, and SGELQF as preprocessors and preconditioners. Optionally, an
-* additional row pivoting can be used as a preprocessor, which in some
-* cases results in much higher accuracy. An example is matrix A with the
-* structure A = D1 * C * D2, where D1, D2 are arbitrarily ill-conditioned
-* diagonal matrices and C is well-conditioned matrix. In that case, complete
-* pivoting in the first QR factorizations provides accuracy dependent on the
-* condition number of C, and independent of D1, D2. Such higher accuracy is
-* not completely understood theoretically, but it works well in practice.
-* Further, if A can be written as A = B*D, with well-conditioned B and some
-* diagonal D, then the high accuracy is guaranteed, both theoretically and
-* in software, independent of D. For more details see [1], [2].
-* The computational range for the singular values can be the full range
-* ( UNDERFLOW,OVERFLOW ), provided that the machine arithmetic and the BLAS
-* & LAPACK routines called by SGEJSV are implemented to work in that range.
-* If that is not the case, then the restriction for safe computation with
-* the singular values in the range of normalized IEEE numbers is that the
-* spectral condition number kappa(A)=sigma_max(A)/sigma_min(A) does not
-* overflow. This code (SGEJSV) is best used in this restricted range,
-* meaning that singular values of magnitude below ||A||_2 / SLAMCH('O') are
-* returned as zeros. See JOBR for details on this.
-* Further, this implementation is somewhat slower than the one described
-* in [1,2] due to replacement of some non-LAPACK components, and because
-* the choice of some tuning parameters in the iterative part (SGESVJ) is
-* left to the implementer on a particular machine.
-* The rank revealing QR factorization (in this code: SGEQP3) should be
-* implemented as in [3]. We have a new version of SGEQP3 under development
-* that is more robust than the current one in LAPACK, with a cleaner cut in
-* rank defficient cases. It will be available in the SIGMA library [4].
-* If M is much larger than N, it is obvious that the inital QRF with
-* column pivoting can be preprocessed by the QRF without pivoting. That
-* well known trick is not used in SGEJSV because in some cases heavy row
-* weighting can be treated with complete pivoting. The overhead in cases
-* M much larger than N is then only due to pivoting, but the benefits in
-* terms of accuracy have prevailed. The implementer/user can incorporate
-* this extra QRF step easily. The implementer can also improve data movement
-* (matrix transpose, matrix copy, matrix transposed copy) - this
-* implementation of SGEJSV uses only the simplest, naive data movement.
-*
-* Contributors
-* ~~~~~~~~~~~~
-* Zlatko Drmac (Zagreb, Croatia) and Kresimir Veselic (Hagen, Germany)
-*
-* References
-* ~~~~~~~~~~
-* [1] Z. Drmac and K. Veselic: New fast and accurate Jacobi SVD algorithm I.
-* SIAM J. Matrix Anal. Appl. Vol. 35, No. 2 (2008), pp. 1322-1342.
-* LAPACK Working note 169.
-* [2] Z. Drmac and K. Veselic: New fast and accurate Jacobi SVD algorithm II.
-* SIAM J. Matrix Anal. Appl. Vol. 35, No. 2 (2008), pp. 1343-1362.
-* LAPACK Working note 170.
-* [3] Z. Drmac and Z. Bujanovic: On the failure of rank-revealing QR
-* factorization software - a case study.
-* ACM Trans. math. Softw. Vol. 35, No 2 (2008), pp. 1-28.
-* LAPACK Working note 176.
-* [4] Z. Drmac: SIGMA - mathematical software library for accurate SVD, PSV,
-* QSVD, (H,K)-SVD computations.
-* Department of Mathematics, University of Zagreb, 2008.
-*
-* Bugs, examples and comments
-* ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-* Please report all bugs and send interesting examples and/or comments to
-* drmac@math.hr. Thank you.
-*
* Arguments
-* ~~~~~~~~~
-*............................................................................
-*. JOBA (input) CHARACTER*1
-*. Specifies the level of accuracy:
-*. = 'C': This option works well (high relative accuracy) if A = B * D,
-*. with well-conditioned B and arbitrary diagonal matrix D.
-*. The accuracy cannot be spoiled by COLUMN scaling. The
-*. accuracy of the computed output depends on the condition of
-*. B, and the procedure aims at the best theoretical accuracy.
-*. The relative error max_{i=1:N}|d sigma_i| / sigma_i is
-*. bounded by f(M,N)*epsilon* cond(B), independent of D.
-*. The input matrix is preprocessed with the QRF with column
-*. pivoting. This initial preprocessing and preconditioning by
-*. a rank revealing QR factorization is common for all values of
-*. JOBA. Additional actions are specified as follows:
-*. = 'E': Computation as with 'C' with an additional estimate of the
-*. condition number of B. It provides a realistic error bound.
-*. = 'F': If A = D1 * C * D2 with ill-conditioned diagonal scalings
-*. D1, D2, and well-conditioned matrix C, this option gives
-*. higher accuracy than the 'C' option. If the structure of the
-*. input matrix is not known, and relative accuracy is
-*. desirable, then this option is advisable. The input matrix A
-*. is preprocessed with QR factorization with FULL (row and
-*. column) pivoting.
-*. = 'G' Computation as with 'F' with an additional estimate of the
-*. condition number of B, where A=D*B. If A has heavily weighted
-*. rows, then using this condition number gives too pessimistic
-*. error bound.
-*. = 'A': Small singular values are the noise and the matrix is treated
-*. as numerically rank defficient. The error in the computed
-*. singular values is bounded by f(m,n)*epsilon*||A||.
-*. The computed SVD A = U * S * V^t restores A up to
-*. f(m,n)*epsilon*||A||.
-*. This gives the procedure the licence to discard (set to zero)
-*. all singular values below N*epsilon*||A||.
-*. = 'R': Similar as in 'A'. Rank revealing property of the initial
-*. QR factorization is used do reveal (using triangular factor)
-*. a gap sigma_{r+1} < epsilon * sigma_r in which case the
-*. numerical RANK is declared to be r. The SVD is computed with
-*. absolute error bounds, but more accurately than with 'A'.
-*.
-*. JOBU (input) CHARACTER*1
-*. Specifies whether to compute the columns of U:
-*. = 'U': N columns of U are returned in the array U.
-*. = 'F': full set of M left sing. vectors is returned in the array U.
-*. = 'W': U may be used as workspace of length M*N. See the description
-*. of U.
-*. = 'N': U is not computed.
-*.
-*. JOBV (input) CHARACTER*1
-*. Specifies whether to compute the matrix V:
-*. = 'V': N columns of V are returned in the array V; Jacobi rotations
-*. are not explicitly accumulated.
-*. = 'J': N columns of V are returned in the array V, but they are
-*. computed as the product of Jacobi rotations. This option is
-*. allowed only if JOBU .NE. 'N', i.e. in computing the full SVD.
-*. = 'W': V may be used as workspace of length N*N. See the description
-*. of V.
-*. = 'N': V is not computed.
-*.
-*. JOBR (input) CHARACTER*1
-*. Specifies the RANGE for the singular values. Issues the licence to
-*. set to zero small positive singular values if they are outside
-*. specified range. If A .NE. 0 is scaled so that the largest singular
-*. value of c*A is around SQRT(BIG), BIG=SLAMCH('O'), then JOBR issues
-*. the licence to kill columns of A whose norm in c*A is less than
-*. SQRT(SFMIN) (for JOBR.EQ.'R'), or less than SMALL=SFMIN/EPSLN,
-*. where SFMIN=SLAMCH('S'), EPSLN=SLAMCH('E').
-*. = 'N': Do not kill small columns of c*A. This option assumes that
-*. BLAS and QR factorizations and triangular solvers are
-*. implemented to work in that range. If the condition of A
-*. is greater than BIG, use SGESVJ.
-*. = 'R': RESTRICTED range for sigma(c*A) is [SQRT(SFMIN), SQRT(BIG)]
-*. (roughly, as described above). This option is recommended.
-*. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-*. For computing the singular values in the FULL range [SFMIN,BIG]
-*. use SGESVJ.
-*.
-*. JOBT (input) CHARACTER*1
-*. If the matrix is square then the procedure may determine to use
-*. transposed A if A^t seems to be better with respect to convergence.
-*. If the matrix is not square, JOBT is ignored. This is subject to
-*. changes in the future.
-*. The decision is based on two values of entropy over the adjoint
-*. orbit of A^t * A. See the descriptions of WORK(6) and WORK(7).
-*. = 'T': transpose if entropy test indicates possibly faster
-*. convergence of Jacobi process if A^t is taken as input. If A is
-*. replaced with A^t, then the row pivoting is included automatically.
-*. = 'N': do not speculate.
-*. This option can be used to compute only the singular values, or the
-*. full SVD (U, SIGMA and V). For only one set of singular vectors
-*. (U or V), the caller should provide both U and V, as one of the
-*. matrices is used as workspace if the matrix A is transposed.
-*. The implementer can easily remove this constraint and make the
-*. code more complicated. See the descriptions of U and V.
-*.
-*. JOBP (input) CHARACTER*1
-*. Issues the licence to introduce structured perturbations to drown
-*. denormalized numbers. This licence should be active if the
-*. denormals are poorly implemented, causing slow computation,
-*. especially in cases of fast convergence (!). For details see [1,2].
-*. For the sake of simplicity, this perturbations are included only
-*. when the full SVD or only the singular values are requested. The
-*. implementer/user can easily add the perturbation for the cases of
-*. computing one set of singular vectors.
-*. = 'P': introduce perturbation
-*. = 'N': do not perturb
-*............................................................................
+* =========
+*
+* JOBA (input) CHARACTER*1
+* Specifies the level of accuracy:
+* = 'C': This option works well (high relative accuracy) if A = B * D,
+* with well-conditioned B and arbitrary diagonal matrix D.
+* The accuracy cannot be spoiled by COLUMN scaling. The
+* accuracy of the computed output depends on the condition of
+* B, and the procedure aims at the best theoretical accuracy.
+* The relative error max_{i=1:N}|d sigma_i| / sigma_i is
+* bounded by f(M,N)*epsilon* cond(B), independent of D.
+* The input matrix is preprocessed with the QRF with column
+* pivoting. This initial preprocessing and preconditioning by
+* a rank revealing QR factorization is common for all values of
+* JOBA. Additional actions are specified as follows:
+* = 'E': Computation as with 'C' with an additional estimate of the
+* condition number of B. It provides a realistic error bound.
+* = 'F': If A = D1 * C * D2 with ill-conditioned diagonal scalings
+* D1, D2, and well-conditioned matrix C, this option gives
+* higher accuracy than the 'C' option. If the structure of the
+* input matrix is not known, and relative accuracy is
+* desirable, then this option is advisable. The input matrix A
+* is preprocessed with QR factorization with FULL (row and
+* column) pivoting.
+* = 'G' Computation as with 'F' with an additional estimate of the
+* condition number of B, where A=D*B. If A has heavily weighted
+* rows, then using this condition number gives too pessimistic
+* error bound.
+* = 'A': Small singular values are the noise and the matrix is treated
+* as numerically rank defficient. The error in the computed
+* singular values is bounded by f(m,n)*epsilon*||A||.
+* The computed SVD A = U * S * V^t restores A up to
+* f(m,n)*epsilon*||A||.
+* This gives the procedure the licence to discard (set to zero)
+* all singular values below N*epsilon*||A||.
+* = 'R': Similar as in 'A'. Rank revealing property of the initial
+* QR factorization is used do reveal (using triangular factor)
+* a gap sigma_{r+1} < epsilon * sigma_r in which case the
+* numerical RANK is declared to be r. The SVD is computed with
+* absolute error bounds, but more accurately than with 'A'.
+*
+* JOBU (input) CHARACTER*1
+* Specifies whether to compute the columns of U:
+* = 'U': N columns of U are returned in the array U.
+* = 'F': full set of M left sing. vectors is returned in the array U.
+* = 'W': U may be used as workspace of length M*N. See the description
+* of U.
+* = 'N': U is not computed.
+*
+* JOBV (input) CHARACTER*1
+* Specifies whether to compute the matrix V:
+* = 'V': N columns of V are returned in the array V; Jacobi rotations
+* are not explicitly accumulated.
+* = 'J': N columns of V are returned in the array V, but they are
+* computed as the product of Jacobi rotations. This option is
+* allowed only if JOBU .NE. 'N', i.e. in computing the full SVD.
+* = 'W': V may be used as workspace of length N*N. See the description
+* of V.
+* = 'N': V is not computed.
+*
+* JOBR (input) CHARACTER*1
+* Specifies the RANGE for the singular values. Issues the licence to
+* set to zero small positive singular values if they are outside
+* specified range. If A .NE. 0 is scaled so that the largest singular
+* value of c*A is around SQRT(BIG), BIG=SLAMCH('O'), then JOBR issues
+* the licence to kill columns of A whose norm in c*A is less than
+* SQRT(SFMIN) (for JOBR.EQ.'R'), or less than SMALL=SFMIN/EPSLN,
+* where SFMIN=SLAMCH('S'), EPSLN=SLAMCH('E').
+* = 'N': Do not kill small columns of c*A. This option assumes that
+* BLAS and QR factorizations and triangular solvers are
+* implemented to work in that range. If the condition of A
+* is greater than BIG, use SGESVJ.
+* = 'R': RESTRICTED range for sigma(c*A) is [SQRT(SFMIN), SQRT(BIG)]
+* (roughly, as described above). This option is recommended.
+* ===========================
+* For computing the singular values in the FULL range [SFMIN,BIG]
+* use SGESVJ.
+*
+* JOBT (input) CHARACTER*1
+* If the matrix is square then the procedure may determine to use
+* transposed A if A^t seems to be better with respect to convergence.
+* If the matrix is not square, JOBT is ignored. This is subject to
+* changes in the future.
+* The decision is based on two values of entropy over the adjoint
+* orbit of A^t * A. See the descriptions of WORK(6) and WORK(7).
+* = 'T': transpose if entropy test indicates possibly faster
+* convergence of Jacobi process if A^t is taken as input. If A is
+* replaced with A^t, then the row pivoting is included automatically.
+* = 'N': do not speculate.
+* This option can be used to compute only the singular values, or the
+* full SVD (U, SIGMA and V). For only one set of singular vectors
+* (U or V), the caller should provide both U and V, as one of the
+* matrices is used as workspace if the matrix A is transposed.
+* The implementer can easily remove this constraint and make the
+* code more complicated. See the descriptions of U and V.
+*
+* JOBP (input) CHARACTER*1
+* Issues the licence to introduce structured perturbations to drown
+* denormalized numbers. This licence should be active if the
+* denormals are poorly implemented, causing slow computation,
+* especially in cases of fast convergence (!). For details see [1,2].
+* For the sake of simplicity, this perturbations are included only
+* when the full SVD or only the singular values are requested. The
+* implementer/user can easily add the perturbation for the cases of
+* computing one set of singular vectors.
+* = 'P': introduce perturbation
+* = 'N': do not perturb
*
* M (input) INTEGER
* The number of rows of the input matrix A. M >= 0.
@@ -365,15 +298,80 @@
* > 0 : SGEJSV did not converge in the maximal allowed number
* of sweeps. The computed values may be inaccurate.
*
-*............................................................................
+* Further Details
+* ===============
*
-* Local Parameters:
+* SGEJSV implements a preconditioned Jacobi SVD algorithm. It uses SGEQP3,
+* SGEQRF, and SGELQF as preprocessors and preconditioners. Optionally, an
+* additional row pivoting can be used as a preprocessor, which in some
+* cases results in much higher accuracy. An example is matrix A with the
+* structure A = D1 * C * D2, where D1, D2 are arbitrarily ill-conditioned
+* diagonal matrices and C is well-conditioned matrix. In that case, complete
+* pivoting in the first QR factorizations provides accuracy dependent on the
+* condition number of C, and independent of D1, D2. Such higher accuracy is
+* not completely understood theoretically, but it works well in practice.
+* Further, if A can be written as A = B*D, with well-conditioned B and some
+* diagonal D, then the high accuracy is guaranteed, both theoretically and
+* in software, independent of D. For more details see [1], [2].
+* The computational range for the singular values can be the full range
+* ( UNDERFLOW,OVERFLOW ), provided that the machine arithmetic and the BLAS
+* & LAPACK routines called by SGEJSV are implemented to work in that range.
+* If that is not the case, then the restriction for safe computation with
+* the singular values in the range of normalized IEEE numbers is that the
+* spectral condition number kappa(A)=sigma_max(A)/sigma_min(A) does not
+* overflow. This code (SGEJSV) is best used in this restricted range,
+* meaning that singular values of magnitude below ||A||_2 / SLAMCH('O') are
+* returned as zeros. See JOBR for details on this.
+* Further, this implementation is somewhat slower than the one described
+* in [1,2] due to replacement of some non-LAPACK components, and because
+* the choice of some tuning parameters in the iterative part (SGESVJ) is
+* left to the implementer on a particular machine.
+* The rank revealing QR factorization (in this code: SGEQP3) should be
+* implemented as in [3]. We have a new version of SGEQP3 under development
+* that is more robust than the current one in LAPACK, with a cleaner cut in
+* rank defficient cases. It will be available in the SIGMA library [4].
+* If M is much larger than N, it is obvious that the inital QRF with
+* column pivoting can be preprocessed by the QRF without pivoting. That
+* well known trick is not used in SGEJSV because in some cases heavy row
+* weighting can be treated with complete pivoting. The overhead in cases
+* M much larger than N is then only due to pivoting, but the benefits in
+* terms of accuracy have prevailed. The implementer/user can incorporate
+* this extra QRF step easily. The implementer can also improve data movement
+* (matrix transpose, matrix copy, matrix transposed copy) - this
+* implementation of SGEJSV uses only the simplest, naive data movement.
*
- REAL ZERO, ONE
- PARAMETER ( ZERO = 0.0E0, ONE = 1.0E0 )
+* Contributors
+*
+* Zlatko Drmac (Zagreb, Croatia) and Kresimir Veselic (Hagen, Germany)
*
-* Local Scalars:
+* References
*
+* [1] Z. Drmac and K. Veselic: New fast and accurate Jacobi SVD algorithm I.
+* SIAM J. Matrix Anal. Appl. Vol. 35, No. 2 (2008), pp. 1322-1342.
+* LAPACK Working note 169.
+* [2] Z. Drmac and K. Veselic: New fast and accurate Jacobi SVD algorithm II.
+* SIAM J. Matrix Anal. Appl. Vol. 35, No. 2 (2008), pp. 1343-1362.
+* LAPACK Working note 170.
+* [3] Z. Drmac and Z. Bujanovic: On the failure of rank-revealing QR
+* factorization software - a case study.
+* ACM Trans. math. Softw. Vol. 35, No 2 (2008), pp. 1-28.
+* LAPACK Working note 176.
+* [4] Z. Drmac: SIGMA - mathematical software library for accurate SVD, PSV,
+* QSVD, (H,K)-SVD computations.
+* Department of Mathematics, University of Zagreb, 2008.
+*
+* Bugs, examples and comments
+*
+* Please report all bugs and send interesting examples and/or comments to
+* drmac@math.hr. Thank you.
+*
+* ===========================================================================
+*
+* .. Local Parameters ..
+ REAL ZERO, ONE
+ PARAMETER ( ZERO = 0.0E0, ONE = 1.0E0 )
+* ..
+* .. Local Scalars ..
REAL AAPP, AAQQ, AATMAX, AATMIN, BIG, BIG1, COND_OK,
& CONDR1, CONDR2, ENTRA, ENTRAT, EPSLN, MAXPRJ, SCALEM,
& SCONDA, SFMIN, SMALL, TEMP1, USCAL1, USCAL2, XSC
@@ -381,28 +379,24 @@
LOGICAL ALMORT, DEFR, ERREST, GOSCAL, JRACC, KILL, LSVEC,
& L2ABER, L2KILL, L2PERT, L2RANK, L2TRAN,
& NOSCAL, ROWPIV, RSVEC, TRANSP
-*
-* Intrinsic Functions:
-*
+* ..
+* .. Intrinsic Functions ..
INTRINSIC ABS, ALOG, AMAX1, AMIN1, FLOAT,
& MAX0, MIN0, NINT, SIGN, SQRT
-*
-* External Functions:
-*
+* ..
+* .. External Functions ..
REAL SLAMCH, SNRM2
INTEGER ISAMAX
LOGICAL LSAME
EXTERNAL ISAMAX, LSAME, SLAMCH, SNRM2
-*
-* External Subroutines ( BLAS, LAPACK ):
-*
+* ..
+* .. External Subroutines ..
EXTERNAL SCOPY, SGELQF, SGEQP3, SGEQRF, SLACPY, SLASCL,
& SLASET, SLASSQ, SLASWP, SORGQR, SORMLQ,
& SORMQR, SPOCON, SSCAL, SSWAP, STRSM, XERBLA
*
EXTERNAL SGESVJ
-*
-*............................................................................
+* ..
*
* Test the input arguments
*
@@ -1058,7 +1052,7 @@
*
ELSE IF ( LSVEC .AND. ( .NOT. RSVEC ) ) THEN
*
-* -#- Singular Values and Left Singular Vectors -#-
+* .. Singular Values and Left Singular Vectors ..
*
* .. second preconditioning step to avoid need to accumulate
* Jacobi rotations in the Jacobi iterations.
@@ -1105,7 +1099,7 @@
*
ELSE
*
-* -#- Full SVD -#-
+* .. Full SVD ..
*
IF ( .NOT. JRACC ) THEN
*
diff --git a/SRC/sggesx.f b/SRC/sggesx.f
index 55c12b68..ebc26688 100644
--- a/SRC/sggesx.f
+++ b/SRC/sggesx.f
@@ -229,7 +229,7 @@
* be caused due to scaling.
* =N+3: reordering failed in STGSEN.
*
-* Further details
+* Further Details
* ===============
*
* An approximate (asymptotic) bound on the average absolute error of
diff --git a/SRC/sgsvj0.f b/SRC/sgsvj0.f
index a7cb80b9..bf293aad 100644
--- a/SRC/sgsvj0.f
+++ b/SRC/sgsvj0.f
@@ -35,7 +35,7 @@
* it does not check convergence (stopping criterion). Few tuning
* parameters (marked by [TP]) are available for the implementer.
*
-* Further details
+* Further Details
* ~~~~~~~~~~~~~~~
* SGSVJ0 is used just to enable SGESVJ to call a simplified version of
* itself to work on a submatrix of the original matrix.
diff --git a/SRC/sgsvj1.f b/SRC/sgsvj1.f
index aa965f29..a3a077aa 100644
--- a/SRC/sgsvj1.f
+++ b/SRC/sgsvj1.f
@@ -36,7 +36,7 @@
* (stopping criterion). Few tunning parameters (marked by [TP]) are
* available for the implementer.
*
-* Further details
+* Further Details
* ~~~~~~~~~~~~~~~
* SGSVJ1 applies few sweeps of Jacobi rotations in the column space of
* the input M-by-N matrix A. The pivot pairs are taken from the (1,2)
diff --git a/SRC/sla_gbrfsx_extended.f b/SRC/sla_gbrfsx_extended.f
index 93261517..fa2a8a06 100644
--- a/SRC/sla_gbrfsx_extended.f
+++ b/SRC/sla_gbrfsx_extended.f
@@ -30,6 +30,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* SLA_GBRFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/sla_gbrpvgrw.f b/SRC/sla_gbrpvgrw.f
index 67985e0e..a1fdffdf 100644
--- a/SRC/sla_gbrpvgrw.f
+++ b/SRC/sla_gbrpvgrw.f
@@ -18,6 +18,14 @@
REAL AB( LDAB, * ), AFB( LDAFB, * )
* ..
*
+* Purpose
+* =======
+*
+* SLA_GBRPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/sla_gerfsx_extended.f b/SRC/sla_gerfsx_extended.f
index 8d2c8419..c5882bf6 100644
--- a/SRC/sla_gerfsx_extended.f
+++ b/SRC/sla_gerfsx_extended.f
@@ -29,6 +29,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* SLA_GERFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/sla_porfsx_extended.f b/SRC/sla_porfsx_extended.f
index 2d1a1244..0fe4a74b 100644
--- a/SRC/sla_porfsx_extended.f
+++ b/SRC/sla_porfsx_extended.f
@@ -29,6 +29,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* SLA_PORFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/sla_porpvgrw.f b/SRC/sla_porpvgrw.f
index 9174aa5e..05b89df0 100644
--- a/SRC/sla_porpvgrw.f
+++ b/SRC/sla_porpvgrw.f
@@ -18,6 +18,14 @@
REAL A( LDA, * ), AF( LDAF, * ), WORK( * )
* ..
*
+* Purpose
+* =======
+*
+* SLA_PORPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/sla_rpvgrw.f b/SRC/sla_rpvgrw.f
index e58f582c..1eba009f 100644
--- a/SRC/sla_rpvgrw.f
+++ b/SRC/sla_rpvgrw.f
@@ -17,6 +17,14 @@
REAL A( LDA, * ), AF( LDAF, * )
* ..
*
+* Purpose
+* =======
+*
+* SLA_RPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/sla_syrfsx_extended.f b/SRC/sla_syrfsx_extended.f
index ce0911d5..9e7c97f9 100644
--- a/SRC/sla_syrfsx_extended.f
+++ b/SRC/sla_syrfsx_extended.f
@@ -30,6 +30,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* SLA_SYRFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/sla_syrpvgrw.f b/SRC/sla_syrpvgrw.f
index a56cfd17..a61e6e4a 100644
--- a/SRC/sla_syrpvgrw.f
+++ b/SRC/sla_syrpvgrw.f
@@ -20,6 +20,14 @@
REAL A( LDA, * ), AF( LDAF, * ), WORK( * )
* ..
*
+* Purpose
+* =======
+*
+* SLA_SYRPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/stgsja.f b/SRC/stgsja.f
index d090cf91..5acf5077 100644
--- a/SRC/stgsja.f
+++ b/SRC/stgsja.f
@@ -143,7 +143,7 @@
* K and L specify the subblocks in the input matrices A and B:
* A23 = A(K+1:MIN(K+L,M),N-L+1:N) and B13 = B(1:L,N-L+1:N)
* of A and B, whose GSVD is going to be computed by STGSJA.
-* See Further details.
+* See Further Details.
*
* A (input/output) REAL array, dimension (LDA,N)
* On entry, the M-by-N matrix A.
diff --git a/SRC/zla_gbrfsx_extended.f b/SRC/zla_gbrfsx_extended.f
index a3096707..6ec24a7d 100644
--- a/SRC/zla_gbrfsx_extended.f
+++ b/SRC/zla_gbrfsx_extended.f
@@ -30,6 +30,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* ZLA_GBRFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/zla_gbrpvgrw.f b/SRC/zla_gbrpvgrw.f
index 49d50f1b..c0c74477 100644
--- a/SRC/zla_gbrpvgrw.f
+++ b/SRC/zla_gbrpvgrw.f
@@ -18,6 +18,14 @@
COMPLEX*16 AB( LDAB, * ), AFB( LDAFB, * )
* ..
*
+* Purpose
+* =======
+*
+* ZLA_GBRPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/zla_gerfsx_extended.f b/SRC/zla_gerfsx_extended.f
index d1848e15..718f3ca9 100644
--- a/SRC/zla_gerfsx_extended.f
+++ b/SRC/zla_gerfsx_extended.f
@@ -30,6 +30,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* ZLA_GERFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/zla_herfsx_extended.f b/SRC/zla_herfsx_extended.f
index 84a71c1c..2d1646bc 100644
--- a/SRC/zla_herfsx_extended.f
+++ b/SRC/zla_herfsx_extended.f
@@ -30,6 +30,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* ZLA_HERFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/zla_herpvgrw.f b/SRC/zla_herpvgrw.f
index 35dc69bf..42525831 100644
--- a/SRC/zla_herpvgrw.f
+++ b/SRC/zla_herpvgrw.f
@@ -21,6 +21,14 @@
DOUBLE PRECISION WORK( * )
* ..
*
+* Purpose
+* =======
+*
+* ZLA_HERPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/zla_porfsx_extended.f b/SRC/zla_porfsx_extended.f
index b9afd66e..f39c31ef 100644
--- a/SRC/zla_porfsx_extended.f
+++ b/SRC/zla_porfsx_extended.f
@@ -29,6 +29,15 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* ZLA_PORFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
+
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/zla_porpvgrw.f b/SRC/zla_porpvgrw.f
index c6a06023..0c000881 100644
--- a/SRC/zla_porpvgrw.f
+++ b/SRC/zla_porpvgrw.f
@@ -20,6 +20,14 @@
DOUBLE PRECISION WORK( * )
* ..
*
+* Purpose
+* =======
+*
+* ZLA_PORPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/zla_rpvgrw.f b/SRC/zla_rpvgrw.f
index 1d5546e8..7bd5420e 100644
--- a/SRC/zla_rpvgrw.f
+++ b/SRC/zla_rpvgrw.f
@@ -17,6 +17,14 @@
COMPLEX*16 A( LDA, * ), AF( LDAF, * )
* ..
*
+* Purpose
+* =======
+*
+* ZLA_RPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/zla_syrfsx_extended.f b/SRC/zla_syrfsx_extended.f
index 2621ddff..1841b7f8 100644
--- a/SRC/zla_syrfsx_extended.f
+++ b/SRC/zla_syrfsx_extended.f
@@ -30,6 +30,14 @@
$ ERRS_N( NRHS, * ), ERRS_C( NRHS, * )
* ..
*
+* Purpose
+* =======
+*
+* ZLA_SYRFSX_EXTENDED computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/zla_syrpvgrw.f b/SRC/zla_syrpvgrw.f
index 892d216b..bbcd01b3 100644
--- a/SRC/zla_syrpvgrw.f
+++ b/SRC/zla_syrpvgrw.f
@@ -21,6 +21,14 @@
INTEGER IPIV( * )
* ..
*
+* Purpose
+* =======
+*
+* ZLA_SYRPVGRW computes ... .
+*
+* Arguments
+* =========
+*
* =====================================================================
*
* .. Local Scalars ..
diff --git a/SRC/ztgsja.f b/SRC/ztgsja.f
index 895aaaf7..1156e3cb 100644
--- a/SRC/ztgsja.f
+++ b/SRC/ztgsja.f
@@ -144,7 +144,7 @@
* K and L specify the subblocks in the input matrices A and B:
* A23 = A(K+1:MIN(K+L,M),N-L+1:N) and B13 = B(1:L,,N-L+1:N)
* of A and B, whose GSVD is going to be computed by ZTGSJA.
-* See Further details.
+* See Further Details.
*
* A (input/output) COMPLEX*16 array, dimension (LDA,N)
* On entry, the M-by-N matrix A.