	SUBROUTINE SYMBOL(ISYMNO,SYMSIZ)
C
C	THIS SUBROUTINE PLACES THE DESIRED SYMBOL ("ISYMNO") AT THE
C	CURRENT LOCATION WITH A SIZE OF "SYMSIZ".   IF "ISYMNO" IS
C	NEGATIVE, THE SYMBOL IS FILLED RATHER THAN OPEN.
C
	COMMON /GCVPOS/ XVPOS, YVPOS
	LOGICAL*1 LINILT, LPOSND
	COMMON /GCLTYP/ ILNTYP, DLEFT, DIST(4,3), LINILT, LPOSND
C
	DIMENSION SYMMOV(30), ISYMST(5), X(4), Y(4), TX(4), TY(4)
C
	DATA SYMMOV /
	1   0.0,0.666667,  -0.5,-0.333333,  0.5,-0.333333,
	2   -0.5,0.5,  -0.5,-0.5,  0.5,-0.5,  0.5,0.5,
	3   0.0,0.5,  -0.4,0.0,  0.0,-0.5,  0.4,0.0,
	4   -0.4,0.5,  0.4,0.5,  -0.4,-0.5,  0.4,-0.5/
	DATA ISYMST /1,7,15,23,31/
	DATA NSYM /4/
C
C	SAVE OLD LINE TYPE, USE SOLID LINES
C
	IOLD = ILNTYP
	ILNTYP = 1
C
C	SAVE CURRENT LOCATION
C
	X0 = XVPOS
	Y0 = YVPOS
C
C	COMPUTE POLYGON SCALED AND TRANSLATED
C
	ISYM = IABS(ISYMNO)
	IF (ISYM .LE. 0 .OR. ISYM .GT. NSYM) RETURN
	IPTR = ISYMST(ISYM)
	I = 0
100		CONTINUE
		I = I + 1
		X(I) = X0+SYMSIZ*SYMMOV(IPTR)
		Y(I) = Y0+SYMSIZ*SYMMOV(IPTR+1)
		IPTR = IPTR + 2
		IF (IPTR .LT. ISYMST(ISYM+1)) GO TO 100
	IF (ISYMNO .LT. 0) GOTO 150
		CALL GSPOLY(X,Y,I)
		GO TO 200
150	    CONTINUE
		CALL GSFILL(X,Y,I,TX,TY)
200	CONTINUE
	CALL GSMOVE(X0,Y0)
C
C	RESTORE ORIGINAL LINE TYPE
C
	ILNTYP = IOLD
	RETURN
	END
