    	SUBROUTINE LAYOUT_MOVE( XADD, YADD )
C
C  PROGRAMMER: R.S. ZHOU		JUNE-1986
C
C	THIS ROUTINE MOVES PICKED LAYOUT SEGMENTS
C	BY "XADD" AND "YADD" INCHES.
C
    	INCLUDE 'LAYOUT.CBS'
     	LOGICAL SKIP

     	IF( XADD.EQ.0.0 .AND. YADD.EQ.0.0 ) RETURN

     	XAD = XADD
     	YAD = YADD
    	DO  222 I = 1, NLG
    	    IS = NLS(I)
     	    SKIP = .FALSE.
     	    DO  111 J=1, NLC
     		IF( NSN(J).NE.IS ) GOTO 111
     		XPS = P00(1,J) + XAD
     		YPS = P00(2,J) + YAD
     		P00(1,J) = XPS
     		P00(2,J) = YPS
     		IF( .NOT.SKIP ) CALL IFSEG_MOVE(IS,XPS,YPS)
     		IF( NFL(J).EQ.0 ) GOTO 222
     		SKIP = .TRUE.
111	    CONTINUE
222	CONTINUE

     	CALL IFINIT_DUMP

    	RETURN
    	END

    	SUBROUTINE LAYOUT_MOVE_WHERE( IP, XAD, YAD )
C
C  THIS ROUTINE ASSIGNS DIFFERENT INCREMENTAL DISPLACEMENT "XAD,YAD"
C  ACCORDING TO "IP" FOR LAYOUT PLOTTING
C
    	SAVE IOPL

    	IOP = IP
    	XAD = 0.0
    	YAD = 0.0
    	IF( IOP.EQ.1 ) THEN
    	    XAD = -0.02
    	    YAD = -0.02
    	ELSE IF( IOP.EQ.2 ) THEN
     	    YAD =-0.02
     	ELSE IF( IOP.EQ.3 ) THEN
    	    XAD =  0.02
    	    YAD = -0.02
    	ELSE IF( IOP.EQ.4 ) THEN
     	    XAD =-0.02
     	ELSE IF( IOP.EQ.5 ) THEN
    	    IF(IOPL.NE.10) THEN
    	    	IOPL = 10
    	    ELSE
    	    	IOPL = 1
    	    ENDIF
    	ELSE IF( IOP.EQ.6 ) THEN
     	    XAD = 0.02
     	ELSE IF( IOP.EQ.7 ) THEN
    	    XAD = -0.02
    	    YAD =  0.02
    	ELSE IF( IOP.EQ.8 ) THEN
     	    YAD = 0.02
     	ELSE IF( IOP.EQ.9 ) THEN
    	    XAD = 0.02
    	    YAD = 0.02
    	ELSE IF( IOP.EQ.0 ) THEN
    	    IF(IOPL.NE.25) THEN
     		IOPL = 25
    	    ELSE
     		IOPL = 10
    	    ENDIF
    	ENDIF
    	IF( IOPL.EQ.0 ) IOPL = 1
    	XAD = XAD * IOPL
    	YAD = YAD * IOPL

    	RETURN
    	END

