C RUNGE.F OF N.TAJIMA'S FORTRAN BENCH-MARK TESTS (VER.2) C SOLVES CLASSICAL EQUATION OF MOTION IN A PLANE UNDER LOG(R) POTENTIAL C WITH THE 4TH ORDER RUNGE(-KUTTA) METHOD. C HISTORY: 98/6/30 CREATED BY MODIFYING KEPLER.FOR PROGRAM RUNGE IMPLICIT REAL*8 (A-H,O-Z) X0=1.0D0 Y0=0 U0=0 V0=1.5D0 CALL RUNGE1(X0,Y0,U0,V0) END C SUBROUTINE RUNGE1(X0,Y0,U0,V0) IMPLICIT REAL*8 (A-H,O-Z) PARAMETER(N=200000000,T=1.0D+5) WRITE(6,900) X0,Y0,U0,V0 900 FORMAT(' 4TH-ORDER RUNGE-KUTTA FOR POTENTIAL=LOG(R). INITIAL R=' & ,F4.1,F5.1,' V=',F4.1,F5.1) X=X0 Y=Y0 U=U0 V=V0 R=SQRT(X**2+Y**2) ENERGI=(U**2+V**2)/2+LOG(R) ANGMOI=X*V-Y*U D=T/N D2=D/2 D3=D/3 D6=D/6 DO 10 I=1,N RR=X**2+Y**2 S=-1/RR F1=X*S G1=Y*S C X2=X+D2*U Y2=Y+D2*V RR=X2**2+Y2**2 S=-1/RR F2=X2*S G2=Y2*S C U2=U+D2*F1 V2=V+D2*G1 X3=X+D2*U2 Y3=Y+D2*V2 RR=X3**2+Y3**2 S=-1/RR F3=X3*S G3=Y3*S C U3=U+D2*F2 V3=V+D2*G2 X4=X+D*U3 Y4=Y+D*V3 RR=X4**2+Y4**2 S=-1/RR F4=X4*S G4=Y4*S C U4=U+D*F3 V4=V+D*G3 C X=X+D6*U+D3*U2+D3*U3+D6*U4 Y=Y+D6*V+D3*V2+D3*V3+D6*V4 U=U+D6*F1+D3*F2+D3*F3+D6*F4 V=V+D6*G1+D3*G2+D3*G3+D6*G4 10 CONTINUE R=SQRT(X**2+Y**2) ENERGF=(U**2+V**2)/2+LOG(R) ANGMOF=X*V-Y*U IF(ABS(ENERGF-ENERGI).GT.1.0D-6) STOP 1 IF(ABS(ANGMOF-ANGMOI).GT.1.0D-6) STOP 2 WRITE(6,910) N,D,X,Y,U,V 910 FORMAT(' TIME=',I11,'*',F8.5,' R=',2F10.5,' V=',2F10.5) C END