File: POLPLT.FT of Tape: Various/ETH/eth11-1
(Source file text)
SUBROUTINE PLOT(NO,A,N,M,NL,NC,NS) DIMENSION OUT(132),YPR(12),BLANK(10),A(1) EQUIVALENCE(BL,BLANK) INTEGER OUT,BLANK,BL,DIV COMMON IOUT,IN DATA BLANK/' ','1','2','3','4','5','6','7','8','9'/,DIV/'I'/ C 1 FORMAT(///25X' CHART 'I3//) 2 FORMAT(1X,F11.4,4X,115A1) 4 FORMAT(132A1) 8 FORMAT(9X,12F10.4) IFLAG=0 NLL=NL NCC=NC IF(NS) 16,16,10 C SORT BASE VARIABLE DATA IN ASCENDING ORDER 10 NM1=N-1 DO 15 I=1,NM1 IP1=I+1 DO 14 J=IP1,N IF(A(I)-A(J)) 14,14,11 11 L=I-N LL=J-N C SWITCH ROWS DO 12 K=1,M L=L+N LL=LL+N F=A(L) A(L)=A(LL) 12 A(LL)=F 14 CONTINUE 15 CONTINUE C CHECK DEFAULT CONDITIONS 16 IF(NLL.EQ.0) NLL=50 IF(NCC.EQ.0) NCC=72 C DETERMINE PLOTTING WIDTH C FIND NUMBER OF MARKERS DO 90 J=19,139,10 IF(J-NCC) 90,90,91 90 CONTINUE 91 NTOP=J/10 -1 NCC=NTOP*10 - 9 C PRINT TITLE 20 WRITE(IOUT,1) NO C FIND SCALE FOR BASE VARIABLE XSCAL=(A(N)-A(1))/(FLOAT(NLL-1)) C FIND SCALE FOR CROSS-VARIABLES M1=N+1 M2=M*N YMIN=A(M1) YMAX=YMIN DO 40 J=M1,M2 X=A(J) IF(X.LT.YMIN) YMIN=X 40 IF(X.GT.YMAX) YMAX=X YSCAL=(YMAX-YMIN)/(FLOAT(NCC-1)) C FIND BASE VARIABLE PRINT POSITION XB=A(1) L=1 MYX=M-1 I=1 45 F=I-1 XPR=XB+F*XSCAL IF(A(L)-XPR) 50,50,70 C FIND CROSS VARIABLES 50 DO 55 IX=1,132 55 OUT(IX)=BL DO 56 IX=1,131,10 56 OUT(IX)=DIV DO 60 J=1,MYX LL=L+J*N JP=((A(LL)-YMIN)/YSCAL)+1.0 60 OUT(JP)=BLANK(J+1) C PRINT LINE AND CLEAR OR SKIP WRITE(IOUT,2) XPR,(OUT(IZ),IZ=1,NCC) L=L+1 GO TO 80 70 DO 71 IX=1,132 71 OUT(IX)=BL DO 72 IX=17,127,10 72 OUT(IX)=DIV NC17=NCC+17 WRITE(IOUT,4) (OUT(IZ),IZ=1,NC17) 80 I=I+1 IF(I-NLL) 45,84,86 84 XPR=A(N) GO TO 50 C PRINT CROSS-VARIABLES NUMBERS 86 IF(IFLAG) 87,88,87 88 IFLAG=1 GO TO 70 87 YPR(1)=YMIN NM2=NTOP-2 DO 93 KN=1,NM2 93 YPR(KN+1)=YPR(KN) + YSCAL*10.0 YPR(NTOP)=YMAX WRITE(IOUT,8) (YPR(I),I=1,NTOP) RETURN END