C Plotting grogram for general purpose using PostScript program main call init call viewport(0.2, 0.2, 0.8, 0.6) call xyworld (0.0, -1.0, 1.0, 1.0) call frame call plotd call fin stop end C function f(x) pi=atan(1.0)*4.0 f=exp(-x)*sin(4.0*pi*x) return end C subroutine plotd() dimension x1(0:20),y1(0:20) n=20 do 10 i=0,n x1(i)=float(i)/float(n) y1(i)=f(x1(i)) 10 continue call linewidth(1.5) call linety(1) call setgray(0.0) call plot(x1(0), y1(0), 3) do 20 i=1, n-2 call spline1(x1(i-1), y1(i-1), x1(i), y1(i), x1(i+1), y1(i+1), & x1(i+2), y1(i+2), -1) 20 continue call spline1(x1(n-3), y1(n-3), x1(n-2), y1(n-2), x1(n-1), y1(n-1), & x1(n), y1(n), 0) call spline1(x1(n-3), y1(n-3), x1(n-2), y1(n-2), x1(n-1), y1(n-1), & x1(n), y1(n), 1) call stroke() return end subroutine frame call linewidth(1.0) call rect(0.0, -1.0, 1.0, 1.0, 0.0, 1.0, 1) nx=2 do 30 ix = 1, nx*10-1 x = float(ix)/float(nx*10) dy=1.0 if(ix/10*10.eq.ix) then call setgray(0.5) else call setgray(0.8) end if call plot( x, -dy, 3) call plot( x, dy, 2) call stroke() 30 continue ny=2 do 40 iy = 1, ny*10-1 y = float(iy)/float(ny*10)*2.0-1.0 dx=1.0 if(iy/10*10.eq.iy) then call setgray(0.5) else call setgray(0.8) end if call plot( 0.0, y, 3) call plot( dx, y, 2) call stroke() 40 continue call setgray(0.0) call textx(0.75, 0.0, 1, 'x') call textx(0.05, 0.02, 1, '0') call textx(0.55, 0.02, 3, '0.5') call textx(0.95, 0.02, 1, '1') call texty(0.0, 0.5, 1, 'y') call texty(0.0, -1.0, 2, '-1') call texty(0.0, 0.0, 1, '0') call texty(0.0, 1.0, 1, '1') return end