[Fortran] 纯文本查看 复制代码
USE IMSL_LIBRARIES
IMPLICIT NONE
INTEGER LDA, LDB, LDEVEC, N
PARAMETER (N=3, LDA=N, LDB=N, LDEVEC=N)
!
INTEGER I, NOUT
REAL PI
COMPLEX A(LDA,N), ALPHA(N), B(LDB,N), BETAV(N), EVAL(N), &
EVEC(LDEVEC,N)
!
! Define values of A and B
! A = ( 1+0i 0.5+i 0+5i )
! (-10+0i 2+i 0+0i )
! ( 5+i 1+0i 0.5+3i )
!
! B = ( 0.5+0i 0+0i 0+0i )
! ( 3+3i 3+3i 0+i )
! ( 4+2i 0.5+i 1+i )
!
! Declare variables
DATA A/(1.0,0.0), (-10.0,0.0), (5.0,1.0), (0.5,1.0), (2.0,1.0), &
(1.0,0.0), (0.0,5.0), (0.0,0.0), (0.5,3.0)/
DATA B/(0.5,0.0), (3.0,3.0), (4.0,2.0), (0.0,0.0), (3.0,3.0), &
(0.5,1.0), (0.0,0.0), (0.0,1.0), (1.0,1.0)/
! Compute eigenvalues
CALL GVCCG (A, B, ALPHA, BETAV, EVEC)
EVAL = ALPHA/BETAV
! Compute performance index
PI = GPICG(N,A,B,ALPHA,BETAV,EVEC)
! Print results
CALL UMACH (2, NOUT)
CALL WRCRN ('EVAL', EVAL, 1, N, 1)
CALL WRCRN ('EVEC', EVEC)
WRITE (NOUT, '(/,A,F6.3)') ' Performance index = ', PI
END