SUBROUTINE TDATA C** TORPEDO FIRE DATA COMMON /GENDTA/SDATE,COND(2),KLING,TMLEFT,ITORP,ENERGY,SHELDS COMMON /SECT/SEC(64,64),ISX,ISY,ISX8,ISY8 COMMON /QUAD/IQAD(8,8),IQX,IQY DIMENSION IXS(8),IYS(8) DATA BLNK/' '/ DATA AKNGN/''/ C** SET NUMBER OF KLNIGONS TO ZERO NOKNG = 0 C** LOAD X + Y ARRAYS KX = ISX-3 KY = ISY -3 IF(KX .LE. 0)KX=64+KX IF(KY .LE. 0)KY=64+KY DO 10 K=1,8 IXS(K)=KX IYS(K)=KY KX = KX+1 KY = KY+1 IF(KX .EQ. 65)KX=1 IF(KY .EQ. 65)KY=1 10 CONTINUE C** SEARCH FOR A KLINGON DO 100 I=1,7 IXX=IXS(I) DO 99 J=1,7 IYY=IYS(J) DELX = I-4 DELY = J-4 IF(SEC(IXX,IYY) .EQ. '(R)')TYPE 1004 1004 FORMAT(' COMPUTER CANNOT PROVIDE TORPEDO FIRING DATA FOR' * /,' ROMULANS BECAUSE OF THEIR CLOAKING DEVICE.') IF(SEC(IXX,IYY) .NE. AKNGN)GO TO 99 DIST = SQRT(DELX**2 + DELY**2) KXX=(IXX-1)/8 KYY=(IYY-1)/8 KXX=IXX-KXX*8 KYY=IYY-KYY*8 NOKNG = NOKNG + 1 TYPE 1001,KXX,KYY,DIST 1001 FORMAT(2X,'KLINGON AT SECTOR(',I2,',',I2,') AT DISTANCE ',F8.5) IF(DIST .GT. 7.0)GO TO 90 C** COMPUTE DIRECTION ANGLE = ATAN2(-DELY,DELX) IF(ANGLE .GE. 0.0)GO TO 80 COURSE = ANGLE*8/6.28318 +9 GO TO 85 80 COURSE = ANGLE*8/6.28318 +1 85 CONTINUE D TYPE *,ANGLE,DELX,DELY TYPE 1002,COURSE 1002 FORMAT(27X,'AT COURSE ',F8.5) GO TO 99 C** OUT OF RANGE 90 TYPE 1003 1003 FORMAT(27X,'OUT OF RANGE') 99 CONTINUE 100 CONTINUE IF(NOKNG .EQ. 0)TYPE *,' NO KLINGONS IN TORPEDO RANGE' 999 RETURN END