      SUBROUTINE LRGTICK(VV1,VV2,WW1,WW2,VLOW,VHIGH,
     C                   SPAN,FORM,TLEN,LAB,ISCALE)
      CHARACTER*1 TCHAR
      CHARACTER*5 EXPONENT
      CHARACTER*10 FORM,NCHAR
      REAL*4 NUMH
C
C DRAW LARGE TICK MARKS AND LABEL
C
      IF (VV1.LT.0) THEN
       VV1 = ABS(VV1)
       IAX = 2
      ELSE 
       IAX = 1
      END IF
      DIFF = VHIGH - VLOW
      ISTOP = NINT(DIFF/SPAN) + 1
      V0 = VV1 - TLEN/2.
      V1 = VV1 + TLEN
      V2 = VV2 - TLEN
      VAL = VLOW
      DO I=1,ISTOP 
       VLIN = WW1 + (WW2-WW1)*(VAL-VLOW)/DIFF
       ERR = (VLIN-WW2)/(WW2-WW1)
       IF (ERR.GT.0.0001) GOTO 100
       IF (IAX.EQ.1) THEN
C
C DRAW INDEPENDENT AXIS LARGE TICKS
C
        CALL MGOLINE(VLIN,VV1,VLIN,V1)
        CALL MGOLINE(VLIN,VV2,VLIN,V2)
       ELSE IF (IAX.EQ.2) THEN
C
C DRAW DEPENDENT AXIS LARGE TICKS
C
        CALL MGOLINE(VV1,VLIN,V1,VLIN)
        CALL MGOLINE(VV2,VLIN,V2,VLIN)
       END IF
C
       IF ( LAB.EQ.4 ) GOTO 60
C
C LINEAR SCALING
C
       IF (ISCALE.EQ.0) THEN
        TCHAR = FORM(1:1)
        IF (TCHAR.EQ.'I') THEN
         WRITE(NCHAR,'('//FORM//')') INT(VAL)
        ELSE
         WRITE(NCHAR,'('//FORM//')') VAL
        END IF
       END IF
C
C LOGARITHMIC SCALING
C
       IF (ISCALE.EQ.1) THEN
        WRITE(EXPONENT,'(I5)') INT(VAL)
        WRITE(NCHAR,'(A10)') '10\\U'//EXPONENT
       END IF
C
C SHIFT LEFT CHARACTER STRING
C
       NUM = 0
       DO 55 ILET=1,10
        TCHAR = NCHAR(ILET:ILET)
        LVAL = ICHAR(TCHAR)
        IF ( LVAL.LT.32 .OR. LVAL.EQ.127 ) GOTO 55
        IF ( LVAL.NE.32 ) THEN
         NUM = NUM + 1
         NCHAR(NUM:NUM) = TCHAR
         IF (NUM.NE.ILET) NCHAR(ILET:ILET) = CHAR(32)
        END IF
   55  CONTINUE
C
       IF ( LAB.EQ.1.AND.I.EQ.1 ) GOTO 60
       IF ( LAB.EQ.2.AND.I.EQ.ISTOP ) GOTO 60
       IF ( LAB.EQ.3.AND.(I.EQ.1.OR.I.EQ.ISTOP) ) GOTO 60
       IF (IAX.EQ.1) THEN
C        TYPE*,'X LABEL *'//NCHAR//'*'
        CALL MGOGRELOCATE(VLIN,V0)
        CALL MGOPUTLABEL(NUM,NCHAR,2)
       END IF
       IF (IAX.EQ.2) THEN
C        TYPE*,'Y LABEL *'//NCHAR//'*'
        CALL MGOGRELOCATE(V0,VLIN)
        CALL MGOPUTLABEL(NUM,NCHAR,4)
       END IF
   60  VAL = VAL + SPAN
      END DO
  100 CONTINUE
      RETURN 
      END
