C*********************************************************************** C Module: volts.f C C Copyright (C) 1996 Harold Youngren, Mark Drela C C This program is free software; you can redistribute it and/or modify C it under the terms of the GNU General Public License as published by C the Free Software Foundation; either version 2 of the License, or C (at your option) any later version. C C This program is distributed in the hope that it will be useful, C but WITHOUT ANY WARRANTY; without even the implied warranty of C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the C GNU General Public License for more details. C C You should have received a copy of the GNU General Public License C along with this program; if not, write to the Free Software C Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. C C Report problems to: guppy@maine.com C or drela@mit.edu C*********************************************************************** C C...VOLTS C Test of Xplot11 interface C C CHARACTER RDLINE*60 DIMENSION X(26),Y(26) DATA X/0.,5.,15.,25.,30.,35.,40.,45.,50.,55.,60.,65.,70.,75.,80., 1 85.,90.,95.,100.,105.,110.,115.,120.,125.,2*0./ C DATA Y/0.,10.,15.,10.,-10.,-50.,-80.,-110.,-130.,-145.,-155., 1 -160.,-158.,-150.,-130.,-90.,-70.,-20.,20.,50.,70.,80.,85., 2 90.,2*0./ C C 5 FORMAT(A) C C...Alter actual data scales DO 10 I=1,24 X(I) = X(I) * 1000 10 Y(I) = Y(I) / 10000 C IPD = 1 RELSIZ = -0.6 C C...Select type(s) of plot output WRITE(*,40) 40 FORMAT('Input plot device (1 screen, 2 PShardcopy, 3 both): ',$) READ(*,5,end=1000) RDLINE IF(RDLINE.NE.' ') READ(RDLINE,*,err=42) IPD C C...Get plot window size as fraction of root window 42 WRITE(*,45) 45 FORMAT('Enter window relative size ( gives -0.6): ',$) READ(*,5,end=1000) RDLINE IF(RDLINE.NE.' ') READ(RDLINE,*,err=50) RELSIZ C 50 CALL PLINITIALIZE ipslu = 0 CALL PLOPEN(RELSIZ,ipslu,IPD) C CALL NEWFACTOR(0.9) CALL PLOT(1.05,1.05,-3) C C...Scale factors from array coordinates CALL SCALE(X,7.,24,+1) CALL SCALE(Y,7.,24,+1) C IMASK = -1 IMASK = -30584 C...Test for line mask c WRITE(*,*) 'Enter line pattern bit mask (integer)' c READ(*,*,end=1000) IMASK call NEWPAT(IMASK) C C...Plot the array of points CALL NEWPEN (3) CALL NEWCOLORNAME('red') CALL LINE (X,Y,24,1,+1,0) MSKALL = -1 call NEWPAT(MSKALL) C C...Label the axes CALL NEWPEN (2) CALL NEWCOLORNAME('orchid') CALL AXIS (0.,0.,'NANOSECONDS',-11,7.,0.,X(25),X(26)) CALL NEWCOLORRGB(0,255,255) CALL AXIS (0.,0.,'MILLIVOLTS',+10,7.,90.,Y(25),Y(26)) C C...Plot legend CALL NEWPEN (1) CALL NEWCOLORNAME('cadetblue') CALL PLCHAR (.5,.5,.1,'DX = ',0.,+5) CALL PLNUMB (999.,999.,.1,X(26),0.,+3) CALL PLNUMB (1.,.75,.1,X(26),0.,0) CALL PLNUMB (1.,1.,.1,X(26),0.,-1) CALL PLNUMB (1.,1.25,.1,X(26),0.,-4) C C...Titles CALL NEWCOLORNAME('lime green') CALL PLCHAR (2.3,6.5,.1,'VERSAPLOT SAMPLE',0.,+16) CALL PLCHAR (1.5,6.75,.2,'TIME VS VOLTAGE',0.,+15) CALL NEWCOLORNAME('black') C CALL PLEND write(*,*) 'Hit return to exit' READ(*,999) C 999 FORMAT(A) 1000 CALL PLCLOSE STOP END