C***   CARRY

       SUBROUTINE CARRY(OBJECT,WHERE)

C  START TOTING AN OBJECT, REMOVING IT FROM THE LIST OF THINGS AT ITS FORMER
C  LOCATION.  IF OBJECT>MAXOBJ (MOVING "FIXED" SECOND LOC),
C  DON'T CHANGE PLACE.

       IMPLICIT INTEGER(A-Z)
       COMMON /PLACOM/ ATLOC(250),LINK(300),PLACE(150),
     1          FIXED(150),MAXOBJ

       IF(OBJECT.GT.MAXOBJ)GOTO 5
       IF(PLACE(OBJECT).EQ.-1)RETURN
       PLACE(OBJECT)=-1
5       IF(ATLOC(WHERE).NE.OBJECT)GOTO 6
       ATLOC(WHERE)=LINK(OBJECT)
       RETURN

6       TEMP=ATLOC(WHERE)
7       IF(LINK(TEMP).EQ.OBJECT)GOTO 8
       TEMP=LINK(TEMP)
       IF(TEMP.NE.0)GOTO 7
       CALL BUG(35)

8       LINK(TEMP)=LINK(OBJECT)
       RETURN
       END
