C File ex3_1.ato C Example 3-1. ODEINP file. C Y.F. Chang, ATOMFT User Manual, Version 3.11 C Partial results: C ATOMFT ver. 3.11, copyright (C) 1979-93, Y. F. Chang; Solution results. C ****** C MPRINT NSTEPS for example 3-1 C 4 80 C START END DLTXPT ALPHA X(1) X(2) Y(1) Y(2) C 1.000 10.000 0.250 0.580 -1.000 0.000 0.000 4.300 C Results calculated by an infinite-series method. C ------------------------------------------------ C C Step number 0 at T = 1.00000E+00 C X -1.00000E+00 0.00000E+00 C Y 0.00000E+00 4.30000E+00 C C Step number 1 at T = 1.23000E+00 C X -9.87214E-01 9.52869E-02 C Y 9.85352E-01 4.26058E+00 C C Step number 2 at T = 1.25000E+00 C X -9.85268E-01 9.92470E-02 C Y 1.07052E+00 4.25646E+00 C C . . . C C Step number 7 at T = 9.75000E+00 C X 1.51233E-01 1.34882E-01 C Y 3.65490E+01 4.16456E+00 C C Step number 7 at T = 1.00000E+01 C X 1.84953E-01 1.34882E-01 C Y 3.75902E+01 4.16445E+00 C C PLOTS: C 2 1.25000E+00 -9.85268E-01 9.92470E-02 1.07052E+00 4.25646E+00 C 2 1.50000E+00 -9.56779E-01 1.23036E-01 2.12958E+00 4.22040E+00 C . . . C C 7 9.75000E+00 1.51233E-01 1.34882E-01 3.65490E+01 4.16456E+00 C 7 1.00000E+01 -9.48809E-02 5.00315E-01 3.00934E+01 1.56935E+01 C C Block 1 C C System with parameter. C DIFF(X,T,2) = - ALPHA*X*R DIFF(Y,T,2) = - ALPHA*Y*R R = (X*X + Y*Y)**(-1.5) ALPHA = 0.58 $ C Block 2 CHARACTER*80 LINE $ C Block 3 C C Read: heading line, print code, maximum number of integration C steps. C Echo the above. C Read: heading line, integration interval, print interval, C parameter in equations, initial conditions. C Echo the above. OPEN(1,FILE='DATA') OPEN(7,FILE='PLOTS',STATUS='NEW') READ(1,110) LINE,MPRINT,NSTEPS 110 FORMAT(A80/2I10) WRITE(LIST,110) LINE,MPRINT,NSTEPS READ(1,120) LINE,START,END,DLTXPT,ALPHA,X(1),X(2),Y(1),Y(2) 120 FORMAT(A80/8F10.3) WRITE(LIST,120) LINE,START,END,DLTXPT,ALPHA,X(1),X(2),Y(1),Y(2) C Assignment statements for the error control parameter MSTIFF = 1 ERRLIM = 1.0E-04 $ C Block 4 C C Produce file of data for plotting. C Note difference from the example in the manual C vvvv to print the last step at 10 IF(KENDFG.GE.2)WRITE(7,130)KINTS,XPRINT,X(31),X(32),Y(31),Y(32) 130 FORMAT(I2,1P5E13.5) $