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.