PROGRAM 11
PROGRAM SERIES
C.....THIS PROGRAM CALCULATES EACH TERM IN A SERIES, SUMS THEM, AND COMPARES
C.....IT WITH THE ANALYTICAL SOLUTION.
C.....F012 ANTHONY F. ORTIZ **P98**
C.....DECLARE 3-DIMENSIONAL ARRAY FOR SERIES.
REAL SER (3, 6, 42)
C.....CALL FUNCTION TO OPEN OUT FILE 'F012P98.OUT'.
CALL OPEN_FILE ()
C.....CALL FUNCTION TO STORE HEADER AND TITLE IN THE OUT FILE.
CALL PRINT_TITLES ()
C.....CALL THREE FUNCTIONS TO CALCULATE EACH VALUE OF THE (3 x 6 x 42) SERIES
C.....ARRAY.
CALL GOTO_FORMULA1 (SER)
CALL GOTO_FORMULA2 (SER)
CALL GOTO_FORMULA3 (SER)
C.....CALL A FUCNTION TO STORE THE RESULTS OF THE SERIES ARRAY IN THE OUT FILE.
CALL PRINT_RESULTS (SER)
C.....TERMINATE THE MAIN PROGRAM.
STOP
END
SUBROUTINE OPEN_FILE ()
C.....THIS SUBROUTINE OPENS THE OUT FILE 'F012P98.OUT'.
OPEN (1, FILE = 'F012P98.OUT')
RETURN
END
SUBROUTINE PRINT_TITLES ()
C.....THIS SUBROUTINE STORES THE HEADER AND TITLE IN THE OUT FILE.
WRITE (1, 100) 'F012 ANTHONY F. ORTIZ **P98**'
WRITE (1, 100) ' SERIES ( 3 x 6 x 42 )'
100 FORMAT (10X, A, /)
RETURN
END
SUBROUTINE GOTO_FORMULA1 (SER)
C.....THIS SUBROUTINE CALCULATES EACH TERM IN THE FIRST SERIES ARRAY (6 x 42).
INTEGER S, R, C
REAL SER (3, 6, 42), SUM (3, 6), X (6), PI
DATA X / .01, .1, 1.01, 3.01, 6.01, 10.01 /
PI = 3.141593
DO 10 S = 1, 1
DO 10 R = 1, 6
DO 10 C = 1, 42
IF (C.LE.40) THEN
SER (S, R, C) = 1 / (C ** 2 - X (R) ** 2)
SUM (S, R) = SUM (S, R) + SER (S, R, C)
ELSE
IF (C.EQ.41) THEN
SER (S, R, C) = SUM (S, R)
ELSE
SER (S, R, C) = PI / (2 * X (R)) * (1 / (PI * X (R)) - 1 /
$ TAN (PI * X (R)))
ENDIF
ENDIF
10 CONTINUE
RETURN
END
SUBROUTINE GOTO_FORMULA2 (SER)
C.....THIS SUBROUTINE CALCULATES EACH TERM IN THE SECOND SERIES ARRAY (6 x 42).
INTEGER S, R, C
REAL SER (3, 6, 42), SUM (3, 6), X (6), PI
DATA X / .01, .1, 1.01, 3.01, 6.01, 10.01 /
PI = 3.141593
DO 10 S = 2, 2
DO 10 R = 1, 6
DO 10 C = 1, 42
IF (C.LE.40) THEN
SER (S, R, C) = SIN (C * X (R)) / C
SUM (S, R) = SUM (S, R) + SER (S, R, C)
ELSE
IF (C.EQ.41) THEN
SER (S, R, C) = SUM (S, R)
ELSE
SER (S, R, C) = (PI - X (R)) / 2
ENDIF
ENDIF
10 CONTINUE
RETURN
END
SUBROUTINE GOTO_FORMULA3 (SER)
C.....THIS SUBROUTINE CALCULATES EACH TERM IN THE THIRD SERIES ARRAY (6 x 42).
INTEGER S, R, C
REAL SER (3, 6, 42), SUM (3, 6), X (6)
DATA X / .01, .1, 1.01, 3.01, 6.01, 10.01 /
DO 10 S = 3, 3
DO 10 R = 1, 6
DO 10 C = 1, 42
IF (C.LE.40) THEN
SER (S, R, C) = 2.0 / (2.0 * C - 1) * ((X (R) - 1) /
$ (X (R) + 1)) ** (2.0 * C - 1)
SUM (S, R) = SUM (S, R) + SER (S, R, C)
ELSE
IF (C.EQ.41) THEN
SER (S, R, C) = SUM (S, R)
ELSE
SER (S, R, C) = ALOG (X (R))
ENDIF
ENDIF
10 CONTINUE
RETURN
END
SUBROUTINE PRINT_RESULTS (SER)
C.....THIS SUBROUTINE STORES THE ELEMENTS OF THE SERIES ARRAY IN THE OUT FILE.
INTEGER S, R, C
REAL SER (3, 6, 42), X (6)
DATA X / .01, .1, 1.01, 3.01, 6.01, 10.01 /
DO 10 S = 1, 3
WRITE (1, 100) ' SERIES ', S
100 FORMAT (10X, A, I1, /)
DO 20 R = 1, 6
WRITE (1, 200) ' XVALUE ', X (R)
200 FORMAT (10X, A, F5.2, /)
WRITE (1, 300) (SER (S, R, C), C = 1, 42)
300 FORMAT (1X, 10F7.3)
WRITE (1, *)
20 CONTINUE
WRITE (1, *)
10 CONTINUE
RETURN
END
C.....OUTFILE: F012P98.OUT
F012 ANTHONY F. ORTIZ **P98**
SERIES ( 3 x 6 x 42 )
SERIES 1
XVALUE .01
1.000 .250 .111 .063 .040 .028 .020 .016 .012 .010
.008 .007 .006 .005 .004 .004 .003 .003 .003 .003
.002 .002 .002 .002 .002 .001 .001 .001 .001 .001
.001 .001 .001 .001 .001 .001 .001 .001 .001 .001
1.620 1.645
XVALUE .10
1.010 .251 .111 .063 .040 .028 .020 .016 .012 .010
.008 .007 .006 .005 .004 .004 .003 .003 .003 .003
.002 .002 .002 .002 .002 .001 .001 .001 .001 .001
.001 .001 .001 .001 .001 .001 .001 .001 .001 .001
1.631 1.656
XVALUE 1.01
-49.751 .336 .125 .067 .042 .029 .021 .016 .013 .010
.008 .007 .006 .005 .004 .004 .003 .003 .003 .003
.002 .002 .002 .002 .002 .001 .001 .001 .001 .001
.001 .001 .001 .001 .001 .001 .001 .001 .001 .001
-49.023-48.998
XVALUE 3.01
-.124 -.198-16.639 .144 .063 .037 .025 .018 .014 .011
.009 .007 .006 .005 .005 .004 .004 .003 .003 .003
.002 .002 .002 .002 .002 .001 .001 .001 .001 .001
.001 .001 .001 .001 .001 .001 .001 .001 .001 .001
-16.575-16.550
XVALUE 6.01
-.028 -.031 -.037 -.050 -.090 -8.326 .078 .036 .022 .016
.012 .009 .008 .006 .005 .005 .004 .003 .003 .003
.002 .002 .002 .002 .002 .002 .001 .001 .001 .001
.001 .001 .001 .001 .001 .001 .001 .001 .001 .001
-8.328 -8.302
XVALUE 10.01
-.010 -.010 -.011 -.012 -.013 -.016 -.020 -.028 -.052 -4.997
.048 .023 .015 .010 .008 .006 .005 .004 .004 .003
.003 .003 .002 .002 .002 .002 .002 .001 .001 .001
.001 .001 .001 .001 .001 .001 .001 .001 .001 .001
-5.013 -4.988
SERIES 2
XVALUE .01
.010 .010 .010 .010 .010 .010 .010 .010 .010 .010
.010 .010 .010 .010 .010 .010 .010 .010 .010 .010
.010 .010 .010 .010 .010 .010 .010 .010 .010 .010
.010 .010 .010 .010 .010 .010 .010 .010 .010 .010
.396 1.566
XVALUE .10
.100 .099 .099 .097 .096 .094 .092 .090 .087 .084
.081 .078 .074 .070 .066 .062 .058 .054 .050 .045
.041 .037 .032 .028 .024 .020 .016 .012 .008 .005
.001 -.002 -.005 -.008 -.010 -.012 -.014 -.016 -.018 -.019
1.699 1.521
XVALUE 1.01
.847 .450 .037 -.196 -.189 -.037 .101 .122 .037 -.063
-.090 -.036 .041 .071 .035 -.027 -.058 -.034 .018 .049
.034 -.010 -.041 -.032 .005 .035 .031 .000 -.029 -.030
-.003 .025 .029 .006 -.020 -.027 -.009 .017 .025 .011
1.091 1.066
XVALUE 3.01
.131 -.130 .128 -.126 .122 -.118 .114 -.109 .103 -.097
.090 -.083 .076 -.069 .061 -.054 .046 -.039 .031 -.024
.018 -.011 .005 .001 -.006 .011 -.015 .018 -.022 .024
-.026 .027 -.028 .029 -.028 .028 -.027 .025 -.023 .021
.076 .066
XVALUE 6.01
-.270 -.260 -.244 -.222 -.196 -.166 -.135 -.102 -.070 -.040
-.012 .011 .031 .045 .054 .059 .059 .054 .047 .037
.025 .012 .000 -.011 -.021 -.028 -.033 -.035 -.034 -.031
-.026 -.020 -.012 -.004 .004 .011 .017 .022 .024 .025
-1.436 -1.434
XVALUE 10.01
-.552 .460 -.328 .179 -.043 -.060 .117 -.125 .094 -.042
-.014 .056 -.075 .067 -.040 .004 .029 -.050 .052 -.038
.013 .014 -.034 .041 -.035 .018 .003 -.022 .033 -.032
.021 -.004 -.014 .025 -.029 .022 -.009 -.006 .019 -.025
-.305 -3.434
SERIES 3
XVALUE .01
-1.960 -.628 -.362 -.248 -.186 -.146 -.119 -.099 -.084 -.072
-.063 -.055 -.049 -.043 -.039 -.035 -.031 -.028 -.026 -.024
-.021 -.020 -.018 -.017 -.015 -.014 -.013 -.012 -.011 -.010
-.010 -.009 -.008 -.008 -.007 -.007 -.006 -.006 -.006 -.005
-4.519 -4.605
XVALUE .10
-1.636 -.365 -.147 -.070 -.037 -.020 -.011 -.007 -.004 -.002
-.001 -.001 -.001 .000 .000 .000 .000 .000 .000 .000
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000
-2.303 -2.303
XVALUE 1.01
.010 .000 .000 .000 .000 .000 .000 .000 .000 .000
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000
.010 .010
XVALUE 3.01
1.002 .084 .013 .002 .000 .000 .000 .000 .000 .000
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000
1.102 1.102
XVALUE 6.01
1.429 .243 .075 .027 .011 .005 .002 .001 .000 .000
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000
1.793 1.793
XVALUE 10.01
1.637 .365 .147 .070 .037 .020 .011 .007 .004 .002
.001 .001 .001 .000 .000 .000 .000 .000 .000 .000
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000
.000 .000 .000 .000 .000 .000 .000 .000 .000 .000
2.304 2.304
BACK TO COMP150 PAGE.