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