PROGRAM 4
PROGRAM BESSEL
C.....THIS PROGRAM CALCULATES THE BESSEL FUNCTION I (X).
C.....F012 ANTHONY F. ORTIZ **P29**
C.....DECLARE VARIABLES FOR X, I (X), T, AND E.
REAL X, IX, T, E
C.....OPEN THE DATA FILE 'F012P29.DAT' AND THE OUT FILE 'F012P29.OUT'.
OPEN (1, FILE = 'F012P29.DAT')
OPEN (2, FILE = 'F012P29.OUT')
C.....WRITE THE HEADER, THE TITLE, AND THE COLUMN HEADINGS TO THE OUT FILE.
WRITE (2, *) 'F012 ANTHONY F. ORTIZ **P29**'
WRITE (2, *)
WRITE (2, *) ' BESSEL FUNCTION VALUES'
WRITE (2, *)
WRITE (2, *) ' X I(X)'
WRITE (2, *)
C.....GET THE VALUE OF (X) FROM THE DATA FILE.
10 READ (1, *, END = 40) X
C.....ASSIGN A FORMULA TO (T) AND AND (E).
T = X / 3.75
E = EXP (-X)
C.....DECIDE WHICH FORMULA TO USE ON THE VALUE (X) OR TO TERMINATE PROGRAM.
IF (X.LT.3.75) THEN
GOTO 20
ELSE
IF (X.GE.3.75.AND.X.LE.5.00) THEN
GOTO 30
ELSE
IF (X.GT.5.00) THEN
GOTO 40
ENDIF
ENDIF
ENDIF
C.....ASSIGN A FORMULA FOR I (X) DEPENDING ON THE VALUE OF (X) AND WRITE IT
C.....TO THE OUT FILE OR TERMINATE THE PROGRAM.
20 IX = 1 +
$3.515629 * T ** 2 +
$3.0899424 * T ** 4 +
$1.2067492 * T ** 6 +
$0.2659732 * T ** 8 +
$0.0360768 * T ** 10 +
$0.0045813 * T ** 12
WRITE (2, 100) X, IX
100 FORMAT (1X, F18.6, F18.6)
GOTO 10
30 IX = (0.39894228 +
$0.01328592 * T ** (-1) +
$0.00225319 * T ** (-2) -
$0.00157565 * T ** (-3) +
$0.00916281 * T ** (-4) -
$0.02057706 * T ** (-5) +
$0.02635537 * T ** (-6) -
$0.01647633 * T ** (-7) +
$0.00392377 * T ** (-8)) /
$(X ** 0.5 * E)
WRITE (2, 200) X, IX
200 FORMAT (1X, F18.6, F18.6)
GOTO 10
C.....END THE PROGRAM.
40 STOP
END
C.....DATA FILE: F012P29.DAT
-1.0
-0.5
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
5.0
5.5
6.0
C.....OUTFILE: F012P29.OUT
F012 ANTHONY F. ORTIZ **P29**
BESSEL FUNCTION VALUES
X I(X)
-1.000000 1.266066
-.500000 1.063483
.000000 1.000000
.500000 1.063483
1.000000 1.266066
1.500000 1.646724
2.000000 2.279587
2.500000 3.289842
3.000000 4.880797
3.500000 7.378209
4.000000 11.301920
4.500000 17.481170
5.000000 27.239870
BACK TO COMP150 PAGE.