SUBROUTINE HITIME(XIND,U,NMODE,MVAR,NPTMAX,STM)
      character*8 nammod,un,namind
      character*36 title
      DIMENSION NAMMOD(8)
      COMMON/SPEC/SBLK(250)
      COMMON/REFTIE/RFYR,RFDY
      COMMON/ANLTRA/JL(4,2),JU(4,2),ITH(2),JE1L,JE1U,JE2L,JE2U,RBT,RMT
      DIMENSION NSPAC(6)
      LOGICAL QUAL
      DIMENSION NPT(8)
      LOGICAL START(8)
      REAL*8 SEC,SECS(8),TBEG,TEND,TINT,XINDVR
      REAL*8 TBEGTI,TENDTI,TSECC
      DIMENSION RJTB(6),TBTIME(6),TETIME(6)
      DIMENSION TB(6),TE(6),ITBS(6,8)
      REAL ANS(150),TEMP(3)
      INTEGER*2 JTB(6),JDATA(512),JNE,JTLMOD,JCLK
C
      DIMENSION XIND(NPTMAX,NMODE),U(NPTMAX,MVAR),STM(NPTMAX)
      DIMENSION UPRT(20)
      DIMENSION UN(20),ICATEG(20),LOCAT(20),UL(20),UU(20),YHU(22),NIU(20
     *),NLIU(20),NLOGU(20),NSYM(20),NPEN(20),HGT(20),NAVE(20),AVE(20),
     * AMIN(20),AMAX(20),SCA(20),DDT(20)
      CHARACTER*256 INPLS, INDATA, ARG
      DATA INPLS/' '/
      DATA LSTAT/999999999/
      DATA SPAC/0.12/,  SHGH/-0.44/, SXSPAC/0.6/, NSPAC/5,4,3,3,3,4/
      DATA  START/8*.TRUE./,NPT/8*0/,LINE/0/,IL/0/
      DATA SECS/8*0.D0/
      DATA JMTRAJ/1/,NUMPLT/1/
      DATA PLTSET/999999999/,PRESET/999999999/
      DATA NAMMOD/'   L','   M','  E1','  E2',
     *           '  LS','    ',' E1S',' E2S'/
      DATA HGTMAX/9.25/
      DATA ITBS/48*0/,  IEOF/0/
      DATA ANS(5)/0.707107/,ANS(6)/0.707107/,ANS(7)/0.0/,ANS(8)/1.0/
C
C
C   PLOT VOYAGER PLASMA DATA AND/OR TRAJECTORY INFORMATION
C   DATA & TRAJECTORY CAN BE PLOTTED VERSUS TIME OR TRAJECTORY PARAMETER
C
C   JOHN BELCHER    DEC 28,1978       MODIFIED VERSION JAN 1984
c   
c   modified for SUN   2/17/86   R. Selesnick
C
C   PARSE INPUT ARGUMENTS
C
      call initio (1,4,ii)
      call initio (1,7,ii)
      i = 0
501   i = i + 1
      if (i.gt.iargc(0)) goto 508
      call getarg(i,arg)
      if (arg.ne."-f".and.arg.ne."-d") goto 505
      i = i + 1
      if (i.gt.iargc(0)) goto 506
      if (arg.eq."-f") call getarg(i,inpls)
      if (arg.eq."-d") call getarg(i,indata)
      goto 501
c
505   write (0,"('hitime: bad flag: ',a20)") arg
      stop 1
c
506   write (0,"('hitime: missing value: ',a20)") arg
      stop 1
c
508   continue
	ierr = 0
c      call setedr(inpls,ierr)
      if (ierr.eq.0) goto 509
      write (0,"('hitime: open error ',i2,': ',a20)") ierr, inpls
      stop 1
c
509   continue
C
C   INITIALIZE
      DO 21 N=1,NPTMAX
      DO 22 I=1,MVAR
  22  U(N,I)=PLTSET
      DO 23 J=1,NMODE
  23  XIND(N,J)=PLTSET
  21  CONTINUE
