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