An efficient and reliable subspace iteration algorithm using the block algorithm is proposed. The block algorithm is the method dividing eigenpairs into several blocks when a lot of eigenpairs are required. One of the key for the faster convergence is carefully selected initial vectors. As the initial vectors, the proposed method uses the modified Ritz vectors for guaranteering all the required eigenpairs and the quasi-static Ritz vectors for accelerating convergency of high frequency eigenvectors. Applying the quasi-static Ritz vectors, a shift is always required, and the proper shift based on the geometric average is proposed. To maximize efficiency, this paper estimates the proper number of blocks based on the theoretical amount of calculation in the subspace iteration. And it also considers the problems generated in the process of combining various algorithms and the solutions to the problems. Several numerical experiments show that the proposed subspace iteration algorithm is very efficient, reliable ,and accurate.