SUBROUTINE BN2(X,Y,ANG,EL,FI,HEL,PSI) DIMENSION FIC(2),DK(2) REAL LAM,M,KC,KIC IF(FI*X) 6,7,6 6 LAM=PSI-FI M=SIN(PSI/2.) CALL CEL1(KC,M,IER) CALL CEL2(EC,M,IER) TOL=.1E-5 I=1 FIC(I)=0.0 GO TO 2 1 I=2 I1=0 K1=1 FIC(I)=.5*FI 2 ARG=(SIN((FIC(I)+LAM)*.5))/M IF(ABS(ARG).GT.1.) ARG=SIGN(1.0,ARG) THETA=ASIN(ARG) CALL ELI1(KIC,THETA,M) CALL ELI2(EIC,THETA,M) DK(I)=KC-KIC IF(I-1) 3,1,3 3 DE=EC-EIC EL=HEL*DK(I)/DK(1) AK=(2.*DE/DK(I))-1. BK=(2.*M*COS(THETA))/DK(I) X1=EL*(AK*COS(LAM)+BK*SIN(LAM)) Y1=EL*(BK*COS(LAM)-AK*SIN(LAM)) XT=X1*COS(FI)+Y1*SIN(FI) Y=X1*SIN(FI)-Y1*COS(FI) ANG=FIC(I) CALL ITER8(1,K1,ANG,XM1,XT,YM1,X,DF,I1,TOL) IF(I1) 5,4,5 4 FIC(I)=ANG+DF IF(FIC(I).GT.FI) FIC(I)=FI-DF/(100.*K1) GO TO 2 5 ANG=FI-ANG RETURN 7 Y=0.0 EL=0.0 ANG=0.0 RETURN END