SUBROUTINE PLOT (X,Y,IC) C C TO PLOT STRAIGHT LINES OF ANY LENGTH AND DIRECTION, WITH C PEN UP, OR PEN DOWN. C Modified: 5-Nov-82 by DVJensen, Ames Lab, Ames, IA. C - Dotted and dashed lines have been removed. Use the HIPLOT C L command to select the type of line desired. (See LINTYP.) C - Use of PLTX single increment control has been converted to C DMPL style multiple relative step control output through C PLTOUT. A very large decrease in the size of the plot file C was realized (factor of ~100!). C C ORIGINAL PROGRAM BY C. E. COHN FOR THE DDP-24, MODIFIED C FOR THE PDP-11/34 BY J. MORMAN, AUG., 1979. PLOT LIMITS C ARE SET FOR THE 10 X 7 IN. AREA OF THE HIPLOT PLOTTER. C C MODIFIED BY P. MURPHY FOR USE WITH THE HIPLOT DMP-4 C INCREMENTAL PLOTTER (FEB., 1981) . C C THE ROUTINE IS USED BY THE STATEMENT: CALL PLOT (X,Y,IC) C WHERE X AND Y ARE COORDINATES OF THE END POINT OF THE C LINE (IN INCHES, FLOATING POINT); IC = CONTROL PARAMETER, C INTEGER VALUED. C IABS(IC) = 0 OR 1 NO EFFECT C 2 LOWER PEN BEFORE TRACING LINE C 3 RAISE PEN BEFORE TRACING LINE C (not supported) 4 DOTTED LINE, DOT EVERY 10 STEPS C (not supported) 5 DASHED LINE, DASHES AND SPACES C 10 STEPS LONG C 10 NO LINE PLOTTED. X AND Y ARE SET C AS UPPER LIMITS FOR FUTURE PLOT C COORDINATES. C 11 NO LINE PLOTTED. X AND Y ARE SET C AS LOWER LIMITS FOR FUTURE PLOT C COORDINATES. C IF IC IS NEGATIVE, END POINT OF LINE IS DEFINED AS NEW C ORIGIN OF COORDINATES. IF ALSO X=Y=0.0, PRESENT PEN C POSITION IS DEFINED AS NEW ORIGIN, PEN NOT MOVED. C THIS ALSO INITIALIZES PLTX. C DATA XMAX,YMAX,XMIN,YMIN/10.4,7.4,0.0,0.0/ DATA FACTOR/400./ C STEP SIZE, INCHES FACTOR C .005 400. C .01 200. LOGICAL*1 STRING(6) C IF (IC) 10,40,40 10 IF (X) 40,20,40 20 IF (Y) 40,30,40 30 NPX = 0 C NO LINE PLOTTED. DEFINE PRESENT PEN POSITION AS ORIGIN NPY = 0 CALL PLTX (0) RETURN 40 ICA = IABS(IC) IF (ICA-10) 70,50,60 C SET UPPER LIMITS FOR X AND Y 50 XMAX = X YMAX = Y GO TO 310 C SET LOWER LIMITS FOR X AND Y 60 XMIN = X YMIN = Y GO TO 310 C PLOT A LINE 70 IF (ICA-2) 100,80,90 80 CALL PLTX (16) GO TO 100 90 CALL PLTX (32) 100 NX = (IFIX(FACTOR*AMAX1(XMIN,AMIN1(XMAX,X))))/2 NY = (IFIX(FACTOR*AMAX1(YMIN,AMIN1(YMAX,Y))))/2 NDX = NX - NPX NDY = NY - NPY NPX = NX NPY = NY 110 CALL ICONV(NDX,STRING,LENGTH) CALL PLTOUT(STRING,LENGTH) CALL PLTOUT(',' , 1) CALL ICONV(NDY,STRING,LENGTH) CALL PLTOUT(STRING,LENGTH) CALL PLTOUT(' ',1) 290 IF (IC) 300,310,310 C RESET ORIGIN TO PRESENT PEN POSITION AFTER PLOTTING 300 NPX = 0 NPY = 0 310 RETURN END