1 SUBROUTINE PTINT2(XXP,YYP,A,AMU,X,Y,XI,YI,NX,INDXUI,INDXLI,INXUIE, 2 1 INXLIE,ABORT) 3C 4C*** CALCULATES BOUNDRIES OF MACH LINES ON BODIES 5C 6 LOGICAL ABORT 7 COMMON /CONSNT/ PI,DEG,UNUSED,RAD 8 DIMENSION XXP(1),YYP(1),A(1),X(42),Y(42),XDIF(42),YDIF(42),XI(42), 9 1 YI(42),XP(42),YP(42) 10C 11 ABORT=.FALSE. 12 TAMU=SIN(AMU)/COS(AMU) 13 TMAMU=-TAMU 14 INDXUI=0 15 INDXLI=0 16 INXUIE=0 17 INXLIE=0 18 DX = -0.0001*XXP(NX) 19 DO 1000 KL=1,NX 20 XP(KL)=XXP(KL) 21 1000 YP(KL)=YYP(KL) 22 XP(NX+1)=XP(NX) 23 YP(NX+1)=-YP(NX) 24 NX1=NX+1 25 NXM1=NX-1 26 NX22M1=NX+21 27 DO 1010 I=1,NX1 28 X(I)=(XP(I)-A(1))*COS(-A(3)/RAD)+(YP(I)-A(2))*SIN(-A(3)/RAD) 29 Y(I)=(YP(I)-A(2))*COS(-A(3)/RAD)-(XP(I)-A(1))*SIN(-A(3)/RAD) 30 X(I+21)=(XP(I)-A(1))*COS(-A(3)/RAD) 31 1 +(-YP(I)-A(2))*SIN(-A(3)/RAD) 32 Y(I+21)=(-YP(I)-A(2))*COS(-A(3)/RAD) 33 1 -(XP(I)-A(1))*SIN(-A(3)/RAD) 34 L=I+21 35 1010 CONTINUE 36 IF(X(NX) .LT. 0.0 .AND. X(NX) .GT. DX) X(NX) = 0.0 37 IF(X(NX22M1) .LT. 0.0 .AND. X(NX22M1) .GT. DX) X(NX22M1) = 0.0 38 DO 1020 J=1,NX 39 IF(0.0.LE.X(J)) GO TO 1030 40 1020 CONTINUE 41 1030 INDEXU=J-1 42 DO 1040 J=1,NX 43 IF(0.0.LE.X(J+21)) GO TO 1050 44 1040 CONTINUE 45 1050 INDEXL=J+20 46 DO 1080 K=INDEXU,NX 47 XDIF(K)=X(K+1)-X(K) 48 YDIF(K)=Y(K+1)-Y(K) 49 IF(XDIF(K) .EQ. 0.0 .AND. YDIF(K) .EQ. 0.0) GO TO 1080 50 XI(K)=(Y(K)*XDIF(K)-X(K)*YDIF(K))/(XDIF(K)*TAMU-YDIF(K)) 51 YI(K)=XI(K)*TAMU 52 IF(K.NE.INDEXU) GO TO 1070 53 IF(X(NX).LT.0.0) GO TO 1060 54 YIN=(YDIF(K)/XDIF(K))*(-X(K))+Y(K) 55 IF(YIN.GE.0.0) GO TO 1070 56 1060 ABORT=.TRUE. 57 RETURN 58 1070 CONTINUE 59 IF(XI(K).GE.X(K).AND.XI(K).LE.X(K+1)) GO TO 1090 60 IF(K.NE.NXM1) GO TO 1080 61 IF(XI(K).GT.X(K+1)) INXUIE=NX-1 62 1080 CONTINUE 63 K=NX 64 1090 INDXUI=K 65 DO 1120 K=INDEXL,NX22M1 66 XDIF(K)=X(K+1)-X(K) 67 YDIF(K)=Y(K+1)-Y(K) 68 IF(XDIF(K) .EQ. 0.0 .AND. YDIF(K) .EQ. 0.0) GO TO 1120 69 XI(K)=(Y(K)*XDIF(K)-X(K)*YDIF(K))/(XDIF(K)*TMAMU-YDIF(K)) 70 YI(K)=-XI(K)*TAMU 71 IF(K.NE.INDEXL) GO TO 1110 72 IF(X(NX22M1).LT.0.0) GO TO 1100 73 YIN=(YDIF(K)/XDIF(K))*(-X(K))+Y(K) 74 IF(YIN.LE.0.0) GO TO 1110 75 1100 ABORT=.TRUE. 76 RETURN 77 1110 CONTINUE 78 IF(XI(K).GE.X(K).AND.XI(K).LE.X(K+1)) GO TO 1130 79 IF(K.NE.(NX22M1-1)) GO TO 1120 80 IF(XI(K).GT.X(K+1)) INXLIE=NX22M1-1 81 1120 CONTINUE 82 K=NX22M1 83 1130 INDXLI=K 84 RETURN 85 END 86