This directory contains the source codes of the sample Fortran90 programs of the Filter Diagonalization Method to solve symmetric eigenvalue problems. 0) Prepare the gnu-fortran90 "gfortran", and Unit "xgraph" command for the simple and easy graph plot. 1) First, in the sub-directory "./Filter", make the object archive library "lib.a" by "make" command. The files in this subdirectry are the library routines to generate the abscissas for the shifts of resolvents and the coefficients of the linear combination of resolvents for the typical kind of filters (Butterworth, Chebyshev, Inverse Chebyshev, elliptic). 2) The sub-directroy "./Filter-Test" is the directory to test the library routines in the sub-directory "./Filter". After the "make" in the directry is finished, the tests of the filter library can be made. Please read the file README in the file "./Filter-Test". 3) The files of this current directry are the test programs of the filter-diagonalization-method for the real symmetric eigenproblems. After the "make" is made by % make four executables "main_std.out", "main_std_mp.out", "main_gen.out" and "main_gen_mp.out" are created. The executable whose name with _mp are the programs with the multi-threaded parallellizations by OpenMP. The number of threads to use can be controlled by setting the environment variable "OMP_NUM_THREADS". For example, using the borne shell by % OMP_NUM_THREADS=3; export OMP_NUM_THREADS; (Large memory space is required as the number of threads in use.) 4) The programs "main_std.out" and "main_std_mp.out" solves the real symmetric standard eigenproblem $Ax=\lambda x$. The programs "main_gen.out" and "main_gen_mp.out" solves the generalized real symmetric definite eigenproblem $Ax=\lambda Bx$, where $A$,$B$ are real symmetric matrices and $B$ is positive definite. The current sample programs are for the case both $A$ and $B$ are banded matrices. The input data can be supplied from file by the redirect. For example, % main_gen < Input or % main_gen_mp < Input Then the program calculates the approximated eigenpairs and writes some files to show the calculation process and the result. 5) After the run is finished, the shell script "show.sh" can be used to graphically view the result of execution. It shows two graphs using the "xgraph" command for Unix. The first graph shows the distribution of the singular values of the set of output vectors from the filter. After the first graph is shown, close it (Control-C will do) then the second graph will be shown which plots the value of the approximated eigenvalues of the eigenpair in the horizontal axis, and in the vertical axis the values of $\Delta=||r||_{B^{-1}}=(r,B^{-1}r)$ which is the bound of error of the eigenvalue for the approximated eigenpair, here $r$ denotes the residual of the eigenpair $r=(A-\lambda B)x$ for the approximated eigenpair $(\lambda, x)$. The curve "IT0" is the solutions of the filter diagonalization method. The curve "IT1" is the improved result by the application of the Rayleigh inverse-iteration once, and for the curve "IT2" twice. 5') Even if the "xgraph" command is not available on your system, the shell script "show.sh" before it fails to find the "xgraph" command, two data files "sigma.data" and "delta.data" are already generated, which are to be plotted by "gnuplot" command. By the use of gnuplot command files "sigma.gnuplot" and "delta.gnuplot", we do % gnuplot < sigma.gnuplot % gnuplot < delta.gnuplot which generates the eps files "sigma.eps" and "delta.eps". The eps files can be view by "ghostscript" or they can be included for the LaTeX graphics environment. (If you modify the gnuplot command files "sigma.gnuplot" and "delta.gnuplot", the graphs can be directly shown on the terminal by the gnuplot command.) 6) The samples of the execution of the programs are stored in the sub-directory "./RUN.SAMPLES".