How great would it be if we can have a plotting option directly in Fortran programs? I was having trouble finding a proper way to do this. Then I came across the wonderful gnuplot software (free and open source !!). It is a command line plotting utility that can produce publication-quality plots. So what has it got to do with Fortran programs? Since gnuplot can be run from a terminal, we can ask the Fortran program to open a system terminal and ask to run gnuplot. Once gnuplot finishes plotting (to your display/ or to a file), then the control will be given back to the Fortran program to continue execution.
Here is an example Fortran program:
PROGRAM compute_plot INTEGER :: i,n=10 REAL :: x(10),y(10) x(1)=0.0 y(1)=0.0 DO i=2,n x(i)=0.1*i y(i)=x(i)*x(i) ENDDO OPEN(UNIT=48,FILE='data') DO i=1,n WRITE(48,*) x(i),y(i) ENDDO CLOSE(48) CALL SYSTEM('gnuplot -p data_plot.plt') END PROGRAM compute_plot
The above Fortran program actually calculates the points on the parabola y=x^2 and then writes into the file data. gnuplot is then called to run a file named data_plot.plt which is located in the same folder as the Fortran program. The gnuplot file data_plot.plt is listed below.
set xlabel "x" set ylabel "y" m="./data" set terminal x11 0 set nokey set grid set title 'The parabola' plot m using 1:2 with linespoints
If you are running Ubuntu, gnuplot can be installed from terminal by the command:
$ sudo apt-get install gnuplot
For other platforms, please visit: http://www.gnuplot.info/