C MATVEC.F OF N.TAJIMA'S FORTRAN BENCH-MARK TESTS (VER.2) C MULTIPLIES REAL MATRIX TO VECTOR REPEATEDLY "NSOL*ITER" TIMES C IN ORDER TO OBTAIN LARGEST "NSOL" EIGENVALUES. C HISTORY: 98/6/24-26 PROGRAM MATVEC IMPLICIT REAL*8 (A-H,O-Z) A=1 B=1 NSOL=3 ITER=2000 CALL MATVC1(A,B,NSOL,ITER) END C SUBROUTINE MATVC1(A,B,NSOL,ITER) IMPLICIT REAL*8 (A-H,O-Z) PARAMETER(N=1023,MSOL=3) COMMON /CMNLEG/ H(N,N),V1(N),V2(N),EG(MSOL) IF(NSOL .GT. MSOL) STOP 1 WRITE(6,900) N,N,NSOL,ITER 900 FORMAT(' MULTIPLY ',I4,'*',I4,' REAL MATRIX TO VECTOR',I5,'*',I7 & ,' TIMES.') DO 10 I=1,N H(I,I)=I-A/I DO 10 J=1,I-1 H(I,J)=B/(I-J)**2 10 H(J,I)=H(I,J) DO 80 L=1,NSOL F=SQRT(6.0D0/(N*(N+1)*(2*N+1))) DO 20 I=1,N 20 V1(I)=F*I E=0 DO 60 K=1,ITER S=0 DO 40 I=1,N T=0 DO 30 J=1,N 30 T=T+H(J,I)*V1(J) V2(I)=T S=S+T**2 40 CONTINUE C* E0=E E=SQRT(S) C* WRITE(6,910) K,E,ABS(E-E0),L C*910 FORMAT(' ',I10,F12.6,1PE12.4,' :L=',I4) F=1/E DO 50 I=1,N 50 V1(I)=F*V2(I) 60 CONTINUE EG(L)=E DO 70 I=1,N DO 70 J=1,N 70 H(I,J)=H(I,J)-V1(I)*E*V1(J) C* WRITE(6,920) L,E,ABS(E-E0) C*920 FORMAT(' L=',I4,' E=',F12.6,' DE=',1PE12.4) 80 CONTINUE WRITE(6,930) (EG(L),L=1,NSOL) 930 FORMAT(' LARGEST EIGENVALUES=',3F13.5:/' ',6F13.5) END