   SUBROUTINE MOVE(OBJECT,WHERE)
      USE ALLCOM

!     PLACE OBJECT BY PICKING IT UP AND DROPPING IT.  MAY ALREADY BE TOTING, IN WHICH CASE THE CARRY IS A NO-OP.
!     MUSTN'T PICK UP OBJECTS WHICH ARE NOT AT ANY LOC, SINCE CARRY WANTS TO REMOVE OBJECTS FROM ATLOC CHAINS.

      INTEGER OBJECT,WHERE,FROM
      LOGICAL ENCLSD

      IF (OBJECT.GT.MAXOBJ) THEN
         FROM=FIXED(OBJECT-MAXOBJ)
      ELSE
         IF (ENCLSD(OBJECT)) CALL REMOVE(OBJECT)
         FROM=PLACE(OBJECT)
      ENDIF
      IF (FROM.GT.0.AND.FROM.LE.MAXOBJ*2) CALL CARRY(OBJECT,FROM)
      CALL DROP(OBJECT,WHERE)
      END