SUBROUTINE BN3(X,Y,ANG,ELD,FI,HEL,PSI) DIMENSION FIC(2),DK(2) REAL LAM,M,KC,KIC LAM=PSI-FI M=SIN(PSI/2.) CALL CEL1(KC,M,IER) CALL CEL2(EC,M,IER) TOL=.1E-5 I1=0 K1=1 I=1 FIC(I)=0.0 GO TO 2 1 ELDP=ELD IF(ELD-EL) 6,7,8 7 RETURN 8 XX=X ELDP=2.*HEL-ELD 6 I=2 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 DE=EC-EIC EL=HEL*DK(I)/DK(1) AK=(2.*DE/DK(I))-1. BK=(2.*M*COS(THETA))/DK(I) X=EL*(AK*COS(LAM)+BK*SIN(LAM)) Y=EL*(BK*COS(LAM)-AK*SIN(LAM)) ANG=FIC(I) IF(I-1) 3,1,3 3 CALL ITER8(1,K1,ANG,XM1,EL,YM1,ELDP,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 IF(ELD.LT.HEL) RETURN X=2.*XX-X ANG=-ANG RETURN END