SUBROUTINE INPUT(HTXT,TIT,NLAB,OPTS,FREQ,H0,H1,R1, % LAB,LAB1,ICURV,XLEN,YLEN,IGRID,NC,FMIN,FMAX,LUPLP) C C C CHARACTER*12 OPTS CHARACTER*20 LAB(20),LAB1(20) CHARACTER*80 HTXT,TIT,TITX,TITY,TITZ CHARACTER*80 BUFF C CHARACTER*2 FORMT,BDEV CHARACTER*3 SYMB(20), ADD, PLOP(21), DEV, URC, ULC, NWR CHARACTER*3 XBTYPE,YBTYPE,ZBTYPE CHARACTER*11 FACTORTMP REAL BUFFIN(3) include 'default.f' COMMON /SETARG/ TRACD, TRCMAX COMMON /SETPRM/ PLOP, ADD, BDEV, FACTORTMP, % SYMB, DEV, FORMT, URC, ULC, NWR COMMON /SCALES/ YSCALETMP, DRRATIO, YOLDLEN, & SCFAC, HSCFAC, IHSC, FACTOR, FACT, FACSCALE, SCALEFACT COMMON /XAX/ X1,XL,XLEFT,XRIGHT,XSCALE,XINC,DX, % X1PL,XDUM4,IXDUM1,XDUM5,XDUM6,XDIV,XVAL(100),NXVAL COMMON /XAXC/ TITX,XBTYPE COMMON /YAX/ Y1,YL,YUP,YDOWN,YSCALE,YINC,DY, % Y1PL,YDUM4,IYDUM1,YDUM5,YDUM6,YDIV,YVAL(100),NYVAL, % YBOX COMMON /YAXC/ TITY,YBTYPE COMMON /ZAX/ ZMIN,ZMAX,ZLEN,ZINC COMMON /ZAXC/ TITZ,ZBTYPE 130 FORMAT(6(1X,E12.5)) 140 FORMAT(4X,F7.1) 150 FORMAT(A80) 160 FORMAT(1X,A80) 170 FORMAT(1X,A20) 180 FORMAT(1X,A3) 230 FORMAT(4X,F7.1) 240 FORMAT(6(1X,E12.5)) READ(LUPLP,160) HTXT IF(SCFAC.NE.1.0) THEN DO 1000 J=70,1,-1 IF(HTXT(J:J+10).NE.FACTORTMP) GO TO 1000 WRITE(HTXT(J:J+10),150) FACTOR GO TO 1200 1000 CONTINUE END IF 1200 READ(LUPLP,160) TIT READ(LUPLP,*) NLAB IF(NLAB .GT. 0) THEN IF(OPTS(8:12) .EQ. 'MODES') THEN READ(LUPLP,*)FREQ READ(LUPLP,*)H0 READ(LUPLP,*)H1 READ(LUPLP,*)R1 ELSE READ(LUPLP,170) (LAB(ILAB),ILAB=1,NLAB) IF(NOP .EQ. 0) LAB1(ICURV)=LAB(2) IF(URC .EQ. 'URC') NLAB=NLAB-1 END IF END IF C READ(LUPLP,*) XLEN IF (IHSC.GT.0) HSCFAC=XLEN/20.0 READ(LUPLP,*) YLEN IF (YLEN.LT.XLEN) THEN IF (FORMT.EQ.'A4'.OR.FORMT.EQ.'VG') THEN IHOR=0 ELSE IHOR=1 END IF ELSE IF (FORMT.EQ.'A4'.OR.FORMT.EQ.'VG') THEN IHOR=1 ELSE IHOR=0 END IF END IF IF((OPTS(8:12) .EQ. 'PROFL' .AND. PLOP(1) .EQ. 'RDP') .OR. & (OPTS(1:6) .EQ. 'MOCASS'.AND. PLOP(1) .EQ. 'PRO')) & READ(LUPLP,*) ZLEN READ(LUPLP,*) IGRID KTYP=IGRID+1 READ(LUPLP,*) XLEFT READ(LUPLP,*) XRIGHT READ(LUPLP,*) XINC READ(LUPLP,*) XDIV XLEFT=XLEFT*XDIV XRIGHT=XRIGHT*XDIV XINC=XINC*XDIV READ(LUPLP,160) TITX READ(LUPLP,180) XBTYPE IF(XBTYPE .NE. 'LOG') THEN IF(ABS(XINC)*100. .GE. 1.0) THEN XLEFT=FLOAT(INT(XLEFT*100.))/100 XRIGHT=FLOAT(INT(XRIGHT*100.))/100 XINC=FLOAT(INT(XINC*100.))/100 END IF END IF CALL AXDEC(XLEFT,XRIGHT,XINC,IXAX) READ(LUPLP,*) YDOWN READ(LUPLP,*) YUP READ(LUPLP,*) YINC READ(LUPLP,*) YDIV READ(LUPLP,160) TITY READ(LUPLP,180) YBTYPE IF((OPTS (8:12) .EQ. 'PROFL' .AND. PLOP(1) .EQ. 'RDP') .OR. & (OPTS (1:6) .EQ. 'MOCASS'.AND. PLOP(1) .EQ. 'PRO')) THEN READ(LUPLP,*)ZMIN READ(LUPLP,*)ZMAX READ(LUPLP,*)ZINC READ(LUPLP,*)ZDIV READ(LUPLP,160) TITZ READ(LUPLP,180) ZBTYPE END IF IF(FACSCALE .NE. 1.0) THEN YSCALETMP=YLEN/ABS(YUP-YDOWN) IF(ABS(YSCALE-YSCALETMP).LE.1E-3) THEN FACSCALE=DRRATIO ELSE YOLDLEN=YSCALE*ABS(YUP-YDOWN) FACSCALE=DRRATIO*YOLDLEN/YLEN END IF END IF YDOWN=YDIV*YDOWN YUP=YDIV*YUP YINC=YDIV*YINC CALL AXDEC(YUP,YDOWN,YINC,IYAX) READ(LUPLP,*) NC C TRUNCATION AT HALF TRACE DISTANCE TRCMAX=ABS(YDOWN-YUP) IF (NC.GT.0) TRCMAX=ABS(YDOWN-YUP)/(2*NC+1) RETURN END