diff options
50 files changed, 141 insertions, 127 deletions
diff --git a/SRC/dgbrfsx.f b/SRC/dgbrfsx.f index 59a43eda..f636a0b8 100644 --- a/SRC/dgbrfsx.f +++ b/SRC/dgbrfsx.f @@ -263,7 +263,7 @@ * Specifies the number of parameters set in PARAMS. If .LE. 0, the * PARAMS array is never referenced and default values are used. * -* PARAMS (input / output) DOUBLE PRECISION array, dimension NPARAMS +* PARAMS (input / output) DOUBLE PRECISION array, dimension (NPARAMS) * Specifies algorithm parameters. If an entry is .LT. 0.0, then * that entry will be filled with default value used for that * parameter. Only positions up to NPARAMS are accessed; defaults diff --git a/SRC/dgbsvxx.f b/SRC/dgbsvxx.f index cb29b2e4..849fe15e 100644 --- a/SRC/dgbsvxx.f +++ b/SRC/dgbsvxx.f @@ -17,7 +17,7 @@ * .. Scalar Arguments .. CHARACTER EQUED, FACT, TRANS INTEGER INFO, LDAB, LDAFB, LDB, LDX, N, NRHS, NPARAMS, - $ N_ERR_BNDS + $ N_ERR_BNDS, KL, KU DOUBLE PRECISION RCOND, RPVGRW * .. * .. Array Arguments .. @@ -377,7 +377,7 @@ * Specifies the number of parameters set in PARAMS. If .LE. 0, the * PARAMS array is never referenced and default values are used. * -* PARAMS (input / output) DOUBLE PRECISION array, dimension NPARAMS +* PARAMS (input / output) DOUBLE PRECISION array, dimension (NPARAMS) * Specifies algorithm parameters. If an entry is .LT. 0.0, then * that entry will be filled with default value used for that * parameter. Only positions up to NPARAMS are accessed; defaults diff --git a/SRC/dgejsv.f b/SRC/dgejsv.f index f5dc6ef0..bd715720 100644 --- a/SRC/dgejsv.f +++ b/SRC/dgejsv.f @@ -46,9 +46,9 @@ * Arguments * ========= * -* JOBA (input) CHARACTER*1 +* JOBA (input) CHARACTER*1 * Specifies the level of accuracy: -* = 'C': This option works well (high relative accuracy) if A = B * D, +* = '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 @@ -59,52 +59,52 @@ * 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 +* = '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 +* = '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 +* = '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 +* = '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 +* = '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 +* 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 +* = '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. +* = 'N': U is not computed. * -* JOBV (input) CHARACTER*1 +* JOBV (input) CHARACTER*1 * Specifies whether to compute the matrix V: -* = 'V': N columns of V are returned in the array V; Jacobi rotations +* = '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 +* = '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 +* = 'W': V may be used as workspace of length N*N. See the description * of V. -* = 'N': V is not computed. +* = 'N': V is not computed. * -* JOBR (input) CHARACTER*1 +* 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 @@ -112,27 +112,27 @@ * 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 +* = '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)] +* = '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 +* 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 +* = '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. +* = '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 @@ -140,7 +140,7 @@ * The implementer can easily remove this constraint and make the * code more complicated. See the descriptions of U and V. * -* JOBP (input) CHARACTER*1 +* 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, @@ -149,22 +149,22 @@ * 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 +* = 'P': introduce perturbation +* = 'N': do not perturb * -* M (input) INTEGER +* M (input) INTEGER * The number of rows of the input matrix A. M >= 0. * -* N (input) INTEGER +* N (input) INTEGER * The number of columns of the input matrix A. M >= N >= 0. * -* A (input/workspace) REAL array, dimension (LDA,N) +* A (input/workspace) DOUBLE PRECISION array, dimension (LDA,N) * On entry, the M-by-N matrix A. * * LDA (input) INTEGER * The leading dimension of the array A. LDA >= max(1,M). * -* SVA (workspace/output) REAL array, dimension (N) +* SVA (workspace/output) DOUBLE PRECISION array, dimension (N) * On exit, * - For WORK(1)/WORK(2) = ONE: The singular values of A. During the * computation SVA contains Euclidean column norms of the @@ -177,7 +177,7 @@ * as exact zeros obtained by "set to zero" because they are * below the numerical rank threshold or are denormalized numbers. * -* U (workspace/output) REAL array, dimension ( LDU, N ) +* U (workspace/output) DOUBLE PRECISION array, dimension ( LDU, N ) * If JOBU = 'U', then U contains on exit the M-by-N matrix of * the left singular vectors. * If JOBU = 'F', then U contains on exit the M-by-M matrix of @@ -196,7 +196,7 @@ * The leading dimension of the array U, LDU >= 1. * IF JOBU = 'U' or 'F' or 'W', then LDU >= M. * -* V (workspace/output) REAL array, dimension ( LDV, N ) +* V (workspace/output) DOUBLE PRECISION array, dimension ( LDV, N ) * If JOBV = 'V', 'J' then V contains on exit the N-by-N matrix of * the right singular vectors; * If JOBV = 'W', AND (JOBU.EQ.'U' AND JOBT.EQ.'T' AND M.EQ.N), @@ -212,7 +212,7 @@ * The leading dimension of the array V, LDV >= 1. * If JOBV = 'V' or 'J' or 'W', then LDV >= N. * -* WORK (workspace/output) REAL array, dimension at least LWORK. +* WORK (workspace/output) DOUBLE PRECISION array, dimension at least LWORK. * On exit, * WORK(1) = SCALE = WORK(2) / WORK(1) is the scaling factor such * that SCALE*SVA(1:N) are the computed singular values diff --git a/SRC/dgerfsx.f b/SRC/dgerfsx.f index 2008aef8..dafad246 100644 --- a/SRC/dgerfsx.f +++ b/SRC/dgerfsx.f @@ -250,7 +250,7 @@ * Specifies the number of parameters set in PARAMS. If .LE. 0, the * PARAMS array is never referenced and default values are used. * -* PARAMS (input / output) DOUBLE PRECISION array, dimension NPARAMS +* PARAMS (input / output) DOUBLE PRECISION array, dimension (NPARAMS) * Specifies algorithm parameters. If an entry is .LT. 0.0, then * that entry will be filled with default value used for that * parameter. Only positions up to NPARAMS are accessed; defaults diff --git a/SRC/dgesc2.f b/SRC/dgesc2.f index 9b1e0754..e28ddd9c 100644 --- a/SRC/dgesc2.f +++ b/SRC/dgesc2.f @@ -49,9 +49,9 @@ * The pivot indices; for 1 <= j <= N, column j of the * matrix has been interchanged with column JPIV(j). * -* SCALE (output) DOUBLE PRECISION -* On exit, SCALE contains the scale factor. SCALE is chosen -* 0 <= SCALE <= 1 to prevent owerflow in the solution. +* SCALE (output) DOUBLE PRECISION +* On exit, SCALE contains the scale factor. SCALE is chosen +* 0 <= SCALE <= 1 to prevent owerflow in the solution. * * Further Details * =============== diff --git a/SRC/dgesvj.f b/SRC/dgesvj.f index 85eaed29..cd60bbb7 100644 --- a/SRC/dgesvj.f +++ b/SRC/dgesvj.f @@ -139,7 +139,7 @@ * The number of columns of the input matrix A. * M >= N >= 0. * -* A (input/output) REAL array, dimension (LDA,N) +* A (input/output) DOUBLE PRECISION array, dimension (LDA,N) * On entry, the M-by-N matrix A. * On exit : * If JOBU .EQ. 'U' .OR. JOBU .EQ. 'C' : @@ -181,7 +181,7 @@ * LDA (input) INTEGER * The leading dimension of the array A. LDA >= max(1,M). * -* SVA (workspace/output) REAL array, dimension (N) +* SVA (workspace/output) DOUBLE PRECISION array, dimension (N) * On exit : * If INFO .EQ. 0 : * depending on the value SCALE = WORK(1), we have: @@ -201,7 +201,7 @@ * If JOBV .EQ. 'A', then the product of Jacobi rotations in DGESVJ * is applied to the first MV rows of V. See the description of JOBV. * -* V (input/output) REAL array, dimension (LDV,N) +* V (input/output) DOUBLE PRECISION array, dimension (LDV,N) * If JOBV = 'V', then V contains on exit the N-by-N matrix of * the right singular vectors; * If JOBV = 'A', then V contains the product of the computed right @@ -214,7 +214,7 @@ * If JOBV .EQ. 'V', then LDV .GE. max(1,N). * If JOBV .EQ. 'A', then LDV .GE. max(1,MV) . * -* WORK (input/workspace/output) REAL array, dimension max(4,M+N). +* WORK (input/workspace/output) DOUBLE PRECISION array, dimension max(4,M+N). * On entry : * If JOBU .EQ. 'C' : * WORK(1) = CTOL, where CTOL defines the threshold for convergence. @@ -241,7 +241,8 @@ * Jacobi rotation angles in the last sweep. It can be * useful for a post festum analysis. * -* LWORK length of WORK, WORK >= MAX(6,M+N) +* LWORK (input) INTEGER +* length of WORK, WORK >= MAX(6,M+N) * * INFO (output) INTEGER * = 0 : successful exit. diff --git a/SRC/dgesvxx.f b/SRC/dgesvxx.f index b188e93c..024f0aec 100644 --- a/SRC/dgesvxx.f +++ b/SRC/dgesvxx.f @@ -363,7 +363,7 @@ * Specifies the number of parameters set in PARAMS. If .LE. 0, the * PARAMS array is never referenced and default values are used. * -* PARAMS (input / output) DOUBLE PRECISION array, dimension NPARAMS +* PARAMS (input / output) DOUBLE PRECISION array, dimension (NPARAMS) * Specifies algorithm parameters. If an entry is .LT. 0.0, then * that entry will be filled with default value used for that * parameter. Only positions up to NPARAMS are accessed; defaults diff --git a/SRC/dggbal.f b/SRC/dggbal.f index 2c3bf70f..b4eff54a 100644 --- a/SRC/dggbal.f +++ b/SRC/dggbal.f @@ -88,7 +88,7 @@ * The order in which the interchanges are made is N to IHI+1, * then 1 to ILO-1. * -* WORK (workspace) REAL array, dimension (lwork) +* WORK (workspace) DOUBLE PRECISION array, dimension (lwork) * lwork must be at least max(1,6*N) when JOB = 'S' or 'B', and * at least 1 when JOB = 'N' or 'P'. * diff --git a/SRC/dgsvj0.f b/SRC/dgsvj0.f index 482584b9..6cf17674 100644 --- a/SRC/dgsvj0.f +++ b/SRC/dgsvj0.f @@ -69,7 +69,7 @@ * The number of columns of the input matrix A. * M >= N >= 0. * -* A (input/output) REAL array, dimension (LDA,N) +* A (input/output) DOUBLE PRECISION array, dimension (LDA,N) * On entry, M-by-N matrix A, such that A*diag(D) represents * the input matrix. * On exit, @@ -82,7 +82,7 @@ * LDA (input) INTEGER * The leading dimension of the array A. LDA >= max(1,M). * -* D (input/workspace/output) REAL array, dimension (N) +* D (input/workspace/output) DOUBLE PRECISION array, dimension (N) * The array D accumulates the scaling factors from the fast scaled * Jacobi rotations. * On entry, A*diag(D) represents the input matrix. @@ -92,7 +92,7 @@ * TOL and NSWEEP, respectively. * (See the descriptions of A, TOL and NSWEEP.) * -* SVA (input/workspace/output) REAL array, dimension (N) +* SVA (input/workspace/output) DOUBLE PRECISION array, dimension (N) * On entry, SVA contains the Euclidean norms of the columns of * the matrix A*diag(D). * On exit, SVA contains the Euclidean norms of the columns of @@ -103,7 +103,7 @@ * sequence of Jacobi rotations. * If JOBV = 'N', then MV is not referenced. * -* V (input/output) REAL array, dimension (LDV,N) +* V (input/output) DOUBLE PRECISION array, dimension (LDV,N) * If JOBV .EQ. 'V' then N rows of V are post-multipled by a * sequence of Jacobi rotations. * If JOBV .EQ. 'A' then MV rows of V are post-multipled by a @@ -115,13 +115,13 @@ * If JOBV = 'V', LDV .GE. N. * If JOBV = 'A', LDV .GE. MV. * -* EPS (input) INTEGER -* EPS = SLAMCH('Epsilon') +* EPS (input) DOUBLE PRECISION +* EPS = DLAMCH('Epsilon') * -* SFMIN (input) INTEGER -* SFMIN = SLAMCH('Safe Minimum') +* SFMIN (input) DOUBLE PRECISION +* SFMIN = DLAMCH('Safe Minimum') * -* TOL (input) REAL +* TOL (input) DOUBLE PRECISION * TOL is the threshold for Jacobi rotations. For a pair * A(:,p), A(:,q) of pivot columns, the Jacobi rotation is * applied only if DABS(COS(angle(A(:,p),A(:,q)))) .GT. TOL. @@ -130,7 +130,7 @@ * NSWEEP is the number of sweeps of Jacobi rotations to be * performed. * -* WORK (workspace) REAL array, dimension LWORK. +* WORK (workspace) DOUBLE PRECISION array, dimension (LWORK) * * LWORK (input) INTEGER * LWORK is the dimension of WORK. LWORK .GE. M. diff --git a/SRC/dgsvj1.f b/SRC/dgsvj1.f index 976cc7ac..5d49148a 100644 --- a/SRC/dgsvj1.f +++ b/SRC/dgsvj1.f @@ -87,7 +87,7 @@ * N1 specifies the 2 x 2 block partition, the first N1 columns are * rotated 'against' the remaining N-N1 columns of A. * -* A (input/output) REAL array, dimension (LDA,N) +* A (input/output) DOUBLE PRECISION array, dimension (LDA,N) * On entry, M-by-N matrix A, such that A*diag(D) represents * the input matrix. * On exit, @@ -100,7 +100,7 @@ * LDA (input) INTEGER * The leading dimension of the array A. LDA >= max(1,M). * -* D (input/workspace/output) REAL array, dimension (N) +* D (input/workspace/output) DOUBLE PRECISION array, dimension (N) * The array D accumulates the scaling factors from the fast scaled * Jacobi rotations. * On entry, A*diag(D) represents the input matrix. @@ -110,7 +110,7 @@ * TOL and NSWEEP, respectively. * (See the descriptions of N1, A, TOL and NSWEEP.) * -* SVA (input/workspace/output) REAL array, dimension (N) +* SVA (input/workspace/output) DOUBLE PRECISION array, dimension (N) * On entry, SVA contains the Euclidean norms of the columns of * the matrix A*diag(D). * On exit, SVA contains the Euclidean norms of the columns of @@ -121,7 +121,7 @@ * sequence of Jacobi rotations. * If JOBV = 'N', then MV is not referenced. * -* V (input/output) REAL array, dimension (LDV,N) +* V (input/output) DOUBLE PRECISION array, dimension (LDV,N) * If JOBV .EQ. 'V' then N rows of V are post-multipled by a * sequence of Jacobi rotations. * If JOBV .EQ. 'A' then MV rows of V are post-multipled by a @@ -133,13 +133,13 @@ * If JOBV = 'V', LDV .GE. N. * If JOBV = 'A', LDV .GE. MV. * -* EPS (input) INTEGER -* EPS = SLAMCH('Epsilon') +* EPS (input) DOUBLE PRECISION +* EPS = DLAMCH('Epsilon') * -* SFMIN (input) INTEGER -* SFMIN = SLAMCH('Safe Minimum') +* SFMIN (input) DOUBLE PRECISION +* SFMIN = DLAMCH('Safe Minimum') * -* TOL (input) REAL +* TOL (input) DOUBLE PRECISION * TOL is the threshold for Jacobi rotations. For a pair * A(:,p), A(:,q) of pivot columns, the Jacobi rotation is * applied only if DABS(COS(angle(A(:,p),A(:,q)))) .GT. TOL. @@ -148,7 +148,7 @@ * NSWEEP is the number of sweeps of Jacobi rotations to be * performed. * -* WORK (workspace) REAL array, dimension LWORK. +* WORK (workspace) DOUBLE PRECISION array, dimension (LWORK) * * LWORK (input) INTEGER * LWORK is the dimension of WORK. LWORK .GE. M. diff --git a/SRC/disnan.f b/SRC/disnan.f index 8334cfcf..d460d5b7 100644 --- a/SRC/disnan.f +++ b/SRC/disnan.f @@ -19,7 +19,7 @@ * Arguments * ========= * -* DIN (input) DOUBLE PRECISION +* DIN (input) DOUBLE PRECISION * Input to test for NaN. * * ===================================================================== diff --git a/SRC/dla_lin_berr.f b/SRC/dla_lin_berr.f index dd526e92..a23405a2 100644 --- a/SRC/dla_lin_berr.f +++ b/SRC/dla_lin_berr.f @@ -21,10 +21,10 @@ * Purpose * ======= * -* DLA_LIN_BERR computes componentwise relative backward error from +* DLA_LIN_BERR computes component-wise relative backward error from * the formula * max(i) ( abs(R(i)) / ( abs(op(A_s))*abs(Y) + abs(B_s) )(i) ) -* where abs(Z) is the componentwise absolute value of the matrix +* where abs(Z) is the component-wise absolute value of the matrix * or vector Z. * * Arguments @@ -42,17 +42,17 @@ * The number of right hand sides, i.e., the number of columns * of the matrices AYB, RES, and BERR. NRHS >= 0. * -* RES (input) DOUBLE PRECISION array, dimension (N,NRHS) +* RES (input) DOUBLE PRECISION array, dimension (N,NRHS) * The residual matrix, i.e., the matrix R in the relative backward * error formula above. * -* AYB (input) DOUBLE PRECISION array, dimension (N, NRHS) +* AYB (input) DOUBLE PRECISION array, dimension (N, NRHS) * The denominator in the relative backward error formula above, i.e., * the matrix abs(op(A_s))*abs(Y) + abs(B_s). The matrices A, Y, and B * are from iterative refinement (see dla_gerfsx_extended.f). * -* RES (output) DOUBLE PRECISION array, dimension (NRHS) -* The componentwise relative backward error from the formula above. +* RES (output) DOUBLE PRECISION array, dimension (NRHS) +* The component-wise relative backward error from the formula above. * * ===================================================================== * diff --git a/SRC/dla_porcond.f b/SRC/dla_porcond.f index b914482f..1581bd95 100644 --- a/SRC/dla_porcond.f +++ b/SRC/dla_porcond.f @@ -46,7 +46,7 @@ * The number of linear equations, i.e., the order of the * matrix A. N >= 0. * -* A (input) REAL array, dimension (LDA,N) +* A (input) DOUBLE PRECISION array, dimension (LDA,N) * On entry, the N-by-N matrix A. * * LDA (input) INTEGER diff --git a/SRC/dlaein.f b/SRC/dlaein.f index 1335f60b..973c84c7 100644 --- a/SRC/dlaein.f +++ b/SRC/dlaein.f @@ -26,11 +26,11 @@ * Arguments * ========= * -* RIGHTV (input) LOGICAL +* RIGHTV (input) LOGICAL * = .TRUE. : compute right eigenvector; * = .FALSE.: compute left eigenvector. * -* NOINIT (input) LOGICAL +* NOINIT (input) LOGICAL * = .TRUE. : no initial vector supplied in (VR,VI). * = .FALSE.: initial vector supplied in (VR,VI). * @@ -70,7 +70,7 @@ * LDB (input) INTEGER * The leading dimension of the array B. LDB >= N+1. * -* WORK (workspace) DOUBLE PRECISION array, dimension (N) +* WORK (workspace) DOUBLE PRECISION array, dimension (N) * * EPS3 (input) DOUBLE PRECISION * A small machine-dependent value which is used to perturb diff --git a/SRC/dlaexc.f b/SRC/dlaexc.f index d69390c7..99cb6a4e 100644 --- a/SRC/dlaexc.f +++ b/SRC/dlaexc.f @@ -41,7 +41,7 @@ * canonical form. * On exit, the updated matrix T, again in Schur canonical form. * -* LDT (input) INTEGER +* LDT (input) INTEGER * The leading dimension of the array T. LDT >= max(1,N). * * Q (input/output) DOUBLE PRECISION array, dimension (LDQ,N) diff --git a/SRC/dlaisnan.f b/SRC/dlaisnan.f index 6cac0a31..d6f8bd6b 100644 --- a/SRC/dlaisnan.f +++ b/SRC/dlaisnan.f @@ -29,8 +29,8 @@ * Arguments * ========= * -* DIN1 (input) DOUBLE PRECISION -* DIN2 (input) DOUBLE PRECISION +* DIN1 (input) DOUBLE PRECISION +* DIN2 (input) DOUBLE PRECISION * Two numbers to compare for inequality. * * ===================================================================== diff --git a/SRC/dlaneg.f b/SRC/dlaneg.f index ce78eca4..03885c90 100644 --- a/SRC/dlaneg.f +++ b/SRC/dlaneg.f @@ -1,6 +1,5 @@ - FUNCTION DLANEG( N, D, LLD, SIGMA, PIVMIN, R ) + INTEGER FUNCTION DLANEG( N, D, LLD, SIGMA, PIVMIN, R ) IMPLICIT NONE - INTEGER DLANEG * * -- LAPACK auxiliary routine (version 3.2) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- diff --git a/SRC/dlaqr2.f b/SRC/dlaqr2.f index 882c3247..27fa6408 100644 --- a/SRC/dlaqr2.f +++ b/SRC/dlaqr2.f @@ -101,8 +101,8 @@ * The number of converged eigenvalues uncovered by this * subroutine. * -* SR (output) DOUBLE PRECISION array, dimension KBOT -* SI (output) DOUBLE PRECISION array, dimension KBOT +* SR (output) DOUBLE PRECISION array, dimension (KBOT) +* SI (output) DOUBLE PRECISION array, dimension (KBOT) * On output, the real and imaginary parts of approximate * eigenvalues that may be used for shifts are stored in * SR(KBOT-ND-NS+1) through SR(KBOT-ND) and @@ -137,7 +137,7 @@ * The leading dimension of W just as declared in the * calling subroutine. NW .LE. LDV * -* WORK (workspace) DOUBLE PRECISION array, dimension LWORK. +* WORK (workspace) DOUBLE PRECISION array, dimension (LWORK) * On exit, WORK(1) is set to an estimate of the optimal value * of LWORK for the given values of N, NW, KTOP and KBOT. * diff --git a/SRC/dlaqr3.f b/SRC/dlaqr3.f index 86ed6664..c968094e 100644 --- a/SRC/dlaqr3.f +++ b/SRC/dlaqr3.f @@ -97,8 +97,8 @@ * The number of converged eigenvalues uncovered by this * subroutine. * -* SR (output) DOUBLE PRECISION array, dimension KBOT -* SI (output) DOUBLE PRECISION array, dimension KBOT +* SR (output) DOUBLE PRECISION array, dimension (KBOT) +* SI (output) DOUBLE PRECISION array, dimension (KBOT) * On output, the real and imaginary parts of approximate * eigenvalues that may be used for shifts are stored in * SR(KBOT-ND-NS+1) through SR(KBOT-ND) and @@ -133,7 +133,7 @@ * The leading dimension of W just as declared in the * calling subroutine. NW .LE. LDV * -* WORK (workspace) DOUBLE PRECISION array, dimension LWORK. +* WORK (workspace) DOUBLE PRECISION array, dimension (LWORK) * On exit, WORK(1) is set to an estimate of the optimal value * of LWORK for the given values of N, NW, KTOP and KBOT. * diff --git a/SRC/dlarra.f b/SRC/dlarra.f index 3e865912..e6bf4da5 100644 --- a/SRC/dlarra.f +++ b/SRC/dlarra.f @@ -45,12 +45,12 @@ * On exit, the entries E2( ISPLIT( I ) ), * 1 <= I <= NSPLIT, have been set to zero * -* SPLTOL (input) DOUBLE PRECISION +* SPLTOL (input) DOUBLE PRECISION * The threshold for splitting. Two criteria can be used: * SPLTOL<0 : criterion based on absolute off-diagonal value * SPLTOL>0 : criterion that preserves relative accuracy * -* TNRM (input) DOUBLE PRECISION +* TNRM (input) DOUBLE PRECISION * The norm of the matrix. * * NSPLIT (output) INTEGER diff --git a/SRC/dlarre.f b/SRC/dlarre.f index 9d330374..7e4bd42a 100644 --- a/SRC/dlarre.f +++ b/SRC/dlarre.f @@ -91,7 +91,7 @@ * An interval [LEFT,RIGHT] has converged if * RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) ) * -* SPLTOL (input) DOUBLE PRECISION +* SPLTOL (input) DOUBLE PRECISION * The threshold for splitting. * * NSPLIT (output) INTEGER diff --git a/SRC/dlarrf.f b/SRC/dlarrf.f index 29c2c954..7d092fd6 100644 --- a/SRC/dlarrf.f +++ b/SRC/dlarrf.f @@ -60,10 +60,12 @@ * WERR contain the semiwidth of the uncertainty * interval of the corresponding eigenvalue APPROXIMATION in W * -* SPDIAM (input) estimate of the spectral diameter obtained from the +* SPDIAM (input) estimate of the spectral diameter obtained from the * Gerschgorin intervals * -* CLGAPL, CLGAPR (input) absolute gap on each end of the cluster. +* CLGAPL (input) DOUBLE PRECISION +* CLGAPR (input) DOUBLE PRECISION +* absolute gap on each end of the cluster. * Set by the calling routine to protect against shifts too close * to eigenvalues outside the cluster. * @@ -83,6 +85,9 @@ * WORK (workspace) DOUBLE PRECISION array, dimension (2*N) * Workspace. * +* INFO (output) INTEGER +* Signals processing OK (=0) or failure (=1) +* * Further Details * =============== * diff --git a/SRC/dlarrj.f b/SRC/dlarrj.f index 64a79c30..5c425888 100644 --- a/SRC/dlarrj.f +++ b/SRC/dlarrj.f @@ -46,7 +46,7 @@ * ILAST (input) INTEGER * The index of the last eigenvalue to be computed. * -* RTOL (input) DOUBLE PRECISION +* RTOL (input) DOUBLE PRECISION * Tolerance for the convergence of the bisection intervals. * An interval [LEFT,RIGHT] has converged if * RIGHT-LEFT.LT.RTOL*MAX(|LEFT|,|RIGHT|). diff --git a/SRC/dlarrv.f b/SRC/dlarrv.f index f2288429..24cc25de 100644 --- a/SRC/dlarrv.f +++ b/SRC/dlarrv.f @@ -51,7 +51,7 @@ * is stored the corresponding shift as given by DLARRE. * On exit, L is overwritten. * -* PIVMIN (in) DOUBLE PRECISION +* PIVMIN (input) DOUBLE PRECISION * The minimum pivot allowed in the Sturm sequence. * * ISPLIT (input) INTEGER array, dimension (N) diff --git a/SRC/dlarscl2.f b/SRC/dlarscl2.f index 1c7a54d5..2fdebfaa 100644 --- a/SRC/dlarscl2.f +++ b/SRC/dlarscl2.f @@ -36,7 +36,7 @@ * N (input) INTEGER * The number of columns of D and X. N >= 0. * -* D (input) DOUBLE PRECISION array, length M +* D (input) DOUBLE PRECISION array, dimension (M) * Diagonal matrix D, stored as a vector of length M. * * X (input/output) DOUBLE PRECISION array, dimension (LDX,N) diff --git a/SRC/dlatdf.f b/SRC/dlatdf.f index 0a3b4a9d..d79acd27 100644 --- a/SRC/dlatdf.f +++ b/SRC/dlatdf.f @@ -49,7 +49,7 @@ * LDZ (input) INTEGER * The leading dimension of the array Z. LDA >= max(1, N). * -* RHS (input/output) DOUBLE PRECISION array, dimension N. +* RHS (input/output) DOUBLE PRECISION array, dimension (N) * On entry, RHS contains contributions from other subsystems. * On exit, RHS contains the solution of the subsystem with * entries acoording to the value of IJOB (see above). diff --git a/SRC/dpbequ.f b/SRC/dpbequ.f index 437cc08b..f4ebccc8 100644 --- a/SRC/dpbequ.f +++ b/SRC/dpbequ.f @@ -47,7 +47,7 @@ * if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j; * if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd). * -* LDAB (input) INTEGER +* LDAB (input) INTEGER * The leading dimension of the array A. LDAB >= KD+1. * * S (output) DOUBLE PRECISION array, dimension (N) diff --git a/SRC/dpftri.f b/SRC/dpftri.f index 1b1f8e5a..eae70912 100644 --- a/SRC/dpftri.f +++ b/SRC/dpftri.f @@ -25,7 +25,7 @@ * Arguments * ========= * -* TRANSR (input) CHARACTER +* TRANSR (input) CHARACTER * = 'N': The Normal TRANSR of RFP A is stored; * = 'T': The Transpose TRANSR of RFP A is stored. * diff --git a/SRC/dpftrs.f b/SRC/dpftrs.f index b1c2b0ea..9153a05a 100644 --- a/SRC/dpftrs.f +++ b/SRC/dpftrs.f @@ -26,7 +26,7 @@ * Arguments * ========= * -* TRANSR (input) CHARACTER +* TRANSR (input) CHARACTER * = 'N': The Normal TRANSR of RFP A is stored; * = 'T': The Transpose TRANSR of RFP A is stored. * diff --git a/SRC/dporfsx.f b/SRC/dporfsx.f index 38d23093..c2b9b323 100644 --- a/SRC/dporfsx.f +++ b/SRC/dporfsx.f @@ -230,7 +230,7 @@ * Specifies the number of parameters set in PARAMS. If .LE. 0, the * PARAMS array is never referenced and default values are used. * -* PARAMS (input / output) DOUBLE PRECISION array, dimension NPARAMS +* PARAMS (input / output) DOUBLE PRECISION array, dimension (NPARAMS) * Specifies algorithm parameters. If an entry is .LT. 0.0, then * that entry will be filled with default value used for that * parameter. Only positions up to NPARAMS are accessed; defaults diff --git a/SRC/dpstf2.f b/SRC/dpstf2.f index 91cc3b30..19288fa1 100644 --- a/SRC/dpstf2.f +++ b/SRC/dpstf2.f @@ -68,7 +68,7 @@ * LDA (input) INTEGER * The leading dimension of the array A. LDA >= max(1,N). * -* WORK DOUBLE PRECISION array, dimension (2*N) +* WORK (workspace) DOUBLE PRECISION array, dimension (2*N) * Work space. * * INFO (output) INTEGER diff --git a/SRC/dpstrf.f b/SRC/dpstrf.f index 13b90bfa..9c2cd796 100644 --- a/SRC/dpstrf.f +++ b/SRC/dpstrf.f @@ -68,7 +68,7 @@ * will be used. The algorithm terminates at the (K-1)st step * if the pivot <= TOL. * -* WORK DOUBLE PRECISION array, dimension (2*N) +* WORK (workspace) DOUBLE PRECISION array, dimension (2*N) * Work space. * * INFO (output) INTEGER diff --git a/SRC/dsgesv.f b/SRC/dsgesv.f index 4b50f7e6..3ff3be78 100644 --- a/SRC/dsgesv.f +++ b/SRC/dsgesv.f @@ -94,7 +94,7 @@ * LDX (input) INTEGER * The leading dimension of the array X. LDX >= max(1,N). * -* WORK (workspace) DOUBLE PRECISION array, dimension (N*NRHS) +* WORK (workspace) DOUBLE PRECISION array, dimension (N,NRHS) * This array is used to hold the residual vectors. * * SWORK (workspace) REAL array, dimension (N*(N+NRHS)) diff --git a/SRC/dspcon.f b/SRC/dspcon.f index 3e122f52..73de1d9a 100644 --- a/SRC/dspcon.f +++ b/SRC/dspcon.f @@ -59,7 +59,7 @@ * * WORK (workspace) DOUBLE PRECISION array, dimension (2*N) * -* IWORK (workspace) INTEGER array, dimension (N) +* IWORK (workspace) INTEGER array, dimension (N) * * INFO (output) INTEGER * = 0: successful exit diff --git a/SRC/dsposv.f b/SRC/dsposv.f index 06f9aee2..1f6846de 100644 --- a/SRC/dsposv.f +++ b/SRC/dsposv.f @@ -98,7 +98,7 @@ * LDX (input) INTEGER * The leading dimension of the array X. LDX >= max(1,N). * -* WORK (workspace) DOUBLE PRECISION array, dimension (N*NRHS) +* WORK (workspace) DOUBLE PRECISION array, dimension (N,NRHS) * This array is used to hold the residual vectors. * * SWORK (workspace) REAL array, dimension (N*(N+NRHS)) diff --git a/SRC/dsycon.f b/SRC/dsycon.f index fa023397..5c86c007 100644 --- a/SRC/dsycon.f +++ b/SRC/dsycon.f @@ -61,7 +61,7 @@ * * WORK (workspace) DOUBLE PRECISION array, dimension (2*N) * -* IWORK (workspace) INTEGER array, dimension (N) +* IWORK (workspace) INTEGER array, dimension (N) * * INFO (output) INTEGER * = 0: successful exit diff --git a/SRC/dsyequb.f b/SRC/dsyequb.f index 189d209e..d11748ec 100644 --- a/SRC/dsyequb.f +++ b/SRC/dsyequb.f @@ -34,6 +34,12 @@ * Arguments * ========= * +* UPLO (input) CHARACTER*1 +* Specifies whether the details of the factorization are stored +* as an upper or lower triangular matrix. +* = 'U': Upper triangular, form is A = U*D*U**T; +* = 'L': Lower triangular, form is A = L*D*L**T. +* * N (input) INTEGER * The order of the matrix A. N >= 0. * @@ -57,6 +63,9 @@ * Absolute value of largest matrix element. If AMAX is very * close to overflow or very close to underflow, the matrix * should be scaled. +* +* WORK (workspace) DOUBLE PRECISION array, dimension (3*N) +* * INFO (output) INTEGER * = 0: successful exit * < 0: if INFO = -i, the i-th argument had an illegal value diff --git a/SRC/dsygvx.f b/SRC/dsygvx.f index c4d86a8e..225e4e97 100644 --- a/SRC/dsygvx.f +++ b/SRC/dsygvx.f @@ -68,7 +68,7 @@ * LDA (input) INTEGER * The leading dimension of the array A. LDA >= max(1,N). * -* B (input/output) DOUBLE PRECISION array, dimension (LDA, N) +* B (input/output) DOUBLE PRECISION array, dimension (LDB, N) * On entry, the symmetric matrix B. If UPLO = 'U', the * leading N-by-N upper triangular part of B contains the * upper triangular part of the matrix B. If UPLO = 'L', diff --git a/SRC/dsyrfsx.f b/SRC/dsyrfsx.f index 3d11e2ea..22c4409f 100644 --- a/SRC/dsyrfsx.f +++ b/SRC/dsyrfsx.f @@ -235,7 +235,7 @@ * Specifies the number of parameters set in PARAMS. If .LE. 0, the * PARAMS array is never referenced and default values are used. * -* PARAMS (input / output) DOUBLE PRECISION array, dimension NPARAMS +* PARAMS (input / output) DOUBLE PRECISION array, dimension (NPARAMS) * Specifies algorithm parameters. If an entry is .LT. 0.0, then * that entry will be filled with default value used for that * parameter. Only positions up to NPARAMS are accessed; defaults diff --git a/SRC/dsysvxx.f b/SRC/dsysvxx.f index 5125fd5a..297be214 100644 --- a/SRC/dsysvxx.f +++ b/SRC/dsysvxx.f @@ -332,7 +332,7 @@ * Specifies the number of parameters set in PARAMS. If .LE. 0, the * PARAMS array is never referenced and default values are used. * -* PARAMS (input / output) DOUBLE PRECISION array, dimension NPARAMS +* PARAMS (input / output) DOUBLE PRECISION array, dimension (NPARAMS) * Specifies algorithm parameters. If an entry is .LT. 0.0, then * that entry will be filled with default value used for that * parameter. Only positions up to NPARAMS are accessed; defaults diff --git a/SRC/dtftri.f b/SRC/dtftri.f index 09cb6c52..31bd5075 100644 --- a/SRC/dtftri.f +++ b/SRC/dtftri.f @@ -27,7 +27,7 @@ * Arguments * ========= * -* TRANSR (input) CHARACTER +* TRANSR (input) CHARACTER * = 'N': The Normal TRANSR of RFP A is stored; * = 'T': The Transpose TRANSR of RFP A is stored. * diff --git a/SRC/dtfttp.f b/SRC/dtfttp.f index 47164de7..0563a353 100644 --- a/SRC/dtfttp.f +++ b/SRC/dtfttp.f @@ -26,7 +26,7 @@ * Arguments * ========= * -* TRANSR (input) CHARACTER +* TRANSR (input) CHARACTER * = 'N': ARF is in Normal format; * = 'T': ARF is in Transpose format; * diff --git a/SRC/dtfttr.f b/SRC/dtfttr.f index abcff913..9a3c86a9 100644 --- a/SRC/dtfttr.f +++ b/SRC/dtfttr.f @@ -25,7 +25,7 @@ * Arguments * ========= * -* TRANSR (input) CHARACTER +* TRANSR (input) CHARACTER * = 'N': ARF is in Normal format; * = 'T': ARF is in Transpose format. * diff --git a/SRC/dtgex2.f b/SRC/dtgex2.f index e8cafc7b..831783ae 100644 --- a/SRC/dtgex2.f +++ b/SRC/dtgex2.f @@ -47,21 +47,21 @@ * N (input) INTEGER * The order of the matrices A and B. N >= 0. * -* A (input/output) DOUBLE PRECISION arrays, dimensions (LDA,N) +* A (input/output) DOUBLE PRECISION array, dimensions (LDA,N) * On entry, the matrix A in the pair (A, B). * On exit, the updated matrix A. * -* LDA (input) INTEGER +* LDA (input) INTEGER * The leading dimension of the array A. LDA >= max(1,N). * -* B (input/output) DOUBLE PRECISION arrays, dimensions (LDB,N) +* B (input/output) DOUBLE PRECISION array, dimensions (LDB,N) * On entry, the matrix B in the pair (A, B). * On exit, the updated matrix B. * -* LDB (input) INTEGER +* LDB (input) INTEGER * The leading dimension of the array B. LDB >= max(1,N). * -* Q (input/output) DOUBLE PRECISION array, dimension (LDZ,N) +* Q (input/output) DOUBLE PRECISION array, dimension (LDQ,N) * On entry, if WANTQ = .TRUE., the orthogonal matrix Q. * On exit, the updated matrix Q. * Not referenced if WANTQ = .FALSE.. diff --git a/SRC/dtgexc.f b/SRC/dtgexc.f index b0cf8da7..31a14646 100644 --- a/SRC/dtgexc.f +++ b/SRC/dtgexc.f @@ -57,7 +57,7 @@ * On exit, the updated matrix A, again in generalized * real Schur canonical form. * -* LDA (input) INTEGER +* LDA (input) INTEGER * The leading dimension of the array A. LDA >= max(1,N). * * B (input/output) DOUBLE PRECISION array, dimension (LDB,N) @@ -66,10 +66,10 @@ * On exit, the updated matrix B, again in generalized * real Schur canonical form (A,B). * -* LDB (input) INTEGER +* LDB (input) INTEGER * The leading dimension of the array B. LDB >= max(1,N). * -* Q (input/output) DOUBLE PRECISION array, dimension (LDZ,N) +* Q (input/output) DOUBLE PRECISION array, dimension (LDQ,N) * On entry, if WANTQ = .TRUE., the orthogonal matrix Q. * On exit, the updated matrix Q. * If WANTQ = .FALSE., Q is not referenced. diff --git a/SRC/dtpttf.f b/SRC/dtpttf.f index 1e598bda..5fe5bf15 100644 --- a/SRC/dtpttf.f +++ b/SRC/dtpttf.f @@ -25,7 +25,7 @@ * Arguments * ========= * -* TRANSR (input) CHARACTER +* TRANSR (input) CHARACTER * = 'N': ARF in Normal format is wanted; * = 'T': ARF in Conjugate-transpose format is wanted. * diff --git a/SRC/dtrttf.f b/SRC/dtrttf.f index 53af81e7..2b669794 100644 --- a/SRC/dtrttf.f +++ b/SRC/dtrttf.f @@ -25,7 +25,7 @@ * Arguments * ========= * -* TRANSR (input) CHARACTER +* TRANSR (input) CHARACTER * = 'N': ARF in Normal form is wanted; * = 'T': ARF in Transpose form is wanted. * diff --git a/SRC/ilaprec.f b/SRC/ilaprec.f index 0e8c1040..6fa245c3 100644 --- a/SRC/ilaprec.f +++ b/SRC/ilaprec.f @@ -24,7 +24,7 @@ * * Arguments * ========= -* PREC (input) CHARACTER*1 +* PREC (input) CHARACTER*1 * Specifies the form of the system of equations: * = 'S': Single * = 'D': Double diff --git a/SRC/ilaslr.f b/SRC/ilaslr.f index a5bda159..afd3dba9 100644 --- a/SRC/ilaslr.f +++ b/SRC/ilaslr.f @@ -29,7 +29,7 @@ * N (input) INTEGER * The number of columns of the matrix A. * -* A (input) REAL array, dimension (LDA,N) +* A (input) REAL array, dimension (LDA,N) * The m by n matrix A. * * LDA (input) INTEGER diff --git a/SRC/sisnan.f b/SRC/sisnan.f index 3d05d2ba..4fdf5f06 100644 --- a/SRC/sisnan.f +++ b/SRC/sisnan.f @@ -19,7 +19,7 @@ * Arguments * ========= * -* SIN (input) REAL +* SIN (input) REAL * Input to test for NaN. * * ===================================================================== |