Professor Diomar Cesar Lobao

Universidade Federal Fluminense-Volta Redonda, RJ, Brasil

Diomar Cesar


Dept. Ciências Exatas - Exact Science Dept.

Search

plot1.f

c<html>
c<head><title>plot1.f</title></head>
c<body>
c<pre>
      program plotit
c
c    Program to provide plots of Sin(x)
c    Ascii Character plots go to terminal and file 'pplot.out'
c
c    John Mahaffy 1/25/95
c
      implicit none
      character line*72
      real x
      integer ip,i
      character xlabel*32,ylabel*32,title*32
      real fx
c
c   line    -   Character string loaded with a line of output
c   ip      -   Position in line for a function value
c   xlabel  -   Contains a label for the x-axis
c   ylabel  -   Contains a label for the y-axis
c   title   -   Contains a title for the plot
c
      open (11,file='pplot.out')
c
c   Label values of the y axis
c
      line=' '
      line(14:15)='-1'
      line(65:65)='1'
      write(*,*) line
      write(11,*) line
      line=' '
      line(11:13)='0.0'
c
c   Draw the y axis
c
      line(15:40)='+----+----+----+----+----+'
      line(41:65)=line(16:40)
c
c   Plot the value at x=0
c     <a name=2><font color=FF0000>
      ip= nint(25*sin(0.0))+40
c     </font>
      line(ip:ip)='*'
      write(*,*) line
      write(11,*) line
      line=' '
c
c    Loop through and plot points for other x values
c
      do 50 i=1,60
         x=.1*i
c     <a name=1><font color=FF0000>
         ip=nint(25*sin(x))+40
c     </font>
c     <a name=3><font color=98404f>
         if(mod(i,10).eq.0) then
c     </font>
            write(line(10:13),'(f4.1)') x
            line(40:40)='+'
         else
            line(10:13)=' '
            line(40:40)='|'
         endif
         line(ip:ip)='*'
         write(*,*) line
         write(11,*) line
 50      line(ip:ip)=' '
      close (11)
c
c   Drive a separate true graphics program (gnuplot)
c
c   First set up the command file for gnuplot
c
      xlabel='''x'''
      ylabel='''y'''
      title='''sin(x)'''
      open (12,file='gnuxy')
c
c   UnComment the next line if you are on an NCSA/BYU Telnet Session
c
c     write(12,*) 'set terminal tek40xx'
c
      write(12,*) 'set data style lines'
      line='set xlabel '//xlabel
      write(12,*)line
      line='set ylabel '//ylabel
      write(12,*)line
      line='set title '//title
      write(12,*)line
      write(12,*)'set nokey'
      write(12,*)'set xrange [0:6]'
      write(12,*) 'plot ''dataxy'' using 1:2'
      write (12,*) 'pause -1'
      close(12)
c
c   Generate x-y pairs for the graph
c
      open (12,file='dataxy')
      do 100 i=0,60
         x=.1*i
         fx=sin(x)
         write(12,*) x,fx
  100 continue
      close(12)
c
      print *, ' Hit the Return (Enter) key to continue'
c
c   Tell the system to run the program gnuplot
c   This call works on either IBM RS6000 or Sun, but is not part of
c   the Fortran standard.
c   Comment out the line if you aren't at a terminal with graphics
c
      call system ('gnuplot gnuxy')
c<a name="stop"><font color="FF0000">
      stop
c</font></a>
      end
c</pre>
c</body>
c</html>
Skip to content