C   RUN PARAMETERS
C
C   NRUN IS NUMBER OF SEPARATE RUNS
C   NVAR IS # OF VARIABLES TO BE PLOTTED
C   IPRT .EQ. 0 NO PRINT OF DEPENDENT VARIABLES
C        .NE. 0 PRINT DEPENDENT VARIABLES ON UNIT IPRT
C   IPLTS .EQ. 0 NO PLOTS
C   IFORM FORMAT FOR OUTPUT OF PRINTED DEPENDENT VARIABLES
C         .EQ.0, OUTPUT IN EXPONENTIAL FORMAT
C         .EQ.I, OUTPUT IN F10.I FORMAT (I.GT.0.AND.I.LE.4)
C   IANALY .EQ. 0 NO NEW ANALYSIS, .NE.0 DATANL CALLED FOR NEW ANALYSIS
C   MAXLIN LIMIT ON # DATA LINES PRINTED
C   NUMVOY VOYAGER S/C NUMBER (PRINT ID ONLY, NOT USED AS DISCRIMINATOR)
C   ITRATK .NE. 0 TICK MARKS ON TRAJ PLOTS EVERY ITRATK SECONDS
C           (USE ONLY IN TRAJECTORY PLOTING WITH DATTIM)
C   TITLE IS TOP PLOT TITLE
C
 9000 READ(4, 5,END=8000)  NRUN,NVAR,IPRT,IPLTS,IFORM,IANALY,MAXLIN
     *,NUMVOY,ITRATK
      TRATK=ITRATK
      IF(NVAR.GT.MVAR) WRITE(6,590)
 590  FORMAT(1H ,'NVAR EXCEEDS MVAR, HITIME RUN CANCELED')
      IF(NVAR.GT.MVAR) RETURN
   5  FORMAT(16I5)
      IF (IPRT.NE.0)
     * WRITE(6,10) NRUN,NVAR,IPRT,IPLTS,IFORM,IANALY,MAXLIN,NUMVOY,ITRATK
  10  FORMAT(1H1,'RUN PARAMETERS'/
     *          ' NRUN =  ',I5/' NVAR =  ',I5/' IPRT =  ',I5/
     *  ' IPLTS = ',I5/' IFORM = ',I5/' IANALY= ',I5/' MAXLIN= ',I5/
     *,' NUMVOY= ',I5/' ITRATK= ',I5/)
      READ(4,11) TITLE
  11  FORMAT(20A4)
      IF (IPRT.NE.0) WRITE(6,12) TITLE
  12  FORMAT(1H0,'TITLE PLOT IS',10X,20A4)
