CTitle :NGTEST (Demonstration Program) - Abstract "Keywords :GRAPHICS @Computer :DEC VAX 11/730-785, DEC PDP 11/2-11/73 'Operating System :VAXVMS, RT-11 $Programming Language :Fortran IV LHardware Requirements :TEKTRONICS 4010 terminal or an EQUIVALENT emulator +Author(s) :Nestor J. Zaluzec RCorrespondence Address :Argonne Nat. Lab, Electron Microscopy Center, Bldg 212 R :Materials Science Division, Argonne, Illinois 60439, USA Abstract:  RThe computer program NGTEST is a fortran demonstration program which exercises Rthe NGRAPH library package. It demonstrates the symbol plotting, x-y plotting, Rvector plotting, hardcopy output and cursor control subroutines available in the Rpackage. It requires that a file TERMIN.DAT exist on the default storage device Rnamed DAT:. A copy of the file TERMIN.dat can be found in the documentation of the NGRAPH routines. FTitle :NGTEST (Demonstration Program) - Documentation Keywords :GRAPHICS>Computer :DEC VAX 11/730-785, DEC PDP 11/2-11/73%Operating System :VAXVMS, RT-11"Programming Language :Fortran IVHardware Requirements :None)Author(s) :Nestor J. ZaluzecPCorrespondence Address :Argonne Nat. Lab, Electron Microscopy Center, Bldg 212P :Materials Science Division, Argonne, Illinois 60439, USADescription: = This computer program is used to test/demonstrate the NGRAPH subroutine library package. References: A Operating Instructions for Tektronics 4010 terminals supplied by the manufacturer. Compilation Procedure:  Using VAX-Fortran compiler 1. Rename file to NGTEST.FOR6 2. At DCL prompt type FORTRAN/EXTEND/NOF77 NGTEST.FOR Using RT-11 Fortran IV compiler 1. Rename file to NGTEST.FOR; 2. At RT-11 prompt type FORTRAN/EXTEND/WARNINGS NGTEST.FOR Linking Procedure: ; Include the object module NGTEST.OBJ in your standard link: procedure. Also to run NGTEST you must have also compiled the graphics library NGRAPH Using VAX-Linker) 1. At DCL prompt type LINK NGTEST,NGRAPH Using RT-11 Linker+ 1. At RT-11 prompt type LINK NGTEST,NGRAPH Test Data: ? None, this PROGRAM generates graphics plots no data available  General Comments: A To run the demonstration program type RUN NGTEST upon receipt of the system ready prompt. < NOTE: If NGTEST is to be used with smaller computer systems< such as PDP 11's it may be necessary to divide the routines> up into an overlay structure to allow for swapping on and off< the disk an example of an overlay structure which will work is given below. N------------------------------------------------------------------------------DTitle :NGTEST (Demonstration Program) - Source Code Keywords :GRAPHICS>Computer :DEC VAX 11/730-785, DEC PDP 11/2-11/73%Operating System :VAXVMS, RT-11"Programming Language :Fortran IVHardware Requirements :None)Author(s) :Nestor J. ZaluzecPCorrespondence Address :Argonne Nat. Lab, Electron Microscopy Center, Bldg 212P :Materials Science Division, Argonne, Illinois 60439, USA Code: StartC C DEMONSTRATION/TEST PROGRAMC 7C DRAWS 8 SYMBOLS AVAILABLE IN GRAPHICS LIBRARY -C VARIES SIZE OF SYMBOL FOR DEMO PURPOSES4C ALSO DRAWS AN X-Y GRAPH & TESTS CURSOR ROUTINECCC"C COMMON BLOCKS for NGRAPHCC6 COMMON /CRTLST/ XMIN,DX,YMIN,DY,OFFX,OFFY,XL,YL,XZ,YZ5 COMMON /TERMIN/ ITERM,IBAUD,IPLOT,ICOLOR,IMODE,IHARD' COMMON /LABEL/ ILX(7),ILY(7),NILX,NILY DIMENSION XA(100),YA(100)' DATA XL,YL,XZ,YZ /800.,500.,150.,250./0C DEFAULT LABELS FOR X & Y AXIS ARE DEFINED HERECC7C ILX= LABEL OF XAXIS STORED AS TWO CHARACTERS PER BYTE6C ILY= LABEL OF YAXIS STORED AS ONE CHARACTER PER BYTEBC NILX= TOTAL NUMBER OF CHARACTERS IN XAXIS LABEL INCLUDING SPACESAC NILY=TOTAL NUMBER OF CHARACTERS IN YAXIS LABEL INCLUDING SPACES. DATA ILX /'En','er','gy',' (','eV',') ',' '/. DATA ILY /'C ','o ','u ','n ','t ','s ',' '/ NILX=14 NILY=7CCC WRITE (7,1000)1000 FORMAT(///,4 C' *******************',/,4 C' * NGRAPH TEST *',/,4 C' * PROGRAM *',/,4 C' * 8601310002--NJZ *',/,4 C' *******************',/) WRITE (7,2000) 2000 FORMAT(< 1' This program exercises the graphics capabilities of the  1login terminal',/,: 1' to test compatability with the current NGRAPH routine  1library by plotting',/,2 1' symbols & graphics, color changes, labels and  1cursor functions.')c,c get terminal type and start symbol routinec call terminCAC TEST FOR TSX OPERATING SYSTEM IF SO TURN ON "TRANSPARENCY MODE"C C CALL TSXC*C TEST SYMBOLS routine if user asks for itC WRITE(7,1002)>1002 FORMAT($,' Do you wish to test the symbol routine [N]: ') READ(5,3001) ANS IF (ANS.NE.'Y') GO TO 4000c#c startup graphics and plot symbolsc CALL STRTCRT CALL ERASEc c only do the 8 types of symbolsc DO 100 NTYPE=1,8 ICOLOR=0c2c draw them across the screen at 8 different sizesc DO 2 J=1,8 I=1 SIZE= 11. + J*8**I YUP=25.( IF((ITERM.EQ.4).OR.(ITERM.EQ.8)) YUP=0.c7c calculate the coordinate of the center of each symbolc YPT=75.*NTYPE -37.+ YUP XPT= (J-1)*100 + 150.cc change color for each sizec IF(ICOLOR.GT.7) ICOLOR=0 CALL COLOR(ICOLOR)cc draw the symbolc! CALL SYMBOL (XPT,YPT,SIZE,NTYPE)cc increment the colorc ICOLOR=ICOLOR +1 2 CONTINUE 100 CONTINUE CALL ENDCRTCC CHANGE TO HARDCOPY MODEC4000 write(7,3000)?3000 format($,' Do you wish to test HARDCOPY of symbols [N]: ') read (5,3001) ans3001 format(1a1) IF(ANS.NE.'Y') GO TO 3999c'c check for the type of hardcopy devicec screen dump vs. xyplotter3c note: if hardcopy output is a HP7470 plotter then/c the user must ASSIGN TT: to FOR080 in VAX VMS3c otherwise all graphics data gets stored in a file9c called FOR080.DAT. You can use this to store hardcopy (c output for later plotting if desired !cc+ IF(IHARD.EQ.13.OR.IHARD.EQ.14) CALL HCSCRN* IF(IHARD.EQ.13.OR.IHARD.EQ.14) GO TO 4000C<C WE DONOT HAVE A SCREEN DUMP DEVICE SO REPLOT THE LOT OF ITC ITOLD=ITERM ITERM=IHARD CALL STRTCRT DO 1009 NTYPE=1,8 ICOLOR=0 DO 29 J=1,8 I=1 SIZE= 11. + J*8**I YUP=25.( IF((ITERM.EQ.4).OR.(ITERM.EQ.8)) YUP=0. YPT=75.*NTYPE -37.+ YUP XPT= (J-1)*100 + 150. IF(ICOLOR.GT.6) ICOLOR=0 CALL COLOR(ICOLOR)! CALL SYMBOL (XPT,YPT,SIZE,NTYPE) ICOLOR=ICOLOR +1 29 CONTINUE 19 CONTINUE 1009 continue CALL ENDCRT ITERM=ITOLD 3999 ICOLOR=0c8c finished plotting symbols try to go back to vt100 modec CALL VT100C.C TEST CONVENTIONAL PLOTTING OF LABELED GRAPHSC WRITE(7,4001):4001 FORMAT($,' Do you wish to test Graph Plotting [N]: ') READ (5,3001) ANS IF(ANS.NE.'Y') GO TO 5000 WRITE(7,4002)F4002 FORMAT($,' Do you wish to test Hardcopy of Graph Plotting [N]: ') READ (5,3001) ANSHCc2c fill up initial data arrays for plotting (XA,YA).c start with the plot of y=x**2 for x=1 to 100c DO 50 I=1,100 XA(I)=I50 YA(I)=XA(I)*XA(I)c3c now plot the X array (XA) versus the Y array (YA)c1500 CALL CRT (XA,YA,100,+1,0,1.,1.,XA,YA,100)CC CHANGE TO HARDCOPY MODEC IF(ANSHC.NE.'Y') GO TO 501 ITOLD=ITERM ITERM=IHARD CALL STRTCRT* CALL CRT (XA,YA,100,+1,0,1.,1.,XA,YA,100) CALL VT100 ITERM=ITOLD CALL DELAY(150)C2C NOW OVERLAY A GRAPH OF A GAUSSIAN PROFILE IN REDC501 DO 61 I=1,50 XA(I)= I*2/61 YA(I)=10000.*EXP(-1.*((50-XA(I))**2)/1000.) ICOLOR=1 CALL COLOR (ICOLOR)- CALL CRT (XA,YA,50,1,1,1.,1.,XA,YA,50)C&C NOW THE SAME ON THE HARD COPY DEVICEC IF(IHARD.GE.13) GO TO 4998 IF(ANSHC.NE.'Y') GO TO 4998 ITOLD=ITERM ITERM=IHARD CALL STRTCRT' call CRT (XA,YA,50,1,1,1.,1.,XA,YA,50) CALL VT100 ITERM=ITOLD CALL DELAY (150)C?C NEXT OVERLAY A THIRD PLOT Y=10000-X**2 IN USER SELECTED COLORC AS A SERIES OF SMALL SQUARESC4998 DO 60 I=1,50 XA(I)=1. + (I-1)*260 YA(I)=10000-XA(I)**2 ICOLOR=-1. CALL CRT (XA,YA,50,-1,1,1.,1.,XA,YA,50)C&C NOW THE SAME ON THE HARD COPY DEVICEC IF(IHARD.GE.13) GO TO 4999 IF(ANSHC.NE.'Y') GO TO 4999 ITOLD=ITERM ITERM=IHARD CALL STRTCRT IF(ANSHC.EQ.'Y') ) 1call CRT (XA,YA,50,-1,1,1.,1.,XA,YA,50) CALL VT100 ITERM=ITOLDC4C SPECIAL HARDCOPY FOR FULL SCREEN COPY DEVICES HERECD4999 IF((IHARD.EQ.13.OR.IHARD.EQ.14.).AND.(ANSHC.EQ.'Y'))CALL HCSCRNCC TEST OF CURSORC ITERM=ITORIG7 CALL DELAY(150) !DELAY FOR ABIT TO LET HARDCOPY FINISH WRITE(7,101)>101 FORMAT(' Position Cursor to Data Point: to Continue')C!C MOVE CURSOR TO CENTER OF SCREENC CALL PLOT(512,350,0)CC NOW TURN ON CURSORC CALL CRSSPT(X,Y)CC TRANSLATE THE COORDINATESC CALL TRANXY(X,Y,XPT,YPT) CALL VT100CC NOW WRITE THEM ON THE SCREENC WRITE(7,200) X,Y,XPT,YPTG200 FORMAT(' X =',1F10.3,' Y =',1F10.3,'XPT =',1F10.3,' YPT =',1F10.3)5000 PAUSE ' TO CONTINUE' CALL VT100CC END OF TEST PROGRAMC STOP END