SUBROUTINE YLOGUN(SCALE) CHARACTER*3 YBTYPE CHARACTER*20 TEXT, NUMB CHARACTER*80 TITLEY REAL TRPAX(4), TRPAY(4) COMMON /XAX/ X1,XL,XLEFT,XRIGHT,XSCALE,XINC,DX, % X1PL,XLPL,NX,X1GRID,XLGRID,DIVX,XVAL(100),NXVAL COMMON /YAX/ Y1,YL,YUP,YDOWN,YSCALE,YINC,DY, % Y1PL,YLPL,NY,Y1GRID,YLGRID,DIVY,YVAL(100),NYVAL COMMON /YAXC/ TITLEY, YBTYPE COMMON /PARA/ LABPT,NSM,NDIV,CAY,NARC,NRNG,HGTPT,HGT, % LABC(51),LWGT(51) 100 FORMAT(F10.0) 110 FORMAT(F10.1) 120 FORMAT(F10.2) C NDEC CONTROLS THE NUMBER OF DECIMALS NDEC=0 CALL GSCAMM HGTU= HGT*25.4 HGTU2= HGTU/2.0 CALL RTXANG(0.0) CALL RTXHEI(HGTU*scale) XORIG= X1PL*scale YORIG= Y1PL*scale YMIN=AMIN1(YUP,YDOWN) YMAX=AMAX1(YUP,YDOWN) NYVAL=YINC*ALOG(YMAX/YMIN)/ALOG(2.0) + 1.01 C DO 1000 I=1,MIN(NYVAL,100) YVAL(I)=YMIN*2.0**((I-1)/YINC) 1000 CONTINUE YVAL(NYVAL+1)= YMAX BYAXIS= SCALE * 10.0*ABS(ALOG(YUP/YDOWN)/ALOG(2.0))*YSCALE YAXIS=SCALE*((NYVAL-1)*YSCALE)/YINC * 10.0 CALL GVECT(XORIG, YORIG + BYAXIS, 0) CALL GVECT(XORIG, YORIG, 1) DY=ABS(YAXIS/ALOG10(YVAL(NYVAL)/YVAL(1))) XMIN=XORIG YSTEP= YAXIS/(NYVAL-1) DIFF= (LOG(YMAX)- LOG(YVAL(NYVAL))) / LOG(2.0) IF( ( DIFF .GE. 0.5) .AND. ( DIFF*YSTEP .GT. 2*HGTU) ) THEN IADD= 1 ELSE IADD= 0 END IF IEND= MIN( NYVAL + IADD, 100 ) DO 2000 I= 1, IEND IF( I .LE. NYVAL) THEN Y= YORIG + YSTEP * (I-1) ELSE Y= YORIG + YSTEP * (I-2) + DIFF * YSTEP END IF CALL GVECT(XORIG,Y,0) CALL GVECT(XORIG-2.0,Y,1) C IF(MOD(I-1,ISKIP).NE.0) GO TO 2000 IF(NDEC .EQ. 0) THEN WRITE(TEXT,100) YVAL(I) ELSE IF(NDEC .EQ. 1) THEN WRITE(TEXT,110) YVAL(I) ELSE WRITE(TEXT,120) YVAL(I) END IF NCHAR=0 DO 1200 J1=1,20 IF(TEXT(J1:J1) .EQ. ' ') GO TO 1200 DO 1100 J2=20,J1,-1 IF(TEXT(J2:J2) .EQ. ' ') GO TO 1100 NUMB(1:J2-J1+1)=TEXT(J1:J2) NCHAR=J2-J1+1 GO TO 1300 1100 CONTINUE 1200 CONTINUE 1300 CONTINUE CALL RQTXP(J2-J1+1,NUMB,0.,0.,TRPAX,TRPAY) X=XORIG - TRPAX(3) -2. -HGTU2 IF(XMIN.GT.X) XMIN=X IF(NCHAR .GT. 0) CALL RTX(NCHAR,NUMB,X,Y-.5*(TRPAY(3)+TRPAY(2))) 2000 CONTINUE CALL CHARA(TITLEY,N) HGTCH=1.0*HGTU CALL RTXANG(90.0) CALL RTXHEI(HGTCH) CALL RQTXP(N,TITLEY,0.,0.,TRPAX,TRPAY) Y= YORIG + (BYAXIS-TRPAY(2))/2. X=AMIN1(XORIG-HGTCH,XMIN-HGTCH) X=AMAX1(HGTU + HGTCH,X) CALL RTX(N,TITLEY,X,Y) RETURN END