File: PSCALE.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text) 

        FORTRAN IV  5AAAA (A6)   8-APR-92             PAGE  ONE 

0002	        SUBROUTINE PSCALE(ARRAY,AXLEN,NPTS,INC)
	C       VERSION 50A 30-MAY-80 WVDM
0003	        REAL INTVAL(6),ARRAY(1)
0004	        DATA INTVAL/1.,2.,4.,5.,8.,10./
0005	        IXLEN=AXLEN
0006	        IF(IXLEN.LT.1)GO TO 97
0007	        XMIN=ARRAY(1)
0010	        XMAX=ARRAY(1)
0011	        L=ABS(INC)
0012	        POW=ABS(AINT(NPTS))*L
0013	        DO 10 I=1,POW,L
0014	        IF(XMIN.GT.ARRAY(I))XMIN=ARRAY(I)
0015	        IF(XMAX.LT.ARRAY(I))XMAX=ARRAY(I)
0016	10      CONTINUE
0017	        POW=1.
0020	        IF(XMAX.EQ.XMIN)GO TO 99
0021	        UNIN=ABS(XMAX-XMIN)/IXLEN
	C       GET POWER SO RANGE OF PLOT 1-10
0022	20      IF(UNIN/POW.LT.10.)GO TO 32
0023	        POW=POW*10.
0024	        GO TO 20
0025	32      DELTAV=.1
0026	        IF(UNIN/POW.GE.1.)GO TO 35
0027	        POW=POW*DELTAV
0030	        GO TO 32
0031	35      M=1
0032	        UNIN=UNIN/POW
	C       DETERMINE PLOTTING INCREMENT
0033	36      IF(INTVAL(M).GE.UNIN)GO TO 40
0034	        M=M+1
0035	        GO TO 36
0036	40      DELTAV=INTVAL(M)*POW
0037	41      PLTMIN=DELTAV
0040	45      IF(XMIN.GE.PLTMIN)GO TO 47
0041	        PLTMIN=PLTMIN-DELTAV
0042	        GO TO 45
0043	47      UNIN=PLTMIN+IXLEN*DELTAV
0044	        IF(XMAX.GT.UNIN)GO TO 200
0045	        IF(INC.GE.0)GO TO 50
0046	        DELTAV=-DELTAV
0047	        PLTMIN=UNIN
0050	50      ARRAY(NPTS*L+1)=PLTMIN
0051	        ARRAY(NPTS*L+L+1)=DELTAV
0052	98      RETURN
0053	200     IF(M.NE.6)GO TO 210
0054	        POW=POW*10.
0055	        M=0
0056	210     M=M+1
0057	        DELTAV=INTVAL(M)*POW
0060	        GO TO 41
0061	99      WRITE(0,300)
0062	300     FORMAT(' MAX PT = MIN PT'/)
0063	        GO TO 98
0064	97      WRITE(0,100)
0065	100     FORMAT(' AXIS LENGTH < 1'/)
        FORTRAN IV  5AAAA (A6)   8-APR-92             PAGE  TWO 

0066	        END