	SUBROUTINE OMOVE(ID)
C	ROUTINE TO MOVE CRAWLERS AROUND OUTSIDE THE CUBE
C	ID IS CRAWLER ID
C----------------------standard common block----------------------------
C 
	COMMON ICR(8,12),IPARM(10),IS1,IS2,NT,ICU(10,10,10,2),CLEAR(8)
	COMMON MARKER(4,3,3)
	LOGICAL*1 ICU,CLEAR
C 
C-----------------------------------------------------------------------
	LOGICAL*1 A
	LUN=ICR(ID,8)
1	IX=0
	IY=0
	IZ=0
	IF(ICR(ID,2).EQ.1) IX=1
	IF(ICR(ID,2).EQ.2) IY=1
	IF(ICR(ID,2).EQ.3) IX=-1
	IF(ICR(ID,2).EQ.4) IY=-1
	IF(ICR(ID,2).EQ.5) IZ=1
	IF(ICR(ID,2).EQ.6) IZ=-1
	I=ICR(ID,10)
	J=ICR(ID,11)
	K=ICR(ID,12)
	I1=I+IX
	J1=J+IY
	K1=K+IZ
	IF(I1.LT.1.OR.I1.GT.10) GOTO 20
	IF(J1.LT.1.OR.J1.GT.10) GOTO 20
	IF(K1.LT.1.OR.K1.GT.10) GOTO 20
	WRITE(LUN,5)
5	FORMAT(' .....rrrrummbbble........rrummmmble..')
	IF((I1.LT.10.AND.I1.GT.1).AND.(J1.LT.10.AND.J1.GT.1).AND.(K1.LT.
     C10.AND.K1.GT.1)) GOTO 10  ! INSIDE CUBE AGAIN
	ICR(ID,10)=I1
	ICR(ID,11)=J1
	ICR(ID,12)=K1
	IF(RAN(IS1,IS2).GT..018) GOTO 50
C 
C	HIGH ENERGY PANEL:
	IG=RAN(IS1,IS2)*15+5
	ICR(ID,9)=ICR(ID,9)+IG
	IE=ICR(ID,9)
	WRITE(LUN,6) IG,IE
6	FORMAT(' <<<<<<<ENERGY ABSORBED FROM HIGH-ENERGY PANEL>>>>>>>'/
     (' <<<<<<<',I2,' units absorbed -- energy level: ',I3,'>>>>>>>')
	IF(IE.LE.30) GOTO 50
	IF(IE.LE.38) WRITE(LUN,7)
7	FORMAT('0:::: DANGER :::: :::: DANGER :::: :::: DANGER ::::'//
     C' energy overload present -- maximum load possible 38 units')
	IF(IE.LE.38) GOTO 50
	WRITE(LUN,8) ID
8	FORMAT('0..........ffizzzle....>>crrackk<<...hsssss....'//
     C' crawler',I2,', you`ve blown your energy storage battery')
	ICR(ID,9)=0
	X=2.
	CALL DELAY(X,LUN,A)
	GOTO 50   ! RETURN
C 
C	CRAWLER HAS REENTERED CUBE:
10	ICR(ID,1)=1
	WRITE(LUN,11) ID
11	FORMAT(' crawler',I2,', you are once again inside the cube.')
	ICU(ICR(ID,10),ICR(ID,11),ICR(ID,12),1)=ID+58  ! CRAWLER ON DOOR
	GOTO 50
C 
20	ICR(ID,9)=ICR(ID,9)+2
	CALL ROTATE('D',ID)
	WRITE(LUN,5)
50	RETURN
	END
