SUBROUTINE DSLACONVERTGED2S(M,N,A,LDA,SA,LDSA,INFO) * * -- LAPACK auxiliary routine (version @(version)) -- * @(who) * @(date) * * .. Scalar Arguments .. INTEGER INFO,LDA,LDSA,M,N * .. * .. Array Arguments .. REAL SA(LDSA,*) DOUBLE PRECISION A(LDA,*) * .. * * Purpose * ======= * * DSLACONVERTGED2S converts a SINGLE PRECISION matrix, SA, to a DOUBLE * PRECISION matrix, A. * * RMAX is the overflow for the SINGLE PRECISION arithmetic * DSLACONVERTGED2S detects when an entry of A is greater than RMAX or * smaller than -RMAX. If this is the case the convertion is aborted. * * Arguments * ========= * * M (input) INTEGER * The number of lines of the matrix A. M >= 0. * * N (input) INTEGER * The number of columns of the matrix A. N >= 0. * * A (input) DOUBLE PRECISION array, dimension (LDA,N) * On entry, the M-by-N coefficient matrix A. * * LDA (input) INTEGER * The leading dimension of the array A. LDA >= max(1,M). * * SA (output) REAL array, dimension (LDSA,N) * On exit, if INFO=0, the M-by-N coefficient matrix SA. * * LDSA (input) INTEGER * The leading dimension of the array SA. LDSA >= max(1,M). * * INFO (output) INTEGER * = 0: successful exit * > 0: if INFO = k, the (i,j) entry of the matrix A has * overflowed when moving from DOUBLE PRECISION to SINGLE * k is given by k = (i-1)*LDA+j * * ========= * * .. Local Scalars .. INTEGER I,J DOUBLE PRECISION RMAX * .. * .. External Functions .. REAL SLAMCH EXTERNAL SLAMCH * .. * .. Executable Statements .. * RMAX = SLAMCH('O') DO 20 J = 1,N DO 30 I = 1,M IF ((A(I,J).LT.-RMAX) .OR. (A(I,J).GT.RMAX)) THEN INFO = (I-1)*LDA + J GO TO 10 END IF SA(I,J) = A(I,J) 30 CONTINUE 20 CONTINUE 10 CONTINUE RETURN * * End of DSLACONVERTGED2S * END