SUBROUTINE ELI2(R,TH,EM) CK=SQRT(ABS(1.-EM**2)) IF(ABS(EM).GT.1.0) CK=-CK A=1.0 B= 1.-EM**2 IF(ABS(COS(TH)).LT..1E-5) GO TO 116 X=SIN(TH)/COS(TH) GO TO 117 116 X=.1E10*SIN(TH)/ABS(SIN(TH)) C---- TEST ARGUEMENT 117 IF(X) 2,1,2 1 R=0. RETURN C---- TEST MODULUS 2 C=0. D=0.5 IF(CK) 7,3,7 3 R=SQRT(ABS(1.+X*X)) R=(A-B)*ABS(X)/R+B*ALOG(ABS(X)+R) C---- TEST SIGN OF ARGUEMENT 4 R=R+C*(A-B) IF(X) 5,6,6 5 R=-R 6 RETURN C---- INITIALIZATION 7 AN=(B+A)*.5 AA=A R=B ANG=.1E10 IF(ABS(X).LT..1E-5) GO TO 18 ANG=ABS(1.0/X) 18 PIM=0. ISI=0 ARI=1. GEC=ABS(CK) C---- LANDEN TRANSFORM 8 R=AA*GEC+R SGEC=ARI*GEC AA=AN AARI=ARI C---- ARITHMETIC MEAN ARI=GEC+ARI C---- SUM OF SINE VALUES AN=.1E10 IF(ABS(ARI).LT..1E-5) GO TO 19 AN=(R/ARI+AA)*0.5 19 AANG=ABS(ANG) ANG=-SGEC/ANG+ANG PIMA=PIM IF(ANG) 10,9,11 9 ANG=-1.E-8*AANG 10 PIM=PIM+3.1415927 ISI=ISI+1 11 AANG=ARI*ARI+ANG*ANG P=.1E10 IF(ABS(AANG).LT..1E-5) GO TO 20 P=D/SQRT(ABS(AANG)) 20 IF(ISI-4) 13,12,12 12 ISI=ISI-4 13 IF(ISI-2) 15,14,14 14 P=-P 15 C=C+P IF(ABS(ARI).LT..1E-5) GO TO 21 D=D*(AARI-GEC)*0.5/ARI GO TO 22 21 D=.1E10 22 IF(ABS(AARI-GEC)-1.0E-4*AARI) 17,17,16 16 SGEC=SQRT(ABS(SGEC)) C---- GEOMETRIC MEAN GEC=SGEC+SGEC PIM=PIM+PIMA ISI=ISI+ISI GO TO 8 C---- ACCURACY WAS SUFFICIENT 17 R=(ATAN(ARI/ANG)+PIM)*AN/ARI C=C+D*ANG/AANG GO TO 4 END