summaryrefslogtreecommitdiff
path: root/SRC/zlag2c.f
diff options
context:
space:
mode:
authorjason <jason@8a072113-8704-0410-8d35-dd094bca7971>2008-10-28 01:38:50 +0000
committerjason <jason@8a072113-8704-0410-8d35-dd094bca7971>2008-10-28 01:38:50 +0000
commitbaba851215b44ac3b60b9248eb02bcce7eb76247 (patch)
tree8c0f5c006875532a30d4409f5e94b0f310ff00a7 /SRC/zlag2c.f
downloadlapack-baba851215b44ac3b60b9248eb02bcce7eb76247.tar.gz
lapack-baba851215b44ac3b60b9248eb02bcce7eb76247.tar.bz2
lapack-baba851215b44ac3b60b9248eb02bcce7eb76247.zip
Move LAPACK trunk into position.
Diffstat (limited to 'SRC/zlag2c.f')
-rw-r--r--SRC/zlag2c.f93
1 files changed, 93 insertions, 0 deletions
diff --git a/SRC/zlag2c.f b/SRC/zlag2c.f
new file mode 100644
index 00000000..d47ca5ba
--- /dev/null
+++ b/SRC/zlag2c.f
@@ -0,0 +1,93 @@
+ SUBROUTINE ZLAG2C( M, N, A, LDA, SA, LDSA, INFO)
+*
+* -- LAPACK PROTOTYPE auxilary routine (version 3.1.1) --
+* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
+* January 2007
+*
+* ..
+* .. WARNING: PROTOTYPE ..
+* This is an LAPACK PROTOTYPE routine which means that the
+* interface of this routine is likely to be changed in the future
+* based on community feedback.
+*
+* ..
+* .. Scalar Arguments ..
+ INTEGER INFO,LDA,LDSA,M,N
+* ..
+* .. Array Arguments ..
+ COMPLEX SA(LDSA,*)
+ COMPLEX*16 A(LDA,*)
+* ..
+*
+* Purpose
+* =======
+*
+* ZLAG2C converts a DOUBLE PRECISION COMPLEX matrix, SA, to a SINGLE
+* PRECISION COMPLEX matrix, A.
+*
+* RMAX is the overflow for the SINGLE PRECISION arithmetic
+* ZLAG2C checks that all the entries of A are between -RMAX and
+* RMAX. If not the convertion is aborted and a flag is raised.
+*
+* This is a helper routine so there is no argument checking.
+*
+* 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
+* ..
+* .. Intrinsic Functions ..
+ INTRINSIC DBLE, DIMAG
+* ..
+* .. External Functions ..
+ REAL SLAMCH
+ EXTERNAL SLAMCH
+* ..
+* .. Executable Statements ..
+*
+ RMAX = SLAMCH('O')
+ DO 20 J = 1,N
+ DO 30 I = 1,M
+ IF ((DBLE(A(I,J)).LT.-RMAX) .OR. (DBLE(A(I,J)).GT.RMAX)
+ $ .OR. (DIMAG(A(I,J)).LT.-RMAX) .OR. (DIMAG(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 ZLAG2C
+*
+ END