PROGRAM RYM TST C This program tests the coefficients calculated by the programs trnstx. DOUBLE PRECISION DLAMDA(5), RYMCOF(0:45450) INTEGER J,K, IBETA DOUBLE PRECISION XL,XLP1,G2,G3,G2SUM,G3SUM DOUBLE PRECISION ZL,COEF,TEST1,TEST2,TEST3 INTEGER I,ISTEP,IQ,MMIN,MMAX,M,NM CHARACTER*4 ID DATA DLAMDA/1.0D0,0.25D0,0.1D0,4D0,8D0/ C WRITE(6,10) 10 FORMAT(1X,'TESTING ASYMPTOTIC EXPRESSIONS FOR COEFFICIENTS OF YM') OPEN(1,FILE='rym300.dat',STATUS='OLD') READ(1,15) ID,MAXS 15 FORMAT(A4,I5) IF(ID.NE.' RYM') THEN WRITE(6,25) 25 FORMAT(1X,'WRONG COEFFICIENTS FOR RYM') STOP ENDIF READ(1,30)RYMCOF 30 FORMAT(D22.16) CLOSE(1) DO 1200 J=1,5 DO 1200 IBETA=1,2 IF (IBETA.EQ.1) THEN WRITE(6,1000)DLAMDA(J) 1000 FORMAT(/1X,'LAMBDA =',F8.3) WRITE(6,90) 90 FORMAT(/1X,'VALUES OF EVEN TERMS IN SERIES') WRITE(6,100) 100 FORMAT(/2X,'M',5X,'COEF',5X,'T1=M*COEF',4X,'2*G2',3X, & 'T2=(M+2)(T1-2*G2)',2X,'4*G3',4X,'T3=T2+4*G3') ELSE WRITE(6,110) 110 FORMAT(/1X,'VALUES OF ODD TERMS IN SERIES') WRITE(6,100) ENDIF IF(DLAMDA(J).GT.1D0) THEN I=2 K=3-IBETA XL=1D0/DLAMDA(J) ELSE I=1 K=IBETA XL=DLAMDA(J) ENDIF XLP1=XL+1D0 IF(I.EQ.K) THEN IF(I.EQ.1) THEN G2=6D0*(XL-XL**2+4D0*XL**3)/(25D0*XLP1**3) G3=(24D0-201D0*XL+882D0*XL**2-1182D0*XL**3+591D0*XL**4) & /(625D0*XLP1**3) ISTEP=1 ELSE G2=6D0*(4D0-XL+XL**2)/(25D0*XLP1**3) G3=(24D0*XL**4-201D0*XL**3+882D0*XL**2-1182D0*XL+591D0) & /(625D0*XL*XLP1**3) ISTEP=-1 ENDIF C Notice that because the first coef is a signature we supply the 1. MMIN=150 MMAX=MAXS ELSE IF(I.EQ.1) THEN G2=3D0*(7D0*XL*XL-10D0*XL**3+7D0*XL**4)/(50D0*XLP1**3) G3=(663D0*XL-2244D0*XL**2+5706D0*XL**3-2244D0*XL**4 & +663D0*XL**5)/(2500D0*XLP1**3) ISTEP=1 ELSE G2=3D0*(7D0*XL**4-10D0*XL**3+7D0*XL*XL)/ & (50D0*XL**3*XLP1**3) G3=(663D0*XL**5-2244D0*XL**4+5706D0*XL**3-2244D0*XL**2 & +663D0*XL)/(2500D0*XLP1**3*XL**3) ISTEP=-1 ENDIF MMIN=149 MMAX=MAXS-1 ENDIF G2SUM=2D0*G2 G3SUM=4D0*G3 DO 1200 M=MMIN,MMAX,2 IF (ISTEP.GT.0) THEN NM = (M*(M+1))/2 ELSE NM = (M*(M+1))/2 +M ENDIF ZL=XLP1**(-M) COEF=0D0 DO 50 IQ=0,M COEF=COEF+RYMCOF(NM)*ZL NM=NM+ISTEP ZL=ZL*XL 50 CONTINUE TEST1=DBLE(M)*COEF TEST2=DBLE(M+2)*(TEST1-G2SUM) TEST3=TEST2+G3SUM WRITE(6,60) M,COEF,TEST1,G2SUM,TEST2,G3SUM,TEST3 60 FORMAT(1X,I3,D10.3,3D12.4,2D13.5) 1200 CONTINUE STOP END C BLOCK DATA TSTINI COMMON /YMD300/RYMCOF(0:45450) DOUBLE PRECISION RYMCOF DATA RYMCOF(1)/0D0/ END