SUBROUTINE CMPINV ( A, B, C, D, N )

Argument Definitions (+ indicates altered content)
INTEGER            N
REAL              +A(20,20),  +B(20,20),  +C(20,20),  +D(20,20)
Description
SUBROUTINE CMPINV           (NEXT) 
 
    CMPINV - COMPLEX MATRIX OPERATION THAT FINDS INVERSE, C+ID, OF 
       A+IB WHERE A,B,C, AND D ARE REAL SQUARE MATRICES.  CMPINV 
       CALLS MATINV TO INVERT REAL MATRICES AND SQMULT TO MULTIPLY 
       SQUARE MATRICES IN ORDER TO COMPUTE THE COMPLEX INVERSE 
                     C=INV(A + B*(INV(A))*B) 
                     D=-C*B*(INV(A)) 
       A, B, C, AND D ARE ALL REAL N BY N MATRICIES. 
       IF A IS SINGULAR, EXCHANGE A AND B (FACTOR OUT I) AND TRY AGAIN 
    THIS ROUTINE IS SHARE NO. ANL F103 BY B.S.GARBOW OF ARGONNE 
    NATIONAL LABORATORY, ARGONNE, ILLINOIS
Source file:cmpinv.f
I/O Operations:
Unit ID  Unit No       Access  Form   Operation
      *                   SEQ  FMTD           W  

Operation codes A=rewind,B=backspace,C=close,E=endfile
                I=inquire,O=open,R=read,W=write
External Functions and Subroutines Called
SUBROUTINE         MATINV,     SQMULT
Local Variables (+ indicates altered content)
INTEGER           +I,         +I1,        +I2,        +I3
INTEGER           +J,         +J1,        +J2,        +J3
INTEGER           +K,         +K1,        +L,         +M
REAL              +TEMP
Referenced Common Block Variables (+ indicates altered content)
PON                INTEGER            IPIVOT(20)