Purpose ======= LA_SPEV and LA_SPEVD compute all eigenvalues and, optionally, all eigenvectors of a real symmetric matrix A in packed storage. LA_HPEV and LA_HPEVD compute all eigenvalues and, optionally, all eigenvectors of a complex Hermitian matrix A in packed storage. LA_SPEVD and LA_HPEVD use a divide and conquer algorithm. If eigenvectors are desired, they can be much faster than LA_SPEV and LA_HPEV for large matrices but use more workspace. ========= SUBROUTINE LA_SPEV / LA_HPEV / LA_SPEVD / LA_HPEVD( AP, W, & UPLO=uplo, Z=z, INFO=info ) (), INTENT(INOUT) :: AP(:) REAL(), INTENT(OUT) :: W(:) CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO (), INTENT(OUT), OPTIONAL :: Z(:,:) INTEGER, INTENT(OUT), OPTIONAL :: INFO where ::= REAL | COMPLEX ::= KIND(1.0) | KIND(1.0D0) Arguments ========= AP (input/output) REAL or COMPLEX array, shape (:) with size(AP)= n*(n+1)/2, where n is the order of A. On entry, the upper or lower triangle of matrix A in packed storage. The elements are stored columnwise as follows: if UPLO = 'U', AP(i+(j-1)*j/2)=A(i,j) for 1<=i<=j<=n; if UPLO = 'L', AP(i+(j-1)*(2*n-j)/2)=A(i,j) for 1<=j<=i<=n. On exit, AP is overwritten by values generated during the reduction of A to a tridiagonal matrix T . If UPLO = 'U', the diagonal and first superdiagonal of T overwrite the correspond- ing diagonals of A. If UPLO = 'L', the diagonal and first subdiagonal of T overwrite the corresponding diagonals of A. W (output) REAL array, shape (:) with size(W) = n. The eigenvalues in ascending order. UPLO Optional (input) CHARACTER(LEN=1). = 'U': Upper triangle of A is stored; = 'L': Lower triangle of A is stored. Default value: 'U'. Z Optional (output) REAL or COMPLEX square array, shape (:,:) with size(Z,1) = n. The columns of Z contain the orthonormal eigenvectors of A in the order of the eigenvalues. INFO Optional (output) INTEGER. = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value > 0: if INFO = i, then i off-diagonal elements of an intermediate tridiagonal form did not converge to zero. If INFO is not present and an error occurs, then the program is terminated with an error message.