C
C   INDEPENDENT VARIABLE PARAMETERS
C
C   NAMIND  NAME OF IND VARIABLE
C   IND KEY TO INDEPENDENT VARIABLE
C       1   TIME  (HOURS)
C       .NE.1  USER SUPPLIED IN SPEIND
C   RANGE  RANGE OF IND VARIABLE PER PLOT
C   RGEMOD   MODULUS OF INDEPENDENT VARIABLE PLOTTED
C   INCREA   1 IF IND VARIABLE INCREASES WITH TIME
C           -1 IF IND VARIABLE DECREASES WITH TIME
C   NIX  # OF INTERVALS IND VARIABLE AXIS
C   NLIX  # OF LABELED INTERVALS  IND VARIABLE AXIS
C   DT IS TIME SEPARATION BETWEEN DATA MEASUREMENTS  (SECONDS)
C   DTI IS HORIZONTAL LENGTH OF PLOT, INCHES
C   HEIGHT IS MAXIMUM HEIGHT OF STACKED PLOT, INCHES
C      (IF HEIGHT IS 0., DEFAULT VALUE IS 9.25 INCHES)
C
      READ(4,20) NAMIND,IND,RANGE,RGEMOD,INCREA,NIX,NLIX,DT,DTI,
     *   HEIGHT
      IF(HEIGHT.NE.0.) HGTMAX=HEIGHT
  20  FORMAT(A8,2X,I5,2F5.0,3I5,3F5.0)
      IF (IPRT.NE.0) WRITE(6,25) NAMIND,IND,RANGE,RGEMOD,INCREA,NIX,
     * NLIX,DT,DTI,HGTMAX
  25  FORMAT(1H0,'INDEPENDENT VARIABLE PARAMETERS'/
     *' NAMIND=',1X,A8/' IND   =',I3/' RANGE =',F10.2/' RGEMOD=',F10.2/
     * ' INCREA=',I3/' NIX   =',I3/' NLIX  =',I3/' DT    =',F10.2/' DTI
     *  =',F10.2/' HGTMAX=',F10.2/)
c   input dt's for seven new modes
       read(4,9812) (ddt(i),i=1,8)
9812   format(8f5.0)
C   DEPENDENT VARIABLES
C
C   UN NAME OF VARIABLE
C   ICATEG  SOURCE
C       1   L MODE
C       2   M MODE
C       3   E1
C       4   E2
C       5   L SHORT
C       6   UNDEFINED
C       7   E1 SHORT
C       8   E2 SHORT
C       9   SPECIAL BLOCK (TRAJECTORY INFORMATION FROM SPEIND)
C   LOCAT  LOCATION IN ANS MATRIX (DATA) OR COMMON BLOCK SPEC (TRAJ)
C   UL  LOWER LIM PLOT
C   UU  UPPER LIMIT PLOT
C   YHU  HEIGHT
C   NIU  # INTERVALS FOR TICK MARKS
C   NLIU # LABELED INTERVALS
C   NLOGU  LOG DECADE (0-LINEAR, N-LOG WITH N DECADES)
C   NSYM   SYMBOL FOR DISCRETE OR ISOLATED POINTS
C   NPEN   PEN NUMBER
C   HGT    HEIGHT OF SYMBOL
C   NAVE   AVERAGE PARAMETER (.EQ.0, NO AVERAGING)
C
      IF (IPRT.NE.0) WRITE(6,30)
  30  FORMAT(1H0,'DEPENDENT VARIABLES'/
     * 'NAME ','     ',' CAT',' LOC','     UL','     UU'
     *,'    YHU',' NI',' NLI',' LOG',' SYM',' PEN',' HGT ',
     *'AV')
      DO 35 N=1,NVAR
      READ(4,40) UN(N),ICATEG(N),LOCAT(N),UL(N),UU(N),YHU(N),
     * NIU(N),NLIU(N),NLOGU(N),NSYM(N),NPEN(N),HGT(N),NAVE(N)
  40  FORMAT(A8,2x,2I5,3F5.0,5I5,F5.0,I5)
      IF (IPRT.NE.0) WRITE(6,45) UN(N),ICATEG(N),LOCAT(N),
     * UL(N),UU(N),YHU(N),NIU(N),NLIU(N),NLOGU(N),NSYM(N),NPEN(N),
     * HGT(N),NAVE(N)
  45  FORMAT(1X, A8,2x,I4,I4,2F7.2,F7.2,I3,4I4,F5.2,I2)
  35  CONTINUE
C   SET TRAJECTORY TIME KEY TO FIRST DATA MODE PRESENT
C   DEFAULT TO L MODE TIME IF NO DATA PRESENT
      DO 36 N=1,NVAR
      IF(ICATEG(N).GT.8) GO TO 36
      JMTRAJ=ICATEG(N)
      GO TO 38
  36  CONTINUE
  38  CONTINUE
C
C    Begin RUNS
C
      DO 50 M=1,NRUN
      READ(4,55) TB,TE
  55  FORMAT(12F5.0)
      IF (IPRT.NE.0) WRITE(6,60) TB,TE
  60  FORMAT(1H0,'BEGIN IND ARRAY ',6F6.1/
     *          '   END IND ARRAY ',6F6.1)
C
C   PROVIDE REFERENCE TIME FOR TIE
C
      RFYR=1977.
      RFDY=1.
      IF(IND.EQ.1) RFYR=TB(1)
      IF(IND.EQ.1) RFDY=TB(2)
C
C   TB AND TE ARE BEGINNING AND END ARRAYS FOR INDEPENDENT VARIABLE
C   CONVERT ARRAYS TO APPROPRIATE SCALARS
C
      CALL TIE(TB,IND,TBEG)
      CALL TIE(TE,IND,TEND)
      IF(INCREA.GT.0) TINT=TBEG+RANGE*1.D0
      IF(INCREA.LE.0) TINT=TEND-RANGE*1.D0
C
C   FIRST PLOT HAS X RUNNING BETWEEN TBEG AND TINT IF INCREA GT 0
C   FIRST PLOT HAS X RUNNING BETWEEN TINT AND TEND IF INCREA LT 0
C   ****NOTE THAT TB IS ALGEBRAICALLY LT TE EVEN IF INCREA IS LT 0****
C
C   READ IN TIME LIMITS
C   TBTIME AND TETIME ARE BEGGINING AND END ARRAYS FOR TIME
C   *****IF TBTIME IS 0., WE IGNORE THESE LIMITS*****
C
      READ(4,55) TBTIME,TETIME
      IF(TBTIME(1).EQ.0.) GO TO 62
      CALL TIE(TBTIME,1,TBEGTI)
      CALL TIE(TETIME,1,TENDTI)
  62  IF (IPRT.NE.0) WRITE(6,61) TBTIME,TETIME
  61  FORMAT(1H0,'     BEGIN TIME ',6F6.1/
     *          '        END TIME ',6F6.1/)
C
   1  CALL DATTIM(ANS,JTB,JDATA,JNE,LSTAT,JTLMOD,JCLK,TEMP,IEOD,IL,ITYPE
     *)
      IF(IEOD .NE.0) GO TO 4000
C
C   IGNORE THIS DATA RECORD IF NOT WITHIN SPECIFIED TIME LIMITS
C
      IF(TBTIME(1).EQ.0.) GO TO 63
      DO 351 N=1,6
 351  RJTB(N)=JTB(N)*1.
      CALL TIE(RJTB,1,TSECC)
      IF(TSECC.LT.TBEGTI) GO TO 1
      IF(TSECC.GT.TENDTI) GO TO 4000
  63  CONTINUE
C
C   CHECK TO SEE IF WE ARE PLOTTING IN THIS MODE
C
      IF( JTLMOD.EQ.JMTRAJ) GO TO 340
      DO 350 N=1,NVAR
      IF(JTLMOD.EQ.ICATEG(N)) GO TO 340
 350  CONTINUE
      GO TO 1
C
C   SET UP SPECIAL BLOCK AND OBTAIN VALUE OF INDEPENDENT VARIABLE FOR
C   THIS TIME BY CALLING SPEIND.  SPEIND IS PROVIDED JTB AND IND, AND
C   SPEIND RETURNS REAL*8 TIME IN SEC FROM THE REFERENCE TIME, REAL*8
C   IND VARIABLE, IEOD1 ENDFILE PARAMETER IF TRAJECTORY FILE BEING READ,
C   AND TRAJ LABEL
C
 340  continue
      CALL SPEIND(JTB,IND,SEC,XINDVR,IEOD1,TRAJ)
      IF(IEOD1.EQ.1) GO TO 4000
C
C   CHECK TO SEE IF THIS VALUE IS IN CURRENT PLOT RANGE
      IF(INCREA) 2,4,4
C
   2  IF(XINDVR.GT.TEND) GO TO 1
   6  IF(XINDVR.LE.TINT) GO TO 1000
      IF(XINDVR.LT.TBEG) GO TO 1000
      GO TO 14
C
   4  IF(XINDVR.LT.TBEG) GO TO 1
   3  IF(XINDVR.GE.TINT) GO TO 1000
      IF(XINDVR.GT.TEND) GO TO 1000
C
C   IND VARIABLE IN CURRENT PLOT RANGE
C   STORE TIME IF THIS IS THE FIRST POINT IN CURRENT PLOT RANGE
C   NOTE WE STORE THE TIME FOR THE FIRST POINT IN EACH MODE
C
  14  CONTINUE
      IF(.NOT.START(JTLMOD)) GO TO 70
      DO 16 I=1,6
  16  ITBS(I,JTLMOD)=JTB(I)*1
      SECS(JTLMOD)=SEC
      START(JTLMOD)=.FALSE.
  70  CONTINUE
C   RE-ANALYZE IF DESIRED
C     KTLMOD=JTLMOD
C     IF(JTLMOD.EQ.5.) JTLMOD=1
C     IF(JTLMOD.EQ.6.) JTLMOD=3
C     IF(JTLMOD.EQ.7.) JTLMOD=4
      IF(IANALY.NE.0)
     * CALL DATANL(ANS,JTB,JDATA,JNE,LSTAT,JTLMOD,JCLK,TEMP)
C     JTLMOD=KTLMOD
C   CALCULATE # DT INTERVALS BETWEEN CURRENT POINT AND FIRST POINT, +1
      dddt=ddt(jtlmod)                   
      IF(dddt.ge.0.)
     *NPT(JTLMOD)=(SEC-SECS(JTLMOD))/DDdt+1.15
      IF(DDdt.LT.0.0) NPT(JTLMOD)=NPT(JTLMOD)+1
      IF(NPT(JTLMOD).LE.NPTMAX) GO TO 100
      IF (IPRT.NE.0) WRITE(6,65) NAMMOD(JTLMOD)
  65  FORMAT(1H0,'NUMBER POINTS EXCEEDS ARRAY DIMENSIONS',A5)
      GO TO 1
 100  CONTINUE
C
C   SET INDEPENDENT VARIABLE
C
      NT=NPT(JTLMOD)
      NX=XINDVR/RGEMOD
      X=XINDVR-NX*1.D0*RGEMOD
      XIND(NT,JTLMOD)=X
      XINDPR=X
C   SET TIME ARRAY FOR TRAJECTORY TICK MARK OPTION
      STM(NT)=SEC
C
C   FILL DEPENDENT VARIABLE MATRIX U
C
      DO 110 N=1,NVAR
      UPRT(N)=PLTSET
      NCATEG=ICATEG(N)
      L=LOCAT(N)
      IF(NCATEG.GT.8) GO TO 120
      IF(NCATEG.NE.JTLMOD) GO TO 110
C   VARIABLES FROM DATA MATRICES
      CALL QUATST( ANS,JTB,JDATA,JNE,LSTAT,JTLMOD,JCLK,TEMP,L,QUAL)
      IF(.NOT.QUAL) GO TO 110
      IF(ANS(L).EQ.PRESET) GO TO 110
      UPRT(N)=ANS(L)
      U(NT,N)=ANS(L)
      GO TO 110
C   TRAJECTORY VARIABLES---TIME IS KEYED TO JMTRAJ (NOMINALLY L MODE)
 120  IF(JTLMOD.NE.JMTRAJ) GO TO 110
 130  UPRT(N)=SBLK(L)
      U(NT,N)=SBLK(L)
 110  CONTINUE
C
C   PRINTED OUTPUT
C
      IF(IPRT.EQ.0) GO TO 1
      IF(LINE.GE.MAXLIN) GO TO 1
      IF(MOD(LINE,50).EQ.0) WRITE(IPRT,190)   JTB(1),
     *        NAMIND,(UN(N),N=1,NVAR)
 190  FORMAT(1H0,I4,'  H M S MODE',11(2X,A8)/26X,10(2X,A8))
      IF(IFORM.EQ.0)  WRITE(IPRT,200) (JTB(N),N=2,5),
     1  NAMMOD(JTLMOD),XINDPR,(UPRT(N),N=1,NVAR)
      IF(IFORM.EQ.0)  WRITE(7,277)
     1  XINDPR,(UPRT(N),N=1,NVAR)
 200  FORMAT(1H ,I4,I3,I2,I3,A4,F10.4,10(1PE10.3)/26X,10(1PE10.3))
 277  FORMAT(1H ,F10.4,20(1PE10.3))
      IF(IFORM.EQ.1)  WRITE(IPRT,201) (JTB(N),N=2,5),
     1  NAMMOD(JTLMOD),XINDPR,(UPRT(N),N=1,NVAR)
 201  FORMAT(1H ,I4,I3,I2,I3,A4,F10.4,10F10.1/26X,10F10.1)
      IF(IFORM.EQ.1)  WRITE(7,271) 
     1 XINDPR,(UPRT(N),N=1,NVAR)
 271  FORMAT(1H ,F10.4,20F10.1)
      IF(IFORM.EQ.2)  WRITE(IPRT,202) (JTB(N),N=2,5),
     1  NAMMOD(JTLMOD),XINDPR,(UPRT(N),N=1,NVAR)
 202  FORMAT(1H ,I4,I3,I2,I3,A4,F10.4,10F10.2/26X,10F10.2)
      IF(IFORM.EQ.2)  WRITE(7,272)
     1 XINDPR,(UPRT(N),N=1,NVAR)
 272  FORMAT(1H ,F10.4,20F10.2)
      IF(IFORM.EQ.3)  WRITE(IPRT,203) (JTB(N),N=2,5),
     1  NAMMOD(JTLMOD),XINDPR,(UPRT(N),N=1,NVAR)
 203  FORMAT(1H ,I4,I3,I2,I3,A4,F10.4,10F10.3/26X,10F10.3)
      IF(IFORM.EQ.3)  WRITE(7,273) 
     1  XINDPR,(UPRT(N),N=1,NVAR)
 273  FORMAT(1H ,F10.4,20F10.3)
      IF(IFORM.EQ.4)  WRITE(IPRT,204) (JTB(N),N=2,5),
     1  NAMMOD(JTLMOD),XINDPR,(UPRT(N),N=1,NVAR)
 204  FORMAT(1H ,I4,I3,I2,I3,A4,F10.4,10F10.4/26X,10F10.4)
      IF(IFORM.EQ.4)  WRITE(7,274)
     1  XINDPR,(UPRT(N),N=1,NVAR)
 274  FORMAT(1H ,F10.4,20F10.4)
c  
      LINE=LINE+1
      GO TO 1
C
C   SET FLAG FOR END OF FILE, PLOT LAST PLOT IF IEOF =1
 4000 IEOF=1
C
C   PLOT POINTS
C
 1000 CONTINUE
      IF(NPT(1)+NPT(2)+NPT(3)+NPT(4)+NPT(5)+NPT(7)+NPT(8).EQ.0)
     *   GO TO 5000
C
C   SUBTRACT AVERAGE FROM VARIABLES AND SCALE IF APPROPRIATE
C
      DO 510 N=1,NVAR
      AVE(N)=PRESET
      IF(NAVE(N).EQ.0) GO TO 510
      JTIME=JMTRAJ
      IF(ICATEG(N) .LE. 8) JTIME=ICATEG(N)
      NPTJ=NPT(JTIME)
      NSUM=0
      SOM=0.
      AMINS=1.E70
      AMAXS=-1.E70
      DO 520 I=1,NPTJ
      UDATA=U(I,N)
      IF(UDATA.EQ.PRESET) GO TO 520
      IF(UDATA.GT.AMAXS) AMAXS=UDATA
      IF(UDATA.LT.AMINS) AMINS=UDATA
      SOM=SOM+UDATA
      NSUM=NSUM+1
 520  CONTINUE
      IF(NSUM.EQ.0) GO TO 510
      SOM=SOM/NSUM
      SCAS=AMAX1(ABS(AMAXS-SOM),ABS(AMINS-SOM))
      SCA(N)=SCAS
      AMIN(N)=AMINS
      AMAX(N)=AMAXS
      AVE(N)=SOM
      IF(NAVE(N).GT.0) SCAS=1.
      DO 530 I=1,NPTJ
      UDATA=U(I,N)
      IF(UDATA .EQ.PRESET) GO TO 530
      UDATA=(UDATA-SOM)/SCAS
      U(I,N)=UDATA
  530 CONTINUE
  510 CONTINUE
C
      IF(IPLTS.EQ.0) GO TO 270
C   FIND X1 AND X2, THE LOWER AND UPPER LIM IND VARIABLE, MOD RGEMOD
      NX1=TBEG/RGEMOD
      X1=TBEG-NX1*1.D0*RGEMOD
      IF(INCREA.LT.0) NX1=TINT/RGEMOD
      IF(INCREA.LT.0) X1=TINT-NX1*1.D0*RGEMOD
      X2=X1+RANGE
C
      NTOP=0
      NLAB=NLIX
      YHU(NVAR+1)=HGTMAX
      HGH=0.
      SUM=YHU(1)
C   PLOT VARIABLES 1 TO NVAR
C
      DO 250 N=1,NVAR
      AYHUN=ABS(YHU(N))
      IPEN=NPEN(N)
      IF(IPEN.EQ.0) IPEN=1
      CALL NEWPEN(IPEN)
C   PANEL = COLLECTION OF ONE OR MORE GRAPHS
C   GRAPH = ONE OF MANY PLOTS ON A PANEL
C   SUM IS ACCUMULATED HEIGHT ON THIS PANEL, INCLUDING **NEXT** PLOT
C   NPLOT=0 IF NEXT PLOT WILL STILL FIT IN HGTMAX VERTICAL INCHES
C   NPLOT=1 IF NOT, IN WHICH CASE WE FINISH OFF PANEL AND START NEW ONE
C   NLAB = NLIX IF THIS IS BOTTOM PLOT IN PANEL, AND 0 OTHERWISE
C
C   CHECK IF TWO OR MORE VARIABLES ON ONE GRAPH
C   IF SO, YHU(N) SHOULD BE LT 0. FOR 2ND AND SUBSEQUENT VARIABLES TO
C   APPEAR IN THE SAME PANEL
      IF(YHU(N+1).GT.0.)SUM=SUM+YHU(N+1)
 
      IF(SUM.LE.HGTMAX) GO TO 240
      NTOP=1
      SUM=YHU(N+1)
 240  CONTINUE
      CALL BEGPLT0
      call nupage2( 8.5, 11.)
      CALL SETYAX6(UL(N),UU(N),NLOGU(N), AYHUN,NIU(N),NLIU(N))
C   DON'T DRAW TOP IF NOT TOP GRAPH
      IF(NTOP.EQ.0)
     *CALL SETXAX9(X1,X2    ,0,DTI,NIX,NLAB,+1,-1,1)
C   DRAW TOP IF TOP GRAPH IN PANEL
      IF(NTOP.NE.0)
     * CALL SETXAX6(X1,X2,0,DTI,NIX,NLAB)
      IF(YHU(N+1).LT.0.) GO TO 330
C   IF BOTTOM GRAPH, HORIZONTAL LABEL
      IF(NTOP.EQ.0.AND.NLAB.NE.0) CALL LABEL4(8,NAMIND,8,UN(N))
C   IF INTERMEDIATE GRAPH, NO HORIZONTAL LABEL
      IF(NTOP.EQ.0.AND.NLAB.EQ.0) CALL LABEL4(0,0,8,UN(N))
C   IF TOP GRAPH, TITLE
      IF(NTOP.NE.0.AND.NLAB.EQ.0) CALL LABEL6(0,0,8,UN(N),36,TITLE)
C   IF ONLY ONE GRAPH IN PANEL, HORIZONTAL LABEL AND TITLE
      IF(NTOP.NE.0.AND.NLAB.NE.0)
     * CALL LABEL6(8,NAMIND,8,UN(N),36,TITLE)
 330  JTIME=JMTRAJ
      IF(ICATEG(N).LE.8) JTIME=ICATEG(N)
      IF(HGT(N).NE.0.) GO TO 400
      IF(ITRATK.EQ.0)
&	CALL SYMRAY(XIND(1,JTIME),U(1,N),0.14,NSYM(N),0.0,NPT(JTIME),-1,-1,1)
      IF(ITRATK.NE.0)
     *CALL ARYPLT(XIND(1,JTIME),U(1,N),NPT(JTIME),STM,TRATK,-1,0.0)
      GO TO 410
 400  NPTJ=NPT(JTIME)
      DO 415 I=1,NPTJ
      IF(XIND(I,JTIME).EQ.PRESET) GO TO 415
      IF(U(I,N).EQ.PRESET) GO TO 415
      CALL SYMDAT(XIND(I,JTIME),U(I,N),HGT(N),NSYM(N),0.,-1)
 415  CONTINUE
 410  CONTINUE
      IF(YHU(N).GT.0.) HGH=HGH+YHU(N)
      IF(NTOP.EQ.0) GO TO 260
      HGH=HGH-AYHUN
C   PUT TIME ON PLOT (IF ERT OR SCET, ONLY YEAR AND DAY--OTHERWISE ALL)
C   THIS TIME IS FIRST (EARLIEST) TIME ON PLOT
      XSPAC=SXSPAC
      DO 245 I=1,6
      IF(IND.EQ.1.AND.I.GT.2) GO TO 245
      IF(IND.EQ.4.AND.I.GT.2) GO TO 245
      Z=ITBS(I,JMTRAJ)
      CALL NUMBER(XSPAC,SHGH-HGH,SPAC,Z,0.0,-1)
      XSPAC=XSPAC+SPAC*NSPAC(I)
 245  CONTINUE
      DT9=DTI+1.5
C   RESET 0 FOR NEXT PANEL
      CALL PLOT(DT9,-HGH,-3)
      NLAB=NLIX
      NTOP=0
      HGH=0.
      GO TO 250
C   RESET 0 FOR NEXT GRAPH
 260  CONTINUE
      IF(YHU(N+1).GT.0.) CALL PLOT(0.,AYHUN,23)
      IF(YHU(N+1).GT.0.) NLAB=0
 250  CONTINUE
 270  CONTINUE
C
      IF (IPRT.NE.0) WRITE(6,310) NUMPLT,(NAMMOD(K),NPT(K),K=1,8)
 310  FORMAT(1H0,'PLOT #',I3,' COMPLETED'/'  # PTS. PER MODE:'
     *,4(A4,I4)/18X,4(A4,I4))
      IF (IPRT.NE.0)
     * WRITE(6,320) NUMVOY,(NAMMOD(K),(ITBS(I,K),I=1,6),K=1,8)
 320  FORMAT(1H ,'VOYAGER',I2,5X,'TIME OF FIRST DATA POINT IN EACH MODE
     *(SCET)'/8(20X,A4,I5,I4,3I3,I4/))
      DO 560 N=1,NVAR
      IF(NAVE(N).EQ.0) GO TO 560
      IF (IPRT.NE.0) WRITE(6,360) UN(N),AVE(N),AMIN(N),AMAX(N),SCA(N)
 360  FORMAT(1H0,' AVE OF ',A8,' IS ',1PE12.3,
     *'   MIN, MAX, AND SCALING ARE ',3(1PE12.3))
 560  CONTINUE
      NUMPLT=NUMPLT+1
C
C   INITIALIZE VARIABLES ETC.
C
      CONTINUE
      DO 280 J=1,NMODE
      DO 300 K=1,NPTMAX
 300  XIND(K,J)=PLTSET
      DO 285 L=1,6
 285  ITBS(L,J)=0
      NPT(J)=0
 280  START(J)=.TRUE.
      DO 290 K=1,NPTMAX
      DO 290 N=1,NVAR
 290  U(K,N)=PLTSET
      LINE=0
C
C   SET UP NEW PLOT INTERVAL
5000  IF(INCREA) 7,8,8
C
   8  TBEG=TBEG+RANGE
      TINT=TINT+RANGE
C   CHECK TO SEE IF WE HAVE PASSED SPECIFIED ENDING POINT
      IF(XINDVR.GT.TEND) GO TO 50
      GO TO 9
C
   7  TEND=TEND-RANGE
      TINT=TINT-RANGE
C   CHECK TO SEE IF WE HAVE PASSED SPECIFIED END POINT
      IF(XINDVR.LT.TBEG) GO TO 50
C
C   CHECK TO SEE IF WE HAVE RUN INTO END OF FILE ON FILES
C   OR IF WE HAVE GONE BEYOND SPECIFIED END TIME LIMIT
   9  IF(IEOF.NE.0) GO TO 50
      IF(INCREA) 6,3,3
  50  CONTINUE
C   OPTION TO GO BACK AND DO THE WHOLE THING OVER (RUN PARAMETERS AND AL
      GO TO 9000
 8000 CONTINUE
      IF (IPLT.NE.0) CALL PLOT(0.,0.,999)
      RETURN
      END