Sub Ex_Zgglse()
Const M = 4, N = 3, P = 3
Dim A(M - 1, N - 1) As Complex, B(P - 1, N - 1) As Complex
Dim C(M - 1) As Complex, D(P - 1) As Complex, X(N - 1) As Complex
Dim S As Double, Info As Long
A(0, 0) = Cmplx(-0.82, 0.83): A(0, 1) = Cmplx(0.18, -0.94): A(0, 2) = Cmplx(-0.18, -0.12)
A(1, 0) = Cmplx(-0.76, -0.24): A(1, 1) = Cmplx(0.57, -0.16): A(1, 2) = Cmplx(-0.08, -0.27)
A(2, 0) = Cmplx(1.9, 0.26): A(2, 1) = Cmplx(-0.98, 0.54): A(2, 2) = Cmplx(0.21, 0.28)
A(3, 0) = Cmplx(0.5, -0.3): A(3, 1) = Cmplx(-0.31, 0.37): A(3, 2) = Cmplx(0.22, 0.19)
B(0, 0) = Cmplx(0.57, -0.91): B(0, 1) = Cmplx(-0.28, -0.45): B(0, 2) = Cmplx(0.25, 0.91)
B(1, 0) = Cmplx(0.83, 0.46): B(1, 1) = Cmplx(0.63, -0.19): B(1, 2) = Cmplx(-0.69, 0.09)
B(2, 0) = Cmplx(0.24, -1.33): B(2, 1) = Cmplx(-0.56, -0.67): B(2, 2) = Cmplx(0.9, 1.25)
C(0) = Cmplx(1.7126, -0.6648): C(1) = Cmplx(0.8697, 0.7604)
C(2) = Cmplx(-2.1048, -1.6171): C(3) = Cmplx(-0.9297, 0.1252)
D(0) = Cmplx(-1.5111, 0.3107): D(1) = Cmplx(-0.0941, -1.2737)
D(2) = Cmplx(-1.5579, 1.0462)
Call Zgglse(M, N, P, A(), B(), C(), D(), X(), Info)
S = Dznrm2(M - N + P, C(N - P))
Debug.Print "X ="
Debug.Print Creal(X(0)), Cimag(X(0)), Creal(X(1)), Cimag(X(1))
Debug.Print Creal(X(2)), Cimag(X(2))
Debug.Print "SumSq =", S, "Info =", Info
End Sub