C; THIS PROGRAM COMPUTES THE J BESSEL FUNCTION C; FOR A GIVEN ARGUMENT AND ORDER C; ERROR CODE KEY: C; IER=0.......NO ERROR C; IER=1.......ORDER IS NEGATIVE C; IER=2.......ARGUMENT IS NEGATIVE OR ZERO C; IER=3.......REQ'D ACCURACY NOT OBTAINED C; IER=4.......RANGE OF N WRT. X NOT CORRECT 502; CONTINUE TYPE 100 100; FORMAT (/,"ENTER ORDER OF J BESSEL FUNCTION DESIRED",/) ACCEPT 200,N 200; FORMAT(I) TYPE 300 300; FORMAT("ENTER ARGUMENT OF J BESSEL FUNCTION DESIRED",/) ACCEPT 400,X 400; FORMAT(E) TYPE 500 500; FORMAT("ENTER ACCURACY DESIRED",/) ACCEPT 400,D BJ=0. IF(N)10,20,20 10; IER=1 GO TO 77 20; IF(X)30,30,31 30; IER=2 GO TO 77 31; IF(X-15.)32,32,34 32; NTEST=20.+10.*X-X**2./3. GO TO 36 34; NTEST=90.+X/2. 36; IF(N-NTEST)40,38,38 38; IER=4 GO TO 77 40; IER=0 N1=N+1 BPREV=.0 IF(X-5.)50,60,60 50; MA=X+6. GO TO 70 60; MA=1.4*X+60./X IFIX=X 70; MB=N+IFIX/4+2 IF(MB-MA)111,112,112 112; MZERO=MB GO TO 113 111; MZERO=MA 113; CONTINUE MMAX=NTEST DO 190 M=MZERO,MMAX,3 FM1=1.0E-28 FM=ALPHA=0. IF(M-(M/2)*2)120,110,120 110; JT=-1 GO TO 130 120; JT=1 130; M2=M-2 DO 160 K=1,M2 MK=M-K FLOAT=MK BMK=2.*FLOAT*FM1/X-FM FM=FM1 FM1=BMK IF(MK-N-1)150,140,150 140; BJ=BMK 150; JT=-JT S=1+JT ALPHA=ALPHA+BMK*S 160; CONTINUE BMK=2.*FM1/X-FM IF(N)180,170,180 170; BJ=BMK 180; ALPHA=ALPHA+BMK BJ=BJ/ALPHA UU=BJ-BPREV IF(UU)191,191,192 191; UU=-UU 192; VV=D*BJ IF(VV)193,193,194 193; VV=-VV 194; IF(UU-VV)77,77,195 195; BPREV=BJ 190; CONTINUE IER=3 77; TYPE 102,BJ,IER 102; FORMAT(E," IER=",I,/) GO TO 502 END