01:       SUBROUTINE ZLAG2C( M, N, A, LDA, SA, LDSA, INFO )
02: *
03: *  -- LAPACK PROTOTYPE auxiliary routine (version 3.1.2) --
04: *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
05: *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
06: *     August 2007
07: *
08: *     ..
09: *     .. Scalar Arguments ..
10:       INTEGER            INFO, LDA, LDSA, M, N
11: *     ..
12: *     .. Array Arguments ..
13:       COMPLEX            SA( LDSA, * )
14:       COMPLEX*16         A( LDA, * )
15: *     ..
16: *
17: *  Purpose
18: *  =======
19: *
20: *  ZLAG2C converts a COMPLEX*16 matrix, SA, to a COMPLEX matrix, A.
21: *
22: *  RMAX is the overflow for the SINGLE PRECISION arithmetic
23: *  ZLAG2C checks that all the entries of A are between -RMAX and
24: *  RMAX. If not the convertion is aborted and a flag is raised.
25: *
26: *  This is an auxiliary routine so there is no argument checking.
27: *
28: *  Arguments
29: *  =========
30: *
31: *  M       (input) INTEGER
32: *          The number of lines of the matrix A.  M >= 0.
33: *
34: *  N       (input) INTEGER
35: *          The number of columns of the matrix A.  N >= 0.
36: *
37: *  A       (input) COMPLEX*16 array, dimension (LDA,N)
38: *          On entry, the M-by-N coefficient matrix A.
39: *
40: *  LDA     (input) INTEGER
41: *          The leading dimension of the array A.  LDA >= max(1,M).
42: *
43: *  SA      (output) COMPLEX array, dimension (LDSA,N)
44: *          On exit, if INFO=0, the M-by-N coefficient matrix SA; if
45: *          INFO>0, the content of SA is unspecified.
46: *
47: *  LDSA    (input) INTEGER
48: *          The leading dimension of the array SA.  LDSA >= max(1,M).
49: *
50: *  INFO    (output) INTEGER
51: *          = 0:  successful exit.
52: *          = 1:  an entry of the matrix A is greater than the SINGLE
53: *                PRECISION overflow threshold, in this case, the content
54: *                of SA in exit is unspecified.
55: *
56: *  =========
57: *
58: *     .. Local Scalars ..
59:       INTEGER            I, J
60:       DOUBLE PRECISION   RMAX
61: *     ..
62: *     .. Intrinsic Functions ..
63:       INTRINSIC          DBLE, DIMAG
64: *     ..
65: *     .. External Functions ..
66:       REAL               SLAMCH
67:       EXTERNAL           SLAMCH
68: *     ..
69: *     .. Executable Statements ..
70: *
71:       RMAX = SLAMCH( 'O' )
72:       DO 20 J = 1, N
73:          DO 10 I = 1, M
74:             IF( ( DBLE( A( I, J ) ).LT.-RMAX ) .OR.
75:      +          ( DBLE( A( I, J ) ).GT.RMAX ) .OR.
76:      +          ( DIMAG( A( I, J ) ).LT.-RMAX ) .OR.
77:      +          ( DIMAG( A( I, J ) ).GT.RMAX ) ) THEN
78:                INFO = 1
79:                GO TO 30
80:             END IF
81:             SA( I, J ) = A( I, J )
82:    10    CONTINUE
83:    20 CONTINUE
84:       INFO = 0
85:    30 CONTINUE
86:       RETURN
87: *
88: *     End of ZLAG2C
89: *
90:       END
91: