```01:       SUBROUTINE CLAG2Z( M, N, SA, LDSA, A, LDA, INFO )
02: *
03: *  -- LAPACK PROTOTYPE auxiliary routine (version 3.1.2) --
04: *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
05: *     August 2007
06: *
07: *     ..
08: *     .. Scalar Arguments ..
09:       INTEGER            INFO, LDA, LDSA, M, N
10: *     ..
11: *     .. Array Arguments ..
12:       COMPLEX            SA( LDSA, * )
13:       COMPLEX*16         A( LDA, * )
14: *     ..
15: *
16: *  Purpose
17: *  =======
18: *
19: *  CLAG2Z converts a COMPLEX matrix, SA, to a COMPLEX*16 matrix, A.
20: *
21: *  Note that while it is possible to overflow while converting
22: *  from double to single, it is not possible to overflow when
23: *  converting from single to double.
24: *
25: *  This is an auxiliary routine so there is no argument checking.
26: *
27: *  Arguments
28: *  =========
29: *
30: *  M       (input) INTEGER
31: *          The number of lines of the matrix A.  M >= 0.
32: *
33: *  N       (input) INTEGER
34: *          The number of columns of the matrix A.  N >= 0.
35: *
36: *  SA      (input) COMPLEX array, dimension (LDSA,N)
37: *          On entry, the M-by-N coefficient matrix SA.
38: *
39: *  LDSA    (input) INTEGER
40: *          The leading dimension of the array SA.  LDSA >= max(1,M).
41: *
42: *  A       (output) COMPLEX*16 array, dimension (LDA,N)
43: *          On exit, the M-by-N coefficient matrix A.
44: *
45: *  LDA     (input) INTEGER
46: *          The leading dimension of the array A.  LDA >= max(1,M).
47: *
48: *  INFO    (output) INTEGER
49: *          = 0:  successful exit
50: *  =========
51: *
52: *     .. Local Scalars ..
53:       INTEGER            I, J
54: *     ..
55: *     .. Executable Statements ..
56: *
57:       INFO = 0
58:       DO 20 J = 1, N
59:          DO 10 I = 1, M
60:             A( I, J ) = SA( I, J )
61:    10    CONTINUE
62:    20 CONTINUE
63:       RETURN
64: *
65: *     End of CLAG2Z
66: *
67:       END
68: ```