Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:21:10

0001  
0002 C*********************************************************************
0003  
0004 C...PYEIGC
0005 C...Finds eigenvalues of a general complex matrix
0006 C
0007 C     THIS SUBROUTINE CALLS THE RECOMMENDED SEQUENCE OF
0008 C     SUBROUTINES FROM THE EIGENSYSTEM SUBROUTINE PACKAGE (EISPACK)
0009 C     TO FIND THE EIGENVALUES AND EIGENVECTORS (IF DESIRED)
0010 C     OF A COMPLEX GENERAL MATRIX.
0011 C
0012 C     ON INPUT
0013 C
0014 C        NM  MUST BE SET TO THE ROW DIMENSION OF THE TWO-DIMENSIONAL
0015 C        ARRAY PARAMETERS AS DECLARED IN THE CALLING PROGRAM
0016 C        DIMENSION STATEMENT.
0017 C
0018 C        N  IS THE ORDER OF THE MATRIX  A=(AR,AI).
0019 C
0020 C        AR  AND  AI  CONTAIN THE REAL AND IMAGINARY PARTS,
0021 C        RESPECTIVELY, OF THE COMPLEX GENERAL MATRIX.
0022 C
0023 C        MATZ  IS AN INTEGER VARIABLE SET EQUAL TO ZERO IF
0024 C        ONLY EIGENVALUES ARE DESIRED.  OTHERWISE IT IS SET TO
0025 C        ANY NON-ZERO INTEGER FOR BOTH EIGENVALUES AND EIGENVECTORS.
0026 C
0027 C     ON OUTPUT
0028 C
0029 C        WR  AND  WI  CONTAIN THE REAL AND IMAGINARY PARTS,
0030 C        RESPECTIVELY, OF THE EIGENVALUES.
0031 C
0032 C        ZR  AND  ZI  CONTAIN THE REAL AND IMAGINARY PARTS,
0033 C        RESPECTIVELY, OF THE EIGENVECTORS IF MATZ IS NOT ZERO.
0034 C
0035 C        IERR  IS AN INTEGER OUTPUT VARIABLE SET EQUAL TO AN ERROR
0036 C           COMPLETION CODE DESCRIBED IN THE DOCUMENTATION FOR COMQR
0037 C           AND COMQR2.  THE NORMAL COMPLETION CODE IS ZERO.
0038 C
0039 C        FV1, FV2, AND  FV3  ARE TEMPORARY STORAGE ARRAYS.
0040 C
0041 C     QUESTIONS AND COMMENTS SHOULD BE DIRECTED TO BURTON S. GARBOW,
0042 C     MATHEMATICS AND COMPUTER SCIENCE DIV, ARGONNE NATIONAL LABORATORY
0043 C
0044 C     THIS VERSION DATED AUGUST 1983.
0045 C
0046  
0047       SUBROUTINE PYEICG(NM,N,AR,AI,WR,WI,MATZ,ZR,ZI,FV1,FV2,FV3,IERR)
0048  
0049       INTEGER N,NM,IS1,IS2,IERR,MATZ
0050       DOUBLE PRECISION AR(4,4),AI(4,4),WR(4),WI(4),ZR(4,4),ZI(4,4),
0051      X       FV1(4),FV2(4),FV3(4)
0052       IF (N .LE. NM) GOTO 100
0053       IERR = 10 * N
0054       GOTO 120
0055 C
0056   100 CALL  PYCBAL(NM,N,AR,AI,IS1,IS2,FV1)
0057       CALL  PYCRTH(NM,N,IS1,IS2,AR,AI,FV2,FV3)
0058       IF (MATZ .NE. 0) GOTO 110
0059 C     .......... FIND EIGENVALUES ONLY ..........
0060       CALL  PYCMQR(NM,N,IS1,IS2,AR,AI,WR,WI,IERR)
0061       GOTO 120
0062 C     .......... FIND BOTH EIGENVALUES AND EIGENVECTORS ..........
0063   110 CALL  PYCMQ2(NM,N,IS1,IS2,FV2,FV3,AR,AI,WR,WI,ZR,ZI,IERR)
0064       IF (IERR .NE. 0) GOTO 120
0065       CALL  PYCBA2(NM,N,IS1,IS2,FV1,N,ZR,ZI)
0066   120 RETURN
0067       END