*-----------------------------------------------------------------------
      SUBROUTINE SGPMXU(N,UPX,UPY,ITYPE,INDEX,ICOLOR,RSIZE)

      REAL      UPX(*),UPY(*)
      LOGICAL   LFCATR

      CALL SWQFCC(LFCATR)
      IF(.NOT.LFCATR) THEN
        CALL MSGDMP('M','SGPMXU','FULL COLOR MODE IS NOT SUPPORTED.')
      END IF

      IF (N.LT.1) THEN
        CALL MSGDMP('E','SGPMXU','NUMBER OF POINTS IS LESS THAN 1.')
      END IF
      IF (ITYPE.EQ.0) THEN
        CALL MSGDMP('M','SGPMXU','MARKER TYPE IS 0 / DO NOTHING.')
        RETURN
      END IF
      IF (INDEX.EQ.0) THEN
        CALL MSGDMP('M','SGPMXU','POLYMARKER INDEX IS 0 / DO NOTHING.')
        RETURN
      END IF
      IF (INDEX.LT.0) THEN
        CALL MSGDMP('E','SGPMXU','POLYMARKER INDEX IS LESS THAN 0.')
      END IF
      IF (RSIZE.EQ.0) THEN
        CALL MSGDMP('M','SGPMXU','MARKER SIZE IS 0 / DO NOTHING.')
        RETURN
      END IF
      IF (RSIZE.LT.0) THEN
        CALL MSGDMP('E','SGPMXU','MARKER SIZE IS LESS THAN ZERO.')
      END IF

      CALL SWSFCM(.TRUE.)
      CALL SWSLCL(ICOLOR)

      CALL SZPMOP(ITYPE,INDEX,RSIZE)
      CALL SZPMZU(N,UPX,UPY)
      CALL SZPMCL

      CALL SWSFCM(.FALSE.)

      END
