C C C ******************************************** C * * C * SUBROUTINE TO CALCULATE TORPEDO TRACK * C * * C ******************************************** C SUBROUTINE TOTRAK COMMON QUAD(8,8),SECT(10,10),NGAL(8,8),K(7,5),STATUS(13),R1,C1,R,C &,H1,POW,SHLD(5),NTORP,A,B,H(7),N1,N2,N3,N4,N5,N6,II,JJ,RANK,ITR(4) COMMON/MISC1/ICAPV(5),M1,M2,DATE,DLN,BEARNG,NCAS(2),CMD,IG2,NPRIS, &IBELL COMMON/SBASE/NBAS,RBAS,CBAS,STBS(5,5),NBASRM,NKDESB,KLATK(5) COMMON/RATNG/NBASD,NRESC,NFRES,NROMD,NCAPAL,NPRTKN COMMON/SYMBL/DOT,STAR,SHP,KLIN,BASE,ROM,MINE,SECTOR(10,10) COMMON/WRDS/COND,KL,RM,GRN,RED,DCKD,DEST(2),DISAB(2),SHIP(16) COMMON/OBJCTS/D9,S9,E9,K9,B9,R9,M9 COMMON/ALPHA/ALPH(30) COMMON/TESTS1/TROM1,TROM2,TDISAB,TDEST,TWON,TLOST,TRESC,TALTOW, &TBOFF,TALERT,TLOOS,TBALEN,TALSD,TINTRD COMMON/RENEG/TRENEG,TSLAP,TSHOOT,TBAN COMMON/TRPS/IFANGL(7),FANGL(7),M(7),N(7),IG(7),L(7),IH(7),NTARG,NT &,NS,IT2,ID3,IG3,IG4,IG6,IG7,IG8,IG9,IR5,TABORT,TAUTOF INTEGER SECT,QUAD,R1,C1,R,C,SHLD,H1,A,B,POW,H,RBAS,CBAS,STBS,DLN INTEGER CMD,D9,E9,S9,B9,R9 REAL*8 KL,RM,GRN,RED,DCKD,COND,ALIEN,DEST,DISAB LOGICAL TROM1,TROM2,TDISAB,TDEST,TWON,TLOST,TRESC,TALTOW,TBOFF, &TALERT,TEST1,TLOOS,TBALEN,TALSD,TINTRD,TABORT,TAUTOF,TEST2 LOGICAL TRENEG,TSLAP,TSHOOT,TBAN LOGICAL*1 DOT,STAR,SHP,KLIN,BASE,ROM,MINE,SECTOR,ALPH,SHIP DATA INDS,INDB/'es',2H / C RAD(ANGLE)=ANGLE*0.017453293 C ID2=0 IF(TAUTOF)GOTO 9 ID3=0 IG3=0 IG4=0 IG6=0 IG7=0 IG8=0 IG9=0 IR5=0 100 TYPE 101 101 FORMAT(/1X,'TORPEDO TRACK:'/1X,$) IE=INDS IF(IT2.EQ.1)IE=INDB WRITE(3,1001)IT2,IE 1001 FORMAT(/1X,I3,' photon torpedo',A2,' fired'/) POW=POW-IT2 IF(POW.LT.0)POW=0 9 DO 1 I=1,7 M(I)=500 1 CONTINUE DO 13 J=0,20 DO 3 I=1,IT2 IF(M(I).EQ.0)GOTO 69 XJ=J RANGL=RAD(FANGL(I)) M(I)=XJ*-SIN(RANGL)+0.5+FLOAT(A)+0.0001 N(I)=XJ*COS(RANGL)+0.5+FLOAT(B)+0.0001 IF(.NOT.TAUTOF .OR. I.EQ.1)GOTO 54 DO 4 I1=1,7 IF(M(I).EQ.IG(I1) .AND. N(I).EQ.L(I1))GOTO 7 4 CONTINUE 54 IF(M(I).GT.10 .OR. N(I).GT.10)GOTO 56 IF(M(I).GT.0 .AND. N(I).GT.0)GOTO 57 56 M(I)=0 ID2=ID2+1 N(I)=0 IF(ID2.GE.IT2)GOTO 2 57 IF(M(I).EQ.0)GOTO 69 IF(TAUTOF)GOTO 12 IF(SECT(M(I),N(I)).EQ.R9)SECTOR(M(I),N(I))=ROM 210 TYPE 211,M(I),N(I),SECTOR(M(I),N(I)) 211 FORMAT(1H+,2X,I3,','I3,A1,$) 12 GOTO(7,8,7,15,33,17,5),SECT(M(I),N(I))+1 5 IF(.NOT.TAUTOF)GOTO 53 N(I)=0 GOTO 6 53 SECT(M(I),N(I))=D9 SECTOR(M(I),N(I))=DOT M2=M2-1 IG9=IG9+1 8 IF(.NOT.TAUTOF)GOTO 14 N(I)=0 GOTO 6 14 M(I)=0 ID2=ID2+1 GOTO 30 15 IF(TAUTOF)GOTO 66 ALIEN=KL GOTO 24 17 IF(TAUTOF .AND. TROM2)GOTO 66 IF(TAUTOF)GOTO 7 ALIEN=RM TROM2=.TRUE. 24 IF(RAN(II,JJ).LT.0.3)GOTO 23 29 NUM=4 IF(ALIEN.EQ.KL)GOTO 45 IG8=1 GOTO 46 45 IG4=IG4+1 46 SECT(M(I),N(I))=D9 SECTOR(M(I),N(I))=DOT TEST2=.FALSE. 66 NN=0 DO 25 NA=1,7 IF(M(I).NE.K(NA,1) .OR. N(I).NE.K(NA,2))GOTO 25 IF(K(NA,4).EQ.1)NN=NA IF(TAUTOF)GOTO 67 H1=H1-H(NA) IF(K(NA,4).EQ.2)TALSD=.FALSE. DO 64 LL=1,5 K(NA,LL)=0 64 CONTINUE 25 CONTINUE 67 IF(.NOT.TAUTOF)ID2=ID2+1 IF(M(I).NE.ICAPV(1) .OR. N(I).NE.ICAPV(2))GOTO 62 IF(TAUTOF)GOTO 5 TBOFF=.TRUE. TEST1=.FALSE. TEST2=.TRUE. IF(ICAPV(5).EQ.1)TEST1=.TRUE. IF(ICAPV(5).EQ.2)TALSD=.FALSE. DO 63 LL=1,5 ICAPV(LL)=0 63 CONTINUE IF(TEST1)GOTO 35 62 IF(NN.NE.0)GOTO 35 IF(TAUTOF)GOTO 65 N4=N4-1 IF(ALIEN.EQ.KL)GOTO 26 TROM1=.FALSE. NROMD=NROMD+1 GOTO 27 26 IF(TEST2)GOTO 27 N3=N3-1 QUAD(R1,C1)=QUAD(R1,C1)-100 NGAL(R1,C1)=QUAD(R1,C1) 27 IF(N3.GT.0)GOTO 35 IF(N6.EQ.0 .OR. TROM1)GOTO 59 IF(STBS(N6,4).NE.1)GOTO 59 STBS(N6,4)=0 TRESC=.TRUE. 59 IF(TROM1 .OR. TEST2)GOTO 35 IF(COND.NE.DCKD)COND=GRN IF(.NOT.TALERT)GOTO 35 IF(COND.NE.GRN .OR. STATUS(6).LT.0. .OR. SHLD(5).EQ.0)GOTO 35 POW=POW+SHLD(5) DO 72 I1=1,5 SHLD(I1)=0 72 CONTINUE GOTO 35 23 DO 28 NA=1,7 IF(M(I).NE.K(NA,1) .OR. N(I).NE.K(NA,2))GOTO 28 IF(K(NA,3).LT.100)GOTO 29 K(NA,3)=K(NA,3)-INT(RAN(II,JJ)*200.)-20 IF(K(NA,3).LE.0)GOTO 29 IF(K(NA,3).LT.100 .AND. K(NA,4).EQ.0)ID3=ID3+1 28 CONTINUE NUM=19 IF(ALIEN.EQ.RM)IG7=IG7+1 IG3=IG3+1 ID2=ID2+1 GOTO 35 33 IF(COND.EQ.DCKD)GOTO 7 IF(TAUTOF)GOTO 5 ID2=ID2+1 IG6=IG6+1 IF(TRENEG .OR. COND.EQ.RED)GOTO 34 58 NUM=4 IR5=1 SECT(M(I),N(I))=D9 SECTOR(M(I),N(I))=DOT QUAD(R1,C1)=QUAD(R1,C1)-10 NGAL(R1,C1)=QUAD(R1,C1) STBS(N6,1)=0 NBASRM=NBASRM-1 NBASD=NBASD+1 IF(NBASD.GT.1 .OR. COND.EQ.GRN)TRENEG=.TRUE. IF(COND.EQ.DCKD)TDEST=.TRUE. GOTO 35 34 NUM=19 STBS(N6,3)=STBS(N6,3)-INT(RAN(II,JJ)*500.)-20 IF(TRENEG)TSHOOT=.TRUE. IF(STBS(N6,3).LT.0 .OR. COND.EQ.DCKD)GOTO 58 IF(.NOT.TRENEG .AND. COND.EQ.GRN)GOTO 58 35 IF(TAUTOF)GOTO 5 M(I)=0 220 TYPE 221,ALPH(NUM) 221 FORMAT(1H+,A1,$) GOTO 18 7 IF(.NOT.TAUTOF)GOTO 30 N(I)=0 GOTO 3 30 TYPE 31 31 FORMAT(1H+,' ',$) GOTO 18 69 IF(TAUTOF)GOTO 36 40 TYPE 41 41 FORMAT(1H+,11X,$) 18 IF(I.EQ.IT2 .AND. ID2.LT.IT2)GOTO 50 IF(ID2.LT.IT2)GOTO 3 50 TYPE 51 51 FORMAT(1H+,1X/1X,$) IF(.NOT.TAUTOF)GOTO 36 65 IG(I)=M(I) L(I)=N(I) NTARG=NTARG+1 N(I)=1 6 M(I)=0 ID2=ID2+1 36 IF(ID2.GE.IT2)GOTO 2 3 CONTINUE DO 68 I1=1,7 IG(I1)=0 L(I1)=0 68 CONTINUE 13 CONTINUE 2 RETURN END