
      SUBROUTINE BHOLE                                                  0222
C     ...GRAVITATIONAL EFFECTS OF BLACK HOLES. HGRAV                    0223
C     ...IS GRAVITATIONAL CONSTANT. ONLY E,K,G,T ARE EFFECTED.          0224

c	include 'tcommon.for'
	%include tcommon.for

      DATA HGRAV/.6/                                                    0244
      X=IHOLE                                                           0245
      Y=JHOLE                                                           0246
      IF(IDOCK.EQ.2)GO TO 50                                            0247
      CALL GETBRG(DELTA,XQE,X,YQE,Y,VPX,VPY)                            0248
      D=VPX*VPX+VPY*VPY                                                 0249
      DX=COSD(DELTA)*HGRAV/D                                            0250
      DY=SIND(DELTA)*HGRAV/D                                            0251
      XQE=XQE+DX                                                        0252
      YQE=YQE+DY                                                        0253
      DX=DX+COSD(PDEG)*PSP                                              0254
      DY=DY+SIND(PDEG)*PSP                                              0255
      PRSPD=PSP                                                         0256
      PRDEG=PDEG                                                        0257
      PSP=SQRT(DX*DX+DY*DY)                                             0258
      CALL GETBRG(PDEG,0.,DX,0.,DY,VPX,VPY)                             0259
      IF(DSP.EQ.PRSPD)DSP=PSP                                           0260
      IF(DDEG.EQ.PRDEG)DDEG=PDEG                                        0261
50    IF(IGH.EQ.0)GO TO 100                                             0262
      CALL GETBRG(DELTA,GHOST(1),X,GHOST(2),Y,VPX,VPY)                  0263
      D=VPX*VPX+VPY*VPY                                                 0264
      DX=COSD(DELTA)*HGRAV/D                                            0265
      DY=SIND(DELTA)*HGRAV/D                                            0266
      GHOST(1)=GHOST(1)+DX                                              0267
      GHOST(2)=GHOST(2)+DY                                              0268
      DX=DX+COSD(GHOST(5))*GHOST(4)                                     0269
      DY=DY+SIND(GHOST(5))*GHOST(4)                                     0270
      PRSPD=GHOST(4)                                                    0271
      PRDEG=GHOST(5)                                                    0272
      GHOST(4)=SQRT(DX*DX+DY*DY)                                        0273
      CALL GETBRG(GHOST(5),0.,DX,0.,DY,VPX,VPY)                         0274
      IF(GHOST(6).EQ.PRSPD)GHOST(6)=GHOST(4)                            0275
      IF(GHOST(7).EQ.PRDEG)GHOST(7)=GHOST(5)                            0276
100   IF(KLNGNS.EQ.0)GO TO 200                                          0277
      DO 150 J=1,KLNGNS                                                 0278
      IF(XKL(J,1).EQ.0.)GO TO 150                                       0279
      CALL GETBRG(DELTA,XKL(J,1),X,XKL(J,2),Y,VPX,VPY)                  0280
      D=VPX*VPX+VPY*VPY                                                 0281
      DX=COSD(DELTA)*HGRAV/D                                            0282
      DY=SIND(DELTA)*HGRAV/D                                            0283
      XKL(J,1)=XKL(J,1)+DX                                              0284
      XKL(J,2)=XKL(J,2)+DY                                              0285
      DX=DX+COSD(XKL(J,4))*XKL(J,3)                                     0286
      DY=DY+SIND(XKL(J,4))*XKL(J,3)                                     0287
      PRSPD=XKL(J,3)                                                    0288
      PRDEG=XKL(J,4)                                                    0289
      XKL(J,3)=SQRT(DX*DX+DY*DY)                                        0290
      CALL GETBRG(XKL(J,4),0.,DX,0.,DY,VPX,VPY)                         0291
      IF(XKL(J,5).EQ.PRSPD)XKL(J,5)=XKL(J,3)                            0292
      IF(XKL(J,6).EQ.PRDEG)XKL(J,6)=XKL(J,4)                            0293
150   CONTINUE                                                          0294
200   IF(NTORPS.EQ.0)GO TO 999                                          0295
      DO 250 J=1,NTORPS                                                 0296
      IF(TORPS(J,1).EQ.0.)GO TO 250                                     0297
      ZPLUS=0.                                                          0298
      IF(TORPS(J,4).LT.0.)ZPLUS=-360.                                   0299
      IF(TORPS(J,4).GE.360.)ZPLUS=360.                                  0300
      CALL GETBRG(DELTA,TORPS(J,1),X,TORPS(J,2),Y,VPX,VPY)              0301
      D=VPX*VPX+VPY*VPY                                                 0302
      DX=COSD(DELTA)*HGRAV/D                                            0303
      DY=SIND(DELTA)*HGRAV/D                                            0304
      TORPS(J,1)=TORPS(J,1)+DX                                          0305
      TORPS(J,2)=TORPS(J,2)+DY                                          0306
      DX=DX+COSD(TORPS(J,4))*TORPS(J,3)                                 0307
      DY=DY+SIND(TORPS(J,4))*TORPS(J,3)                                 0308
      TORPS(J,3)=SQRT(DX*DX+DY*DY)                                      0309
      CALL GETBRG(TORPS(J,4),0.,DX,0.,DY,VPX,VPY)                       0310
      IF(TORPS(J,4).LT.ZPLUS)TORPS(J,4)=TORPS(J,4)+360.                 0311
      IF(TORPS(J,4).GE.ZPLUS+360.)TORPS(J,4)=TORPS(J,4)-360.            0312
250   CONTINUE                                                          0313
999   RETURN                                                            0314
      END                                                               0315
     IF(JJSTAT.EQ.0)GO TO 1000                                         0203
      WRITE(6,3)                  