home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / FORTRAN / SUPERT87.ZIP / COLLIS.FOR < prev    next >
Encoding:
Text File  |  1986-12-15  |  28.0 KB  |  374 lines

  1.  
  2.       SUBROUTINE COLLIS                                                 0447
  3.  
  4. c    include 'tcommon.for'
  5.     %include tcommon.for
  6.  
  7. C     ...SUBROUTINE TO DETERMINE ALL POSSIBLE COLLISIONS                0474
  8. C     ...E COLLISION WITH *                                             0475
  9.       IF(NSTARS.EQ.0)GO TO 115                                          0476
  10.       DO 100 I=1,NSTARS                                                 0477
  11.       IF(STARS(I,1).EQ.0.)GO TO 100                                     0478
  12.       IF(RANGE(XQE,STARS(I,1),YQE,STARS(I,2)).GT.RAD(I))GO TO 100       0479
  13.       CALL RATING(1)                                                    0480
  14. 100   CONTINUE                                                          0481
  15. C     ...SUPERNOVA?                                                     0482
  16. 110   IF(RAN(IZZ).GT.SNOVAP)GO TO 115                                   0483
  17.       NS=NSTARS*RAN(IZZ)+1.                                             0484
  18. 1101  WRITE(6,111)NS                                                    0485
  19. 111   FORMAT(' STAR ',I1,' GOING SUPERNOVA!!')                          0486
  20.       NTORPS=0                                                          0487
  21.       IF(IGH.EQ.0)GO TO 1111                                            0488
  22.       CALL DLETE(5,1)                                                   0489
  23. 1111  DO 1112 I=1,NSTARS                                                0490
  24.       IF(STARS(I,1).EQ.0.)GO TO 1112                                    0491
  25.       CALL DLETE(1,I)                                                   0492
  26. 1112  CONTINUE                                                          0493
  27.       IF(NROM.EQ.0)GO TO 1114                                           0494
  28.       DO 1113 I=1,NROM                                                  0495
  29.       IF(XROM(I,1).EQ.0.)GO TO 1113                                     0496
  30.       CALL DLETE(4,I)                                                   0497
  31. 1113  CONTINUE                                                          0498
  32. 1114  IF(KLNGNS.EQ.0)GO TO 1116                                         0499
  33.       DO 1115 I=1,KLNGNS                                                0500
  34.       IF(XKL(I,1).EQ.0.)GO TO 1115                                      0501
  35.       CALL DLETE(3,I)                                                   0502
  36. 1115  CONTINUE                                                          0503
  37. 1116  IF(IBASE.EQ.0)GO TO 1117                                          0504
  38.       CALL DLETE(6,1)                                                   0505
  39. 1117  X=DEFL                                                            0506
  40.       IF(X.EQ.0.)GO TO 1118                                             0507
  41.       X=300000./X                                                       0508
  42.       IF(X.GT.ZMAX)GO TO 1118                                           0509
  43.       GO TO 1119                                                        0510
  44. 1118  X=ZMAX                                                            0511
  45. 1119  WRITE(6,11911)                                                    0512
  46. 11911 FORMAT(' SHIELDS DESTROYED')                                      0513
  47.       CALL DAMAGE(-1,X)                                                 0514
  48.       DEFL=0.                                                           0515
  49.       IF(ISTSH.EQ.0)GO TO 115                                           0516
  50.       WRITE(6,1120)                                                     0517
  51. 1120  FORMAT(' SHUTTLECRAFT DESTROYED')                                 0518
  52.       DO 1121 I=1,9                                                     0519
  53. 1121  IFNDS(I)=0                                                        0520
  54.       ISTSH=0                                                           0521
  55.       ISHD=0                                                            0522
  56.       ISHNUM=ISHNUM-1                                                   0523
  57. C     ...E WITH K.                                                      0524
  58. 115   IF(IDOCK.EQ.2)GO TO 210                                           0525
  59.       IF(KLNGNS.EQ.0)GO TO 130                        
  60.       DO 120   I=1,KLNGNS                        
  61.       IF(XKL(I,1).EQ.0.)GO TO 120                                       0528
  62.       IF(RANGE(XQE,XKL(I,1),YQE,XKL(I,2)).GT.RADEK)GO TO 120            0529
  63.       WRITE(6,1)LETR(2),LETR(3),I                                       0530
  64. 1     FORMAT(1X,A1,'-',A1,I1,' COLLISION')                              0531
  65.       CALL DLETE(3,I)                                                   0532
  66.       WRITE(6,2)                                                        0533
  67. 2     FORMAT(' SHIELDS DESTROYED')                                      0534
  68.       CALL DAMAGE(0,DEFL)                                               0535
  69. 120   CONTINUE                                                          0536
  70. C     ...E WITH R.                                                      0537
  71. 130   IF(NROM.EQ.0)GO TO 150                                            0538
  72.       DO 140    I=1,NROM                                                0539
  73.       IF(XROM(I,1).EQ.0.)GO TO 140                                      0540
  74.       IF(RANGE(XQE,XROM(I,1),YQE,XROM(I,2)).GT.RADER)GO TO 140          0541
  75.       WRITE(6,1)LETR(2),LETR(4),I                                       0542
  76.       CALL DLETE(4,I)                                                   0543
  77.       WRITE(6,2)                                                        0544
  78.       CALL DAMAGE(0,DEFL)                                               0545
  79. 140   CONTINUE                                                          0546
  80. C     ...E WITH G.                                                      0547
  81. 150   IF(IGH.EQ.0)GO TO 170                                             0548
  82.       IF(RANGE(XQE,GHOST(1),YQE,GHOST(2)).GT.RADEG)GO TO 170            0549
  83.       WRITE(6,7)LETR(2),LETR(5)                                         0550
  84.       CALL DLETE(5,1)                                                   0551
  85.       WRITE(6,2)                                                        0552
  86.       CALL DAMAGE(0,DEFL)                                               0553
  87. C     ...E WITH B. MAY BE DOCKING.                                      0554
  88. 170   IF(IBASE.EQ.0)GO TO 190                                           0555
  89.       IF(RANGE(XQE,BASE(1),YQE,BASE(2)).GT.RADEB)GO TO 190              0556
  90.       IF(PSP.LE.DMXSPD)GO TO 180                                        0557
  91.       WRITE(6,7)LETR(2),LETR(6)                                         0558
  92.       CALL DLETE(6,1)                                                   0559
  93.       WRITE(6,2)                                                        0560
  94.       CALL DAMAGE(0,DEFL)                                               0561
  95.       GO TO 190                                                         0562
  96. 180   IDOCK=1                                                           0563
  97.       GO TO 210                                                         0564
  98. C     ...E WITH T.                                                      0565
  99. 190   IF(NTORPS.EQ.0)GO TO 205                                          0566
  100.       DO 200    I=1,NTORPS                                              0567
  101.       IF(TORPS(I,1).EQ.0.)GO TO 200                                     0568
  102.       X=RANGE(XQE,TORPS(I,1),YQE,TORPS(I,2))                            0569
  103.       IF(X.GT.RADET)GO TO 200                                           0570
  104. C     ...E FIRED TORPS CAN'T HURT E.                                    0571
  105.       IF(TORPS(I,4).LT.0.)GO TO 200                                     0572
  106.       Y=AMAX1(TPMIN,(1.-X**2/RADET**2)*TPOWR)/SHLDF                     0573
  107.       WRITE(6,3)LETR(7),LETR(2)                                         0574
  108. 3     FORMAT(1X,A1,' HIT ON ',A1)                                       0575
  109.       CALL HITONE(Y)                                                    0576
  110.       CALL DLETE(7,I)                                                   0577
  111. 200   CONTINUE                                                          0578
  112. C     ...E WITH BLACK HOLE.                                             0579
  113. 205   IF(IHOLE.EQ.0)GO TO 210                                           0580
  114.       IF(RANGE(XQE,FLOAT(IHOLE),YQE,FLOAT(JHOLE)).GT.HOLRAD)GO TO 210   0581
  115.       WRITE(6,206)LETR(2)                                               0582
  116. 206   FORMAT(1X,A1,' CAPTURED BY BLACK HOLE GRAVITATION FIELD!')        0583
  117.       IS=-1                                                             0584
  118.       CALL EPMOVE(IS)                                                   0585
  119.       GO TO 999                                                         0586
  120. C     ...K WITH *                                                       0587
  121. 210   IF(KLNGNS.EQ.0)GO TO 330                                          0588
  122.       IF(NSTARS.EQ.0)GO TO 230                                          0589
  123.       DO 220    I=1,KLNGNS                                              0590
  124.       IF(XKL(I,1).EQ.0.)GO TO 220                                       0591
  125.       DO 225    J=1,NSTARS                                              0592
  126.       IF(STARS(J,1).EQ.0.)GO TO 225                                     0593
  127.       IF(RANGE(XKL(I,1),STARS(J,1),XKL(I,2),STARS(J,2)).GT.RAD(I))GO TO 0594
  128.      1225                                                               0595
  129.       WRITE(6,1)LETR(1),LETR(3),I                                       0596
  130.       IF(RAN(IZZ).GT.SNOVAP)GO TO 224                                   0597
  131.       NS=J                                                              0598
  132.       GO TO 1101                                                        0599
  133. 224   CALL DLETE(3,I)                                                   0600
  134.       CALL DLETE(1,J)                                                   0601
  135. 225   CONTINUE                                                          0602
  136. 220   CONTINUE                                                          0603
  137. C     ...K WITH K.                                                      0604
  138. 230   IF(KLNGNS.LE.1)GO TO 250                                          0605
  139.       DO 240 I=1,KLNGNS                                                 0606
  140.       IF(XKL(I,1).EQ.0.)GO TO 240                                       0607
  141.       DO 245    J=1,KLNGNS                                              0608
  142.       IF(XKL(J,1).EQ.0.)GO TO 245                                       0609
  143.       IF(J.EQ.I)GO TO 245                                               0610
  144.       IF(RANGE(XKL(I,1),XKL(J,1),XKL(I,2),XKL(J,2)).GT.RADKK)GO TO 245  0611
  145.       WRITE(6,5)LETR(3),I,LETR(3),J                                     0612
  146. 5     FORMAT(1X,A1,I1,'-',A1,I1,' COLLISION')                           0613
  147.       CALL DLETE(3,I)                                                   0614
  148.       CALL DLETE(3,J)                                                   0615
  149. 245   CONTINUE                                                          0616
  150. 240   CONTINUE                                                          0617
  151. C     ...K WITH R.                                                      0618
  152. 250   IF(KLNGNS.EQ.0)GO TO 330                                          0619
  153.       IF(NROM.EQ.0)GO TO 270                                            0620
  154.       DO 260 I=1,KLNGNS                                                 0621
  155.       IF(XKL(I,1).EQ.0.)GO TO 260                                       0622
  156.       DO 265    J=1,NROM                                                0623
  157.       IF(XROM(J,1).EQ.0.)GO TO 265                                      0624
  158.       IF(RANGE(XKL(I,1),XROM(J,1),XKL(I,2),XROM(J,2)).GT.RADKR)GO TO 2650625
  159.       WRITE(6,5)LETR(3),I,LETR(4),J                                     0626
  160.       CALL DLETE(3,I)                                                   0627
  161.       CALL DLETE(4,J)                                                   0628
  162. 265   CONTINUE                                                          0629
  163. 260   CONTINUE                                                          0630
  164. C     ...K WITH G.                                                      0631
  165. 270   IF(KLNGNS.EQ.0)GO TO 330                                          0632
  166.       DO 280    I=1,KLNGNS                                              0633
  167.       IF(XKL(I,1).EQ.0.)GO TO 280                                       0634
  168.       IF(IGH.EQ.0)GO TO 290                                             0635
  169.       IF(RANGE(XKL(I,1),GHOST(1),XKL(I,2),GHOST(2)).GT.RADKG)GO TO 280  0636
  170.       WRITE(6,1)LETR(5),LETR(3),I                                       0637
  171.       CALL DLETE(3,I)                                                   0638
  172.       CALL DLETE(5,1)                                                   0639
  173. 280   CONTINUE                                                          0640
  174. C     ...K WITH B.                                                      0641
  175. 290   IF(KLNGNS.EQ.0)GO TO 330                                          0642
  176.       IF(IBASE.EQ.0)GO TO 310                                           0643
  177.       DO 300    I=1,KLNGNS                                              0644
  178.       IF(XKL(I,1).EQ.0.)GO TO 300                                       0645
  179.       IF(RANGE(XKL(I,1),BASE(1),XKL(I,2),BASE(2)).GT.RADKB)GO TO 300    0646
  180.       WRITE(6,1)LETR(6),LETR(3),I                                       0647
  181.       CALL DLETE(3,I)                                                   0648
  182.       CALL DLETE(6,1)                                                   0649
  183.       IF(IDOCK.EQ.2)IDOCK=0                                             0650
  184. 300   CONTINUE                                                          0651
  185. C     ...K WITH T.                                                      0652
  186. 310   IF(KLNGNS.EQ.0)GO TO 330                                          0653
  187.       IF(NTORPS.EQ.0)GO TO 326                                          0654
  188.       DO 320    I=1,KLNGNS                                              0655
  189.       IF(XKL(I,1).EQ.0.)GO TO 320                                       0656
  190.       DO 325  J=1,NTORPS                                                0657
  191.       IF(TORPS(J,1).EQ.0.)GO TO 325                                     0658
  192.       IF(RANGE(XKL(I,1),TORPS(J,1),XKL(I,2),TORPS(J,2)).GT.RADKT)GO TO 30659
  193.      125                                                                0660
  194.       IF(TORPS(J,4).LT.360..AND.TORPS(J,4).GE.0.)GO TO 325              0661
  195.       WRITE(6,6)LETR(7),LETR(3),I,XKL(I,1),XKL(I,2)                     0662
  196. 6     FORMAT(1X,A1,' HIT ON ',A1,I1,' AT ',F4.1,',',F4.1)               0663
  197.       CALL DLETE(3,I)                                                   0664
  198.       CALL DLETE(7,J)                                                   0665
  199. 325   CONTINUE                                                          0666
  200. 320   CONTINUE                                                          0667
  201. C     ...K WITH BLACK HOLE.                                             0668
  202. 326   IF(IHOLE.EQ.0)GO TO 330                                           0669
  203.       DO 327 I=1,KLNGNS                                                 0670
  204.       IF(XKL(I,1).EQ.0.)GO TO 327                                       0671
  205.       IF(RANGE(XKL(I,1),FLOAT(IHOLE),XKL(I,2),FLOAT(JHOLE)).GT.HOLRAD)GO0672
  206.      1 TO 327                                                           0673
  207.       KCE=IBL(ICE,JCE)/100                                              0674
  208.       LCE=IBL(ICE,JCE)-KCE*100                                          0675
  209.       M=JGAL(KCE,LCE)                                                   0676
  210.       WRITE(6,3261)LETR(3),I                                            0677
  211. 3261  FORMAT(1X,A1,I1,' CAPTURED BY BLACK HOLE')                        0678
  212.       IF(M-M/1000*1000.LT.900)GO TO 3263                                0679
  213.       CALL DLETE(3,I)                                                   0680
  214.       GO TO 3265                                                        0681
  215. 3263  WRITE(6,3262)KCE,LCE                                              0682
  216. 3262  FORMAT(' ESCAPED TO QUADRANT ',I2,',',I2)                         0683
  217.       JGAL(ICE,JCE)=JGAL(ICE,JCE)-100                                   0684
  218.       IF(IDMG(6).EQ.0.OR.IDMG(7).EQ.0)IGAL(ICE,JCE)=JGAL(ICE,JCE)       0685
  219.       JGAL(KCE,LCE)=M+100                                               0686
  220. 3265  J J=I                                                             0687
  221.       IF(ITRMEN(JJ+1).EQ.0)GO TO 97531                                  0688
  222.       IF(XKL(I,1).EQ.0.)GO TO 97532                                     0689
  223.       WRITE(6,97530)ITRMEN(JJ+1)                                        0690
  224. 97530 FORMAT(I4,' TROOPS CAPTURED BY ENEMY')                            0691
  225.       GO TO 97533                                                       0692
  226. 97532 WRITE(6,97534)ITRMEN(JJ+1)                                        0693
  227. 97534 FORMAT(I4,' TROOPS ON BOARD LOST')                                0694
  228. 97533 ITRMEN(JJ+1)=0                                                    0695
  229.       IF(ISTAT.EQ.0)GO TO 97531                                         0696
  230. C     ...STOP BEAMING.                                                  0697
  231.       IF(JUP.EQ.3.AND.JFROM.EQ.JJ.OR.JDOWN.EQ.3.AND.JTO.EQ.JJ)ISTAT=99990698
  232. 97531 ICNTL(JJ+1)=0                                                     0699
  233.       XKL(JJ,1)=0.                                                      0700
  234. 327   CONTINUE                                                          0701
  235. C     ...T WITH *.                                                      0702
  236. 330   IF(NTORPS.EQ.0)GO TO 440                                          0703
  237.       IF(NSTARS.EQ.0)GO TO 350                                          0704
  238.       DO 340    I=1,NTORPS                                              0705
  239.       IF(TORPS(I,1).EQ.0.)GO TO 340                                     0706
  240.       DO 345  J=1,NSTARS                                                0707
  241.       IF(STARS(J,1).EQ.0.)GO TO 345                                     0708
  242.       IF(RANGE(TORPS(I,1),STARS(J,1),TORPS(I,2),STARS(J,2)).GT.       RA0709
  243.      1D(I))GO TO 345                                                    0710
  244.       IF(RAN(IZZ).GT.SNOVAP)GO TO 344                                   0711
  245.       NS=J                                                              0712
  246.       GO TO 1101                                                        0713
  247. 344   CALL DLETE(7,I)                                                   0714
  248.       CALL DLETE(1,J)                                                   0715
  249.       IF(NROM.EQ.0)GO TO 345                                            0716
  250.       IF(TORPS(I,4).GE.360..OR.TORPS(I,4).LT.0.)GO TO 345               0717
  251.       IF(RAN(IZZ).GT.PRORAS)GO TO 345                                   0718
  252.       WRITE(6,341)                                                      0719
  253. 341   FORMAT(' OUTRAGED ALIENS DESTROY EVERY ROMULAN IN QUADRANT'/      0720
  254.      1' IN RETALIATION FOR DESTRUCTION OF THEIR STAR SYSTEM!')          0721
  255.       DO 342 K=1,NROM                                                   0722
  256.       IF(XROM(K,1).EQ.0.)GO TO 342                                      0723
  257.       CALL DLETE(4,K)                                                   0724
  258. 342   CONTINUE                                                          0725
  259. 345   CONTINUE                                                          0726
  260. 340   CONTINUE                                                          0727
  261. C     ...T WITH R.                                                      0728
  262. 350   IF(NTORPS.EQ.0)GO TO 440                                          0729
  263.       IF(NROM.EQ.0)GO TO 370                                            0730
  264.       DO 360    I=1,NTORPS                                              0731
  265.       IF(TORPS(I,1).EQ.0.)GO TO 360                                     0732
  266.       DO 355 J=1,NROM                                                   0733
  267.       IF(XROM(J,1).EQ.0.)GO TO 355                                      0734
  268.       IF(RANGE(TORPS(I,1),XROM(J,1),TORPS(I,2),XROM(J,2)).GT.RADTR)     0735
  269.      1  GO TO 355                                                       0736
  270.       IF(TORPS(I,4).LT.360.AND.TORPS(I,4).GE.0.)GO TO 355               0737
  271.       IF(ICNTL(J+10).EQ.1.AND.TORPS(I,4).LT.0.)GO TO 355                0738
  272.       WRITE(6,6)LETR(7),LETR(4),J,XROM(J,1),XROM(J,2)                   0739
  273.       CALL DLETE(4,J)                                                   0740
  274.       CALL DLETE(7,I)                                                   0741
  275. 355   CONTINUE                                                          0742
  276. 360   CONTINUE                                                          0743
  277. C     ...T WITH G.                                                      0744
  278. 370   IF(NTORPS.EQ.0)GO TO 440                                          0745
  279.       IF(IGH.EQ.0)GO TO 390                                             0746
  280.       DO 380    I=1,NTORPS                                              0747
  281.       IF(TORPS(I,1).EQ.0.)GO TO 380                                     0748
  282.       X=RANGE(TORPS(I,1),GHOST(1),TORPS(I,2),GHOST(2)   )               0749
  283.       IF(X.GT.RADGT)GO TO 380                                           0750
  284. C     ...G FIRED T CAN'T HURT G.                                        0751
  285.       IF(TORPS(I,4).GE.360.)GO TO 380                                   0752
  286.       WRITE(6,3)LETR(7),LETR(5)                                         0753
  287.       CALL DLETE(7,I)                                                   0754
  288.       Y=AMAX1(TPMIN,(1.-X**2/RADGT**2)*TPOWR)                           0755
  289.       GHOST(13)=GHOST(13)-Y                                             0756
  290.       IF(GHOST(13).GE.0.)GO TO 380                                      0757
  291.       Y=GHOST(13)                                                       0758
  292.       GHOST(13)=0.                                                      0759
  293.       GHOST(3)=GHOST(3)-Y                                               0760
  294.       IF(GHOST(3).LT.XGHIT)GO TO 380                                    0761
  295.       CALL DLETE(5,1)                                                   0762
  296.       GO TO 390                                                         0763
  297. 380   CONTINUE                                                          0764
  298. C     ...T WITH B.                                                      0765
  299. 390   IF(NTORPS.EQ.0)GO TO 440                                          0766
  300.       IF(IBASE.EQ.0)GO TO 410                                           0767
  301.       DO 400    I=1,NTORPS                                              0768
  302.       IF(TORPS(I,1).EQ.0.)GO TO 400                                     0769
  303.       X=RANGE(TORPS(I,1),BASE(1),TORPS(I,2),BASE(2)   )                 0770
  304.       IF(X.GT.RADBT)GO TO 400                                           0771
  305.       CALL DLETE(7,I)                                                   0772
  306. 400   CONTINUE                                                          0773
  307. C     ...T WITH T.                                                      0774
  308. 410   IF(NTORPS.EQ.0)GO TO 440                                          0775
  309.       DO 420    I=1,NTORPS                                              0776
  310.       IF(TORPS(I,1).EQ.0.)GO TO 420                                     0777
  311.       DO 425    J=1,NTORPS                                              0778
  312.       IF(TORPS(J,1).EQ.0.)GO TO 425                                     0779
  313.       IF(J.EQ.I)GO TO 425                                               0780
  314.       IF(RANGE(TORPS(I,1),TORPS(J,1),TORPS(I,2),TORPS(J,2)).GT.RADTT    0781
  315.      1   )GO TO 425                                                     0782
  316.       IF(RAN(IZZ).GT.PCTCOL)GO TO 425                                   0783
  317.       IF(TORPS(I,4).LT.0..AND.TORPS(J,4).LT.0.)GO TO 425                0784
  318.       WRITE(6,7)LETR(7),LETR(7)                                         0785
  319. 7     FORMAT(1X,A1,'-',A1,' COLLISION')                                 0786
  320.       CALL DLETE(7,I)                                                   0787
  321.       CALL DLETE(7,J)                                                   0788
  322. 425   CONTINUE                                                          0789
  323. 420   CONTINUE                                                          0790
  324. C     ...T WITH HOLE.                                                   0791
  325.       IF(NTORPS.EQ.0)GO TO 440                                          0792
  326.       IF(IHOLE.EQ.0)GO TO 440                                           0793
  327.       DO 430 I=1,NTORPS                                                 0794
  328.       IF(TORPS(I,1).EQ.0.)GO TO 430                                     0795
  329.       IF(RANGE(TORPS(I,1),FLOAT(IHOLE),TORPS(I,2),FLOAT(JHOLE)).GT.HOLRA0796
  330.      1D)GO TO 430                                                       0797
  331.       CALL DLETE(7,I)                                                   0798
  332. 430   CONTINUE                                                          0799
  333. C     ...G WITH *.                                                      0800
  334. 440   IF(IGH.EQ.0)GO TO 999                                             0801
  335.       IF(NSTARS.EQ.0)GO TO 460                                          0802
  336.       DO 450 I=1,NSTARS                                                 0803
  337.       IF(STARS(I,1).EQ.0.)GO TO 450                                     0804
  338.       IF(RANGE(STARS(I,1),GHOST(1),STARS(I,2),GHOST(2)).GT.RAD(I))      0805
  339.      1GO TO 450                                                         0806
  340.       WRITE(6,1)LETR(5),LETR(1),I                                       0807
  341.       IF(RAN(IZZ).GT.SNOVAP)GO TO 445                                   0808
  342.       NS=I                                                              0809
  343.       GO TO 1101                                                        0810
  344. 445   CALL DLETE(1,I)                                                   0811
  345.       CALL DLETE(5,1)                                                   0812
  346.       GO TO 999                                                         0813
  347. 450   CONTINUE                                                          0814
  348. C     ...G WITH R.                                                      0815
  349. 460   IF(NROM.EQ.0)GO TO 480                                            0816
  350.       DO 470    I=1,NROM                                                0817
  351.       IF(XROM(I,1).EQ.0.)GO TO 470                                      0818
  352.       IF(RANGE(XROM(I,1),GHOST(1),XROM(I,2),GHOST(2)).GT.RADGR)      GO 0819
  353.      1TO 470                                                            0820
  354.       WRITE(6,1)LETR(5),LETR(4),I                                       0821
  355.       CALL DLETE(4,I)                                                   0822
  356.       CALL DLETE(5,1)                                                   0823
  357.       GO TO 999                                                         0824
  358. 470   CONTINUE                                                          0825
  359. C     ...G WITH B.                                                      0826
  360. 480   IF(IBASE.EQ.0)GO TO 490                                           0827
  361.       IF(RANGE(GHOST(1),BASE(1),GHOST(2),BASE(2)).GT.RADGB)      GO TO 90828
  362.      199                                                                0829
  363.       WRITE(6,7)LETR(5),LETR(6)                                         0830
  364.       CALL DLETE(6,1)                                                   0831
  365.       CALL DLETE(5,1)                                                   0832
  366.       IF(IDOCK.EQ.2)IDOCK=0                                             0833
  367. C     ...G WITH HOLE.                                                   0834
  368. 490   IF(IHOLE.EQ.0)GO TO 999                                           0835
  369.       IF(RANGE(GHOST(1),FLOAT(IHOLE),GHOST(2),FLOAT(JHOLE)).GT.HOLRAD)GO0836
  370.      1 TO 999                                                           0837
  371.       CALL DLETE(5,1)                                                   0838
  372. 999   RETURN                                                            0839
  373.       END                                                               0840
  